Composition of parallel software
Project membersChristoph Kessler
Project descriptionWriting programs for parallel computers is a complex and error-prone task. Often it is not sufficient to simply parallelize some loops in an already existing sequential program. On the other hand, most explicitly parallel algorithms developed so far are based on only a few basic parallel algorithmic techniques such as data parallelism, task farming, parallel divide-and-conquer, pipelining etc. Some formalizations of these in the form of algorithmic skeletons are currently being developed in several projects world-wide. However, skeletons are usually implemented just as generic parallel subroutines, i.e., black-box components that can be parameterized in user code. Beyond the algorithmic and the parallelization aspects, further aspects such as data locality must be taken into account to write efficient parallel code. In this project, we investigate how the invasive software composition approach developed in the RISE project can be applied to the composition of parallel programs from separate specifications of (sequential) user code, parallel algorithmic paradigms, and data distributions, in an elegant and efficient way, and thereby develop an alternative to skeleton programming.
AcknowledgmentThis project is part of the RISE project at PELAB, IDA, Linköpings universitet, and supported by SSF.