Author : August Ernstsson
Publisher : Linköping University Electronic Press
ISBN 13 : 9179297722
Total Pages : 155 pages
Book Rating : 4.1/5 (792 download)
Book Synopsis Designing a Modern Skeleton Programming Framework for Parallel and Heterogeneous Systems by : August Ernstsson
Download or read book Designing a Modern Skeleton Programming Framework for Parallel and Heterogeneous Systems written by August Ernstsson and published by Linköping University Electronic Press. This book was released on 2020-10-21 with total page 155 pages. Available in PDF, EPUB and Kindle. Book excerpt: Today's society is increasingly software-driven and dependent on powerful computer technology. Therefore it is important that advancements in the low-level processor hardware are made available for exploitation by a growing number of programmers of differing skill level. However, as we are approaching the end of Moore's law, hardware designers are finding new and increasingly complex ways to increase the accessible processor performance. It is getting more and more difficult to effectively target these processing resources without expert knowledge in parallelization, heterogeneous computation, communication, synchronization, and so on. To ensure that the software side can keep up, advanced programming environments and frameworks are needed to bridge the widening gap between hardware and software. One such example is the pattern-centric skeleton programming model and in particular the SkePU project. The work presented in this thesis first redesigns the SkePU framework based on modern C++ variadic template metaprogramming and state-of-the-art compiler technology. It then explores new ways to improve performance: by providing new patterns, improving the data access locality of existing ones, and using both static and dynamic knowledge about program flow. The work combines novel ideas with practical evaluation of the approach on several applications. The advancements also include the first skeleton API that allows variadic skeletons, new data containers, and finally an approach to make skeleton programming more customizable without compromising universal portability.