The Problem with Threads
Top Cited Papers
- 15 May 2006
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in Computer
- Vol. 39 (5) , 33-42
- https://doi.org/10.1109/mc.2006.180
Abstract
For concurrent programming to become mainstream, we must discard threads as a programming model. Nondeterminism should be judiciously and carefully introduced where needed, and it should be explicit in programs. In general-purpose software engineering practice, we have reached a point where one approach to concurrent programming dominates all others namely, threads, sequential processes that share memory. They represent a key concurrency model supported by modern computers, programming languages, and operating systems. In scientific computing, where performance requirements have long demanded concurrent programming, data-parallel language extensions and message-passing libraries such as PVM, MPI, and OpenMP dominate over threads for concurrent programming. Computer architectures intended for scientific computing often differ significantly from so-called general-purpose architectures.Keywords
This publication has 12 references indexed in Scilit:
- A Behavioral Model for Composition of Software ComponentsL'objet, 2006
- Software and the Concurrency RevolutionQueue, 2005
- Multicore CPUs for the MassesQueue, 2005
- Classes and subclasses in actor-oriented designPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Taming heterogeneity - the Ptolemy approachProceedings of the IEEE, 2003
- YAPIPublished by Association for Computing Machinery (ACM) ,2000
- Fixing the Java memory modelPublished by Association for Computing Machinery (ACM) ,1999
- A framework for comparing models of computationIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1998
- Automatic program parallelizationProceedings of the IEEE, 1993
- The synchronous approach to reactive and real-time systemsProceedings of the IEEE, 1991