Qthreads: An API for programming with millions of lightweight threads
- 1 April 2008
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE) in 2008 IEEE International Symposium on Parallel and Distributed Processing
Abstract
Large scale hardware-supported multithreading, an attractive means of increasing computational power, benefits significantly from low per-thread costs. Hardware support for lightweight threads is a developing area of research. Each architecture with such support provides a unique interface, hindering development for them and comparisons between them. A portable abstraction that provides basic lightweight thread control and synchronization primitives is needed. Such an abstraction would assist in exploring both the architectural needs of large scale threading and the semantic power of existing languages. Managing thread resources is a problem that must be addressed if massive parallelism is to be popularized. The qthread abstraction enables development of large-scale multithreading applications on commodity architectures. This paper introduces the qthread API and its Unix implementation, discusses resource management, and presents performance results from the HPCCG benchmark.Keywords
This publication has 17 references indexed in Scilit:
- Shared-stack cooperative threadsPublished by Association for Computing Machinery (ACM) ,2007
- ProtothreadsPublished by Association for Computing Machinery (ACM) ,2006
- UPC---UPCPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2006
- Pursuing a petaflop: point designs for 100 TF computers using PIM technologiesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Mapping irregular applications to DIVA, a PIM-based data-intensive architecturePublished by Association for Computing Machinery (ACM) ,1999
- OpenMP: an industry standard API for shared-memory programmingIEEE Computational Science and Engineering, 1998
- Lazy Threads: Implementing a Fast Parallel CallJournal of Parallel and Distributed Computing, 1996
- Replacing passive tasks with Ada9X protected recordsACM SIGAda Ada Letters, 1993
- First-class user-level threadsPublished by Association for Computing Machinery (ACM) ,1991
- Continuations and coroutinesPublished by Association for Computing Machinery (ACM) ,1984