Implementation of the EARTH Programming Model on SMP Clusters: a Multi-Threaded Language and Runtime System

Guy Tremblay, Christopher J. Morrone, José Nelson Amaral, and Guang R. Gao,

This paper describes the design and implementation of an EARTH runtime system for a multi-processor/multi-node cluster. The Efficient Architecture for Running THreads (EARTH) model was designed to support the efficient execution of parallel (multi-threaded) programs with irregular fine-grain parallelism using off-the-shelf computers. Implementing an EARTH runtime system requires an explicitly threaded runtime system. For portability, we built this runtime system on top of Pthreads under Linux and used sockets for inter-node communication. Moreover, in order to make the best use of the resources available on a cluster of Symmetric Multi-Processors (SMP), this implementation enables the overlapping of communication and computation. We used Threaded-C, a language designed to implement the programming model supported by the EARTH architecture. This language allows the expression of various levels of parallelism and provides the primitives needed to manage the required communication and synchronization. The Threaded-C programming language supports irregular fine-grain parallelism through a two-level hierarchy of threads and fibers. It also provides various synchronization and communication constructs that reflect the nature of EARTH's fibers --- non-preemptive execution with data-driven scheduling --- as well as the extensive use of split-phase transactions on EARTH to execute long latency operations.

Return to José Nelson Amaral's Publications

Send comments to: amaral AT cs DOT ualberta DOC ca

Return to Amaral's home page