Efficient support for fine-grain parallelism on shared-memory machines

David K. Lowenthal, Vincent W. Freeh, Gregory R. Andrews

Research output: Contribution to journalArticlepeer-review

9 Scopus citations

Abstract

A coarse-grain parallel program typically has one thread (task) per processor, whereas a fine-grain program has one thread for each independent unit of work. Although there are several advantages to fine-grain parallelism, conventional wisdom is that coarse-grain parallelism is more efficient This paper illustrates the advantages of fine-grain parallelism and presents an efficient implementation for shared-memory machines. The approach has been implemented in a portable software package called Filaments, which employs a unique combination of techniques to achieve efficiency. The performance of the fine-grain programs discussed in this paper is always within 13% of a hand-coded coarse-grain program and is usually within 5%.

Original languageEnglish (US)
Pages (from-to)157-173
Number of pages17
JournalConcurrency Practice and Experience
Volume10
Issue number3
DOIs
StatePublished - Mar 1998

ASJC Scopus subject areas

  • General Engineering

Fingerprint

Dive into the research topics of 'Efficient support for fine-grain parallelism on shared-memory machines'. Together they form a unique fingerprint.

Cite this