A comparative analysis of fine-grain threads packages

Gregory W. Price, David K. Lowenthal

Research output: Contribution to journalArticlepeer-review

12 Scopus citations

Abstract

The rising availability of multiprocessing platforms has increased the importance of providing programming models that allow users to express parallelism simply, portably, and efficiently. One popular way to write parallel programs is to use threads for concurrent sections of code. User-level threads packages allow programmers to implement multithreaded programs in which thread creation, thread management, and thread synchronization are relatively inexpensive. Fine-grain programs are multithreaded programs in which the work is divided into a large number of threads, where each thread contains a relatively small amount of work. The potential benefit of large numbers of threads include easier load balancing, better scalability, greater potential for overlapping communication and computation, and improved platform-independence. However, fine-grain programs are largely considered inefficent due to the overheads involved in managing numerous threads. In this paper, we survey several thread packages that take different approaches to the problem of efficiently supporting the creation and management of large numbers of fine-grain threads. Each package is compared based on its level of support of the general thread model as well as its performance on a set of fine-grain parallel programs. We find that while the thread packages we tested may support medium-grain parallelism efficiently, they do not always support fine-grain parallelism. Although no package supports fine-grain parallelism and a general thread model, we believe that it can potentially be done with help from the compiler.

Original languageEnglish (US)
Pages (from-to)1050-1063
Number of pages14
JournalJournal of Parallel and Distributed Computing
Volume63
Issue number11
DOIs
StatePublished - Nov 2003
Externally publishedYes

Keywords

  • Fine-grain parallelism
  • Load balancing
  • Threads

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'A comparative analysis of fine-grain threads packages'. Together they form a unique fingerprint.

Cite this