Migrant threads on process farms: parallel programming with Ariadne

We present a novel and portable threads-based system for the development of concurrent applications on shared and distributed memory environments. Implementing user-space threads. the Ariadne system is highly effective for medium to coarse grained applications. Sequential programs are readily converted into parallel programs for shared ordistributed memory, with low development effort. We describe basic threads primitives, and constructs for synchronization and computation in concurrent applications. Ariadne flexibly caters to a variety of communication environments, through a simple interface. It supports the development ofcustomized schedulers on shared memory mulliprocessors, and offers a thread migration capability for distributed environments. Scheduling ofcomputations at the thread level offers both taskand data-driven executions. Thread migration is a powerful feature which turns remote memory accesses into local accesses, enables load-balancing and simplifies program development. Ariadne currently runs on the SPARe (SunGS 4.x, SunGS 5.x), Sequent Symmetry, Intel Paragon, Silicon Graphics IRIX, and ffiM RS/6000 environments. We present Ariadne's parallel programming capability through several examples, reporting on performance measurements obtained with each. • Research supponed in pan by NATO-CRG900108, ONR-9310233, and ARO-93G0045.

[1]  Thomas E. Anderson,et al.  The performance implications of thread management alternatives for shared-memory multiprocessors , 1989, SIGMETRICS '89.

[2]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[3]  Gregory R. Andrews,et al.  Distributed filaments: efficient fine-grain parallelism on a cluster of workstations , 1994, OSDI '94.

[4]  Louis H. Turcotte,et al.  A Survey of Software Environments for Exploiting Networked Computing Resources , 1993 .

[5]  Peter A. Buhr,et al.  The μsystem: Providing light‐weight concurrency on shared‐memory multiprocessor computers running UNIX , 1990, Softw. Pract. Exp..

[6]  Robert H. Halstead,et al.  Lazy task creation: a technique for increasing the granularity of parallel programs , 1990, LISP and Functional Programming.

[7]  J. Ortega,et al.  Solution of Partial Differential Equations on Vector and Parallel Computers , 1987 .

[8]  John Zahorjan,et al.  Chores: enhanced run-time support for shared-memory parallel computing , 1993, TOCS.

[9]  Charles M. Shub Native code process-originated migration in a heterogeneous environment , 1990, CSC '90.

[10]  Devang Shah,et al.  Implementing Lightweight Threads , 1992, USENIX Summer.

[11]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[12]  Seth Copen Goldstein,et al.  Active messages: a mechanism for integrating communication and computation , 1998, ISCA '98.

[13]  Anne Rogers,et al.  Software caching and computation migration in Olden , 1995, PPOPP '95.

[14]  Kai Li,et al.  IVY: A Shared Virtual Memory System for Parallel Computing , 1988, ICPP.

[15]  Vaidy S. Sunderam,et al.  On the Effectiveness of Superconcurrent Computations on Heterogeneous Networks , 1995, J. Parallel Distributed Comput..

[16]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[17]  Andrew S. Tanenbaum,et al.  Distributed operating systems , 2009, CSUR.

[18]  Partha Dasgupta,et al.  Distributed Programming with Objects and Threads in the Clouds System , 1991, Comput. Syst..

[19]  Barton P. Miller,et al.  Process migration in DEMOS/MP , 1983, SOSP '83.

[20]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

[21]  Gregory R. Andrews,et al.  Filaments: Efficient Support for Fine-Grain Parallelism , 1993 .

[22]  David D. Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM '90.

[23]  Wilson C. Hsieh,et al.  Computation migration: enhancing locality for distributed-memory parallel systems , 1993, PPOPP '93.

[24]  Vaidy S. Sunderam,et al.  TPVM: distributed concurrent computing with lightweight processes , 1995, Proceedings of the Fourth IEEE International Symposium on High Performance Distributed Computing.

[25]  Jonathan M. Smith,et al.  A survey of process migration mechanisms , 1988, OPSR.

[26]  Hisao Nakanishi Anomalous Diffusion in Disordered Clusters , 1993 .

[27]  Jack J. Dongarra,et al.  The PVM Concurrent Computing System: Evolution, Experiences, and Trends , 1994, Parallel Comput..

[28]  Evangelos P. Markatos,et al.  First-class user-level threads , 1991, SOSP '91.

[29]  Edward Mascarenhas,et al.  Mobile-Process-Based Parallel Simulation , 1996, J. Parallel Distributed Comput..

[30]  Marvin Theimer,et al.  Preemptable remote execution facilities for the V-system , 1985, SOSP '85.

[31]  Frank Mueller,et al.  A Library Implementation of POSIX Threads under UNIX , 1993, USENIX Winter.

[32]  Edward Mascarenhas,et al.  Ariadne: Architecture of a Portable Threads System Supporting Thread Migration , 1996, Softw. Pract. Exp..

[33]  Avadis Tevanian,et al.  MACH threads and the UNIX kernel : the battle for control , 1987 .

[34]  Edward Mascarenhas,et al.  DISplay - A Visualization and User Interaction Interface for Parallel Simulation Environments , 1995 .

[35]  Peter J. Reynolds,et al.  On clusters and clustering : from atoms to fractals , 1993 .

[36]  Edward Mascarenhas,et al.  ParaSol: a multithreaded system for parallel simulation based on mobile threads , 1995, WSC '95.

[37]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.