Publication | Closed Access
The Problem with Threads
867
Citations
34
References
2006
Year
EngineeringComputer ArchitectureSoftware EngineeringMultithreading (Computer Architecture)Concurrent SystemCommunicationConcurrency (Computer Science)Parallel ComputingShare MemoryProgramming LanguagesConcurrent ProgrammingComputer EngineeringComputer ScienceSoftware DesignProgramming ModelOperating SystemsProgram AnalysisParallel ProgrammingConcurrent Data StructureParallel Programming ModelSystem Software
Threads dominate general‑purpose concurrent programming, yet in scientific computing data‑parallel and message‑passing approaches prevail because of differing architectures. The authors contend that mainstream concurrent programming should abandon threads and instead employ explicit, judicious nondeterminism.
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1