Thread migration in a parallel graph reducer

  • Authors:
  • André Rauber Du Bois;Hans-Wolfgang Loidl;Phil Trinder

  • Affiliations:
  • School of Mathematical and Computer Sciences, Heriot-Watt University, Riccarton, Edinburgh, UK;Ludwig-Maximilians-Universität München, Institut für Informatik, München, Germany;School of Mathematical and Computer Sciences, Heriot-Watt University, Riccarton, Edinburgh, UK

  • Venue:
  • IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

To support high level coordination, parallel functional languages need effective and automatic work distribution mechanisms. Many implementations distribute potential work, i.e. sparks or closures, but there is good evidence that the performance of certain classes of program can be improved if current work, or threads, are also distributed. Migrating a thread incurs significant execution cost and requires careful scheduling and an elaborate implementation. This paper describes the design, implementation and performance of thread migration in the GUM runtime system underlying Glasgow parallel Haskell (GPH). Measurements of nontrivial programs on a high-latency cluster architecture show that thread migration can improve the performance of data-parallel and divide-and-conquer programs with low processor utilisation. Thread migration also reduces the variation in performance results obtained in separate executions of a program. Moreover, migration does not incur significant overheads if there are no migratable threads, or on a single processor. However, for programs that already exhibit good processor utilisation, migration may increase performance variability and very occasionally reduce performance.