Concepedia

TLDR

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.

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.

References

YearCitations

Page 1