This chapter describes various approaches to concurrency, or “parallel programming”. An overview of high performance computing is followed with a review of Flynn’s taxonomy of parallel computing. Three methods for implementing parallel code using the frameworks provided by MPI, openMP, and C++ threads are presented. The use of the C++ constructs mutex and future to resolve issues of synchronization are discussed. All methods are illustrated with an embarrassingly parallel application to a Monte Carlo integral and common pitfalls are presented. The chapter closes with a discussion and example of the utility of forking processes and the use of C++ sockets and their application in a client/server environment.
Oxford Scholarship Online requires a subscription or purchase to access the full text of books within the service. Public users can however freely search the site and view the abstracts and keywords for each book and chapter.
If you think you should have access to this title, please contact your librarian.