𝔖 Bobbio Scriptorium
✦   LIBER   ✦

Using Fine-Grain Threads and Run-Time Decision Making in Parallel Computing

✍ Scribed by David K. Lowenthal; Vincent W. Freeh; Gregory R. Andrews


Publisher
Elsevier Science
Year
1996
Tongue
English
Weight
286 KB
Volume
37
Category
Article
ISSN
0743-7315

No coin nor oath required. For personal study only.

✦ Synopsis


Programming distributed-memory multiprocessors and networks of workstations requires deciding what can execute concurrently, how processes communicate, and where data is placed. These decisions can be made statically by a programmer or compiler, or they can be made dynamically at run time. Using run-time decisions leads to a simpler interface-because decisions are implicit-and it can lead to better decisionsbecause more information is available. This paper examines the costs, benefits, and details of making decisions at run time. The starting point is explicit fine-grain parallelism with any number (even thousands) of threads. Five specific techniques are considered: (1) implicitly coarsening the granularity of parallelism, (2) using implicit communication implemented by a distributed shared memory, (3) overlapping computation and communication, (4) adaptively moving threads and data between nodes to minimize communication and balance load, and (5) dynamically remapping data to pages to avoid false sharing. Details are given on the performance of each of these techniques as well as on their overall performance for several scientific applications.