TY - JOUR
T1 - Tuning task granularity and data locality of data parallel GPH programs
AU - Loidl, Hans-Wolfgang
AU - Trinder, Philip William
AU - Butz, Carsten Horst
N1 - Selected papers from HLPP'01 --- International Workshop on High-level Parallel Programming and Applications, Orleans, France, 26-27 March, 2001
PY - 2001/12
Y1 - 2001/12
N2 - The performance of data parallel programs often hinges on two key coordination aspects: the computational costs of the parallel tasks relative to their management overhead - task granularity; and the communication costs induced by the distance between tasks and their data - data locality. In data parallel programs both granularity and locality can be improved by clustering, i.e. arranging for parallel tasks to operate on related sub-collections of data. The GpH parallel functional language automatically manages most coordination aspects, but also allows some high-level control of coordination using evaluation strategies. We study the coordination behavior of two typical data parallel programs, and find that while they can be improved by introducing clustering evaluation strategies, further performance improvements can be achieved by restructuring the program. We introduce a new generic Cluster class that allows clustering to be systematically introduced, and improved by program transformation. In contrast to many other parallel program transformation approaches, we transform realistic programs and report performance results on a 32-processor Beowulf cluster. The duster class is highly-generic and extensible, amenable to reasoning, and avoids conflating computation and coordination aspects of the program.
AB - The performance of data parallel programs often hinges on two key coordination aspects: the computational costs of the parallel tasks relative to their management overhead - task granularity; and the communication costs induced by the distance between tasks and their data - data locality. In data parallel programs both granularity and locality can be improved by clustering, i.e. arranging for parallel tasks to operate on related sub-collections of data. The GpH parallel functional language automatically manages most coordination aspects, but also allows some high-level control of coordination using evaluation strategies. We study the coordination behavior of two typical data parallel programs, and find that while they can be improved by introducing clustering evaluation strategies, further performance improvements can be achieved by restructuring the program. We introduce a new generic Cluster class that allows clustering to be systematically introduced, and improved by program transformation. In contrast to many other parallel program transformation approaches, we transform realistic programs and report performance results on a 32-processor Beowulf cluster. The duster class is highly-generic and extensible, amenable to reasoning, and avoids conflating computation and coordination aspects of the program.
KW - Data parallelism
KW - Functional programming
KW - Program derivation
UR - http://www.scopus.com/inward/record.url?scp=0035571492&partnerID=8YFLogxK
U2 - 10.1142/S0129626401000737
DO - 10.1142/S0129626401000737
M3 - Article
SN - 0129-6264
VL - 11
SP - 471
EP - 486
JO - Parallel Processing Letters
JF - Parallel Processing Letters
IS - 4
ER -