Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., California Univ., Berkeley, CA, USA
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 :
message passing; multi-threading; MPI; OpenMP; PVM; computer architectures; concurrent programming; data-parallel language extension; general-purpose architectures; message-passing libraries; operating system; programming languages; sequential processes; software engineering; threads programming model; Computational modeling; Costs; Distributed computing; Embedded computing; Embedded software; Equations; Object oriented modeling; Yarn; Coordination languages; Design patterns; Nondeterminism; Programming paradigms; Threads;