The Amber system: parallel programming on a network of multiprocessors
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
The HDG-machine: a highly distributed graph-reducer for a transputer network
The Computer Journal - Special issue: Concurrent programming
Active messages: a mechanism for integrated communication and computation
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
TAM—a compiler controlled threaded abstract machine
Journal of Parallel and Distributed Computing - Special issue on dataflow and multithreaded architectures
Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
GUM: a portable parallel implementation of Haskell
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Using fine-grain threads and run-time decision making in parallel computing
Journal of Parallel and Distributed Computing - Special issue on multithreading for multiprocessors
The MOSIX multicomputer operating system for high performance cluster computing
Future Generation Computer Systems - Special issue on HPCN '97
Thread migration and its applications in distributed shared memory systems
Journal of Systems and Software
Parallel Symbolic Computing in Cid
PSLS '95 Proceedings of the International Workshop on Parallel Symbolic Languages and Systems
Eden - The Paradise of Functional Concurrent Programming
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing - Volume I
Experience with the Implementation of a Concurrent Graph Reduction System on an nCube/2 Platform
CONPAR 94 - VAPP VI Proceedings of the Third Joint International Conference on Vector and Parallel Processing: Parallel Processing
GpH and Eden: Comparing two parallel functional languages on a Beowulf cluster
Selected papers from the 2nd Scottish Functional Programming Workshop (SFP00)
Making a Packet: Cost-Effective Communication for a Parallel Graph Reducer
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
Implementing Declarative Parallel Bottom-Avoiding Choice
SBAC-PAD '02 Proceedings of the 14th Symposium on Computer Architecture and High Performance Computing
Algorithm + strategy = parallelism
Journal of Functional Programming
Programming Languages, Information Structures, and Machine Organization.
Programming Languages, Information Structures, and Machine Organization.
Comparing Parallel Functional Languages: Programming and Performance
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
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.