Tuning task granularity and data locality of data parallel GPH programs

Hans-Wolfgang Loidl, Philip William Trinder, Carsten Horst Butz

Research output: Contribution to journalArticlepeer-review

11 Citations (Scopus)


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.

Original languageEnglish
Pages (from-to)471-486
Number of pages16
JournalParallel Processing Letters
Issue number4
Publication statusPublished - Dec 2001


  • Data parallelism
  • Functional programming
  • Program derivation


Dive into the research topics of 'Tuning task granularity and data locality of data parallel GPH programs'. Together they form a unique fingerprint.

Cite this