Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems.
It only takes a minute to sign up. I am a Mechanical Engineering grad student, currently working on a project which will be scaled up in the new future to require quite some processing power. I do not possess a deep knowledge of the theoretical side of computing, and only know the parallel side of it. I wanted to ask the community for suggestions on good, easy-to-read-and-understand books or non-video internet resources, which would help me start on parallel programming.
I can definitely find more advanced books for myself later, but I would like to get started on my project work with minimum inertia, "in parallel" with my learning. One of the first things that you need to understand about parallel programming is the difference between shared memory multiprocessor computer systems and distributed memory clusters. A shared memory multiprocessor system is a computer in which several processor cores which might be on one, two, or more integrated circuits share the same memory.
From the programmer's point of view, multiple processes created by the programmer can run on the different cores and share access to the memory. The OpenMP language extensions make it easy to describe operations on arrays that are to be performed in parallel- the compiler takes care of distributing the work to the multiple processors.
A distributed memory cluster can be thought of as a large collection of computers, each of which has its own memory. In order to interact, processes running on these computers must explicitly send messages to each other. Parallel programs for scientific computing on distributed memory clusters are most commonly written using the message passing interface MPI library. Programming with MPI is more difficult than programming with OpenNMP because of the difficulty of deciding how to distribute the work and how processes will communicate by message passing.
Note that a program written using MPI can be run on a shared memory system using a version of the MPI library that simply passes messages between processes through the shared memory.
In that sense, an MPI program is much more flexible- it can run on either type of system. In comparison, you can't effectively run an OpenMP program on a distributed memory cluster.
Shared memory systems are typically limited in the number of processor cores and the amount of storage that can be used. In practice, you'll seldom find more than 64 processor cores or about gigabytes of RAM in a shared memory system, while distributed memory clusters might have tens of thousands of processor cores and terabytes of memory. For truly large scale parallel computing you will need to learn MPI.
Shows some signs of wear, and may have some markings on the inside. Advertisement Hide. Minimum monthly payments are required. If you want NextDay, we can save the other items for later. It then walks you through the steps of data and code transformations using a sample stencil code. Kirk and Wen-mei W. Some of the advanced topics include wavelets, high-order methods, non-symmetric systems, and parallelization of sparse systems.
If you are willing and able to work within the limitations of a smaller shared memory system, than learning OpenMP will be an easier way to get started in parallel computing. For example, if you're using a desktop computer with 4 or 8 cores and you want to take advantage of those cores, then OpenMP is probably the best way to get started.
Other answers have already mentioned some books to get started with MPI.
For OpenMP, I'd recommend that you start with the list of resources at. This is accessible from the page that BillGreene referenced in his comment, but this is a convenient PDF while that is a rather inconvenient zipped PostScript. Here is a discussion. When you place your order through Biblio, the seller will ship it directly to you.
This reflects the percentage of orders the seller has received and filled. Stars are assigned as follows:.
Inventory on Biblio is continually updated, but because much of our booksellers' inventory is uncommon or even one-of-a-kind, stock-outs do happen from time to time. If for any reason your order is not available to ship, you will not be charged. Your order is also backed by our In-Stock Guarantee!
What makes Biblio different? Facebook Instagram Twitter.
Sign In Register Help Cart. Cart items. Toggle navigation. Stock photo. Search Results Results 1 -8 of 8. Cambridge University Press, This book has soft covers. In good all round condition. Kirby II. Ships with Tracking Number! May not contain Access Codes or Supplements.
May be ex-library. Buy with confidence, excellent customer service! Cambridge University Press.
Used - Good. Ships from the UK.