Extension of the SkePU Skeleton ProgrammingFramework for Multi-core CPU and Multi-GPU Systems for MPI-based Clusters
Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
SkePU (Skeleton Programming Framework for Multi-core CPU and Multi-GPU Systems) is a parallel computing framework developed by Johan Enmyren and Christoph Kessler at Linköpings Universitet. This C++ template library provides a simple and unified interface for specifying data-parallel computations with the help of skeletons and is targeted to multiple backends e.g. for a sequential CPU, parallel CPUs using MPI and OpenMP or GPUs using CUDA and OpenCL. SkePU is comprised of seven data-parallel skeletons and one task-parallel skeleton and these skeletons use two types of containers: vector and matrix to model real-life parallel applications. In this thesis, we address the extension of the SkePU framework by extending the matrix container (which stores 2-D data values) that can efficiently use the existing skeletons to develop parallel scientific applications on large-scale clusters using MPI. This piece of work focuses on the distribution of the matrix among the participating processes which after receiving their share of data can execute the application in parallel. This work covers all of the seven data-parallel skeletons. Each skeleton has been tested with a small application program. In addition to measurement of performance improvement from the application program’s execution time, we have also done a communication cost analysis for all skeletons with MPI using the LogGP model. In order to evaluate and test the operational efficiency of the extension, we have considered a PDE solver application. Through this application, we have demonstrated the performance gain and scalability of the extended framework. The performance improvement was more when computational load dominates the memory I/O operations. The results show that using the extension can serve as a viable approach while implementing real-life parallel applications on large-scale clusters.
Place, publisher, year, edition, pages
2013. , 136 p.
SkePU, Skeleton Programming Framework, C++ template library, Matrix container, Skeleton programmig on MPI-based clusters, Parllel Programming on Multi-core processors
Electrical Engineering, Electronic Engineering, Information Engineering Computer Systems
IdentifiersURN: urn:nbn:se:liu:diva-98813ISRN: LIU-IDA/LITH-EX-A--13/052--SEOAI: oai:DiVA.org:liu-98813DiVA: diva2:656039
Subject / course
Computer and information science at the Institute of Technology
2013-10-07, Alan Turing, B-Building, Campus Valla, Linköpings Uniersitet, Linköping, 10:00 (English)
Kessler, Christoph, Prof.(Dr.)