Compute Canada

What kind of system uses MPI?

Please note: The FAQ pages at the HPCVL website are continuously being revised. Some pages might pertain to an older configuration of the system. Please let us know if you encounter problems or inaccuracies, and we will correct the entries.

MPI was designed to handle distributed-memory systems, i.e. clusters. This does not mean that its usage is restricted to such systems. In fact, there are good arguments for MPI running even better on shared-memory machines. It will of course also be usable on hybrids such as the HPCVL Sunfire cluster.

Since MPI provides a means to enable communication between different CPUs, it does not depend on shared-memory architectures, as is the case for multi-threading systems such as OpenMP. On the other hand, it can make use of shared memory for fast amd improved communication.

Note that the status of MPI as a distributed-memory system implies that multiple processes are started from the beginning and run, usually on different CPUs to completion. These processes do not have anything in common, and each has its own memory space. Any information exchange requires communication of data, for which MPI was designed.