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]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

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

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

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

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

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

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

[8]  Henry M. Levy,et al.  The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors , 1989, IEEE Trans. Computers.

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

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

[11]  Keith A. Lantz,et al.  Preemptable remote execution facilities for the V-system , 1985, SOSP 1985.

[12]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

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

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

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

[16]  Robert H. Halstead,et al.  Lazy task creation: a technique for increasing the granularity of parallel programs , 1990, IEEE Trans. Parallel Distributed Syst..

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

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

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

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

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

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

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

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

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

[26]  David Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM 1990.

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

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

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

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

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

[32]  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.

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