SkePU 2: Language Embedding and Compiler Support for Flexible and Type-Safe Skeleton Programming
Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
This thesis presents SkePU 2, the next generation of the SkePU C++ framework for programming of heterogeneous parallel systems using the skeleton programming concept. SkePU 2 is presented after a thorough study of the state of parallel programming models, frameworks and tools, including other skeleton programming systems. The advancements in SkePU 2 include a modern C++11 foundation, a native syntax for skeleton parameterization with user functions, and an entirely new source-to-source translator based on Clang compiler front-end libraries.
SkePU 2 extends the functionality of SkePU 1 by embracing metaprogramming techniques and C++11 features, such as variadic templates and lambda expressions. The results are improved programmability and performance in many situations, as shown in both a usability survey and performance evaluations on high-performance computing hardware. SkePU’s skeleton programming model is also extended with a new construct, Call, unique in the sense that it does not impose any predefined skeleton structure and can encapsulate arbitrary user-defined multi-backend computations.
We conclude that SkePU 2 is a promising new direction for the SkePU project, and a solid basis for future work, for example in performance optimization.
Place, publisher, year, edition, pages
2016. , 82 p.
Skeleton programming, SkePU, Source-to-source transformation, C++11, Heterogeneous parallel systems, Portability
IdentifiersURN: urn:nbn:se:liu:diva-129381ISRN: LIU-IDA/LITH-EX-A--16/026--SEOAI: oai:DiVA.org:liu-129381DiVA: diva2:938931
Subject / course
2016-06-08, Herbert Simon, Linköpings universitet, Linköping, 10:00 (English)
Li, Lu, Doktorand
Kessler, Christoph, Prof. Dr.