Active Threads: an Extensible and Portable Light-Weight Thread System
نویسنده
چکیده
This document describes a portable light-weight thread runtime system for uniand multiprocessors targeted at irregular applications. Unlike most other thread packages, which utilize hard-coded scheduling policies, Active Threads provides a general mechanism for building data structure specific thread schedulers and for composing multiple scheduling policies within a single application. This allows modules developed separately to retain their scheduling policies when used together in a single application. Flexible scheduling policies can exploit the temporal and spatial locality inherent in many applications. In spite of the added flexibility, the Active Threads API is close to that of more conventional thread packages. Simple synchronization is achieved by standard mutexes, semaphores, and condition variables while more powerful parallel constructs can be easily built from threads, thread bundles (collections of threads with similar properties such as schedulers) and user-defined synchronization objects. Active Threads can be used directly by application and library writers or as a virtual machine target for compilers for parallel languages. The package is retargeted by porting the Active Threads Portability Interface that includes only eight primitives. Active Threads has been ported to several hardware platforms including SPARC, Intel i386 and higher, DEC Alpha AXP, HPPA and outperformed vendor provided thread packages by as much as orders of magnitude. A typical thread context switch cost is on the order of dozens of instructions and is only an order of magnitude more expensive than a function call. This document presents an involved performance analysis and comparisons with other commercial and research parallel runtimes. Active Threads are used as a compilation target for Sather, a parallel object-oriented language under development at ICSI. Active Threads are also being used as a base for a distributed extension of C++ that supports thread migration. 2 Active Threads: an Extensible and Portable Light-Weight Thread System
منابع مشابه
Efficient Fine-Grain Thread Migration with Active Threads
Thread migration is established as a mechanism for achieving dynamic load sharing. However, fine-grained migration has not been used due to the high thread and messaging overheads. This paper describes a fine-grained thread migration system whose extensible event mechanism permits an efficient interface between threads and communications without compromising the modularity and performance of ei...
متن کاملA Performance Evaluation of Fine- Grain Thread Migration with Active Threads
Thread migration is established as a mechanism for achieving dynamic load sharing and data locality. However, migration has not been used with fine-grained parallelism due to the relatively high overheads associated with thread and messaging packages. This paper describes a high performance thread migration system for fine-grained parallelism, implemented with user level threads and user level ...
متن کاملProcs and Locks: A Portable Multiprocessing Platform for Standard ML of New Jersey
in Multilisp) and rely on sophisticated runtime system support ; they don't attempt to be extensible or portable. The Lisp-based system most closely resembling ours is STING [20, 21], a concurrent dialect of Scheme speci-cally intended as a substrate for building higher-level parallel computing environments. STING's basic data types are threads and virtual processors; the system provides ex-ibi...
متن کاملPEACE Threads Interface On Microkernel
Recently, thread libraries have become powerful entities to support parallel programming on shared memory multiprocessors and multicomputers. However, the disparity between the primitives offered by the operating systems and thread’s interface creates a challenge for those who wish to create portable threads library. The implementation of PEACE (POSIX Extensions to an Advanced Computing Environ...
متن کاملArachne: A Portable Threads Library Supporting Migrant Threads on Heterogeneous Network Farms
We describe the design of an eecient and portable threads system that supports multi-threaded distributed computations on heterogeneous networks. The system enables threads to migrate between processes that run on diierent hardware platforms. We present a complete implementation of the design in ANSI C++. This implementation consists of a code preprocessor and a runtime library, and supports ap...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1997