Abstract
We describe a software solution to the problem of automatic parallelization of linear algebra code on multi-processor and multi-core architectures. This solution relies on the definition of a domain specific language for matrix computations, a performance model for multi-processor architectures and its implementation using C++ template meta-programming. Experimental results asses this model and its implementation on sample computation kernels.
Chapter PDF
Similar content being viewed by others
Keywords
- Abstract Syntax Tree
- Cell Processor
- Automatic Parallelization
- Expression Template
- Analytical Performance Model
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Team, T.B.: An overview of the bluegene/l supercomputer. In: Proccedings of ACM Supercomputing Conference (2002)
Falcou, J., Sérot, J., Chateau, T., Jurie, F.: A parallel implementation of a 3d reconstruction algorithm for real-time vision. In: PARCO 2005 - ParCo,Parallel Computing, Malaga, Spain (September 2005)
Kalla, R., Sinharoy, B., Tendler, J.M.: Ibm power5 chip: A dual-core multithreaded processor. IEEE Micro 24(2), 40–47 (2004)
Kahle, J.: The cell processor architecture. In: MICRO 38: Proceedings of the 38th annual IEEE/ACM International Symposium on Microarchitecture, Washington, DC, USA, p. 3. IEEE Computer Society, Los Alamitos (2005)
Gepner, P., Kowalik, M.F.: Multi-core processors: New way to achieve high system performance. In: PARELEC 2006: Proceedings of the international symposium on Parallel Computing in Electrical Engineering, Washington, DC, USA, pp. 9–13. IEEE Computer Society, Los Alamitos (2006)
El-Ghazawi, T., Smith, L.: Upc: unified parallel c. In: SC 2006, p. 27. ACM, New York (2006)
Bischof, H., Gorlatch, S., Leshchinskiy, R.: DatTeL: A data-parallel C++ template library. Parallel Processing Letters 13(3), 461–482 (2003)
Clark, D.: Openmp: A parallel standard for the masses. IEEE Concurrency 6(1), 10–12 (1998)
Falcou, J., Sérot, J.: E.V.E., An Object Oriented SIMD Library. Scalable Computing: Practice and Experience 6(4), 31–41 (2005)
Veldhuizen, T.L.: Expression templates. C++ Report 7(5), 26–31 (1995)
Veldhuizen, T.L., Jernigan, M.E.: Will C++ be faster than Fortran? In: Ishikawa, Y., Reynders, J.V.W., Tholburn, M. (eds.) ISCOPE 1997. LNCS, vol. 1343. Springer, Heidelberg (1997)
Alexandrescu, A.: Modern C++ Design: Generic Programming and Design Patterns Applied. AW C++ in Depth Series. Addison-Wesley, Reading (2001)
Myers, N.: A new and useful template technique: traits. C++ gems 1, 451–457 (1996)
Abrahams, D., Gurtovoy, A.: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. C++ in Depth Series. Addison-Wesley Professional, Reading (2004)
Gregor, D., et al.: The boost c++ library (2003), http://boost.org/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Falcou, J., Sérot, J., Pech, L., Lapresté, JT. (2008). Meta-programming Applied to Automatic SMP Parallelization of Linear Algebra Code. In: Luque, E., Margalef, T., Benítez, D. (eds) Euro-Par 2008 – Parallel Processing. Euro-Par 2008. Lecture Notes in Computer Science, vol 5168. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85451-7_78
Download citation
DOI: https://doi.org/10.1007/978-3-540-85451-7_78
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85450-0
Online ISBN: 978-3-540-85451-7
eBook Packages: Computer ScienceComputer Science (R0)