Distributed Shared Memory Systems and Programming

In the last lecture we looked at shared memory systems from the standpoint of supercomputing, trying to get the most out of our supercomputer. In this lecture, we look at shared memory systems more like in the textbook, trying to get the most out of a computer lab of mostly idle workstations or PCs. For this second standpoint, there are also two approaches: we can take the OpenMP philosophy to clusters, gaining an ease of use at the expense of performance, or use WMPI, a Windows implementation of MPI.

We sketched the layered implementation of MPI and the policies to manage shared data, in particular the update and invalid policies. We ended the lecture contrasting the GOMP project with the "pragma ibm" directives in the compiler documentation.