Two Views of a Node
-
OpenMP (or pthreads) only
- launch one process per node, just on a single node
- have each process fork one thread (or maybe more) per core
- share data using shared memory
- can't share data with a different process (except maybe via file I/O)
-
MPI only
- launch one process per core, on one node or on many
- pass messages among processes without concern for location
- (maybe create different communicators intra-node vs. inter-node)
- ignore the potential for any memory to be shared
Note:
With hybrid OpenMP/MPI programming, we aim to create a blend of these two views, in which each MPI process launches multiple OpenMP threads that share local memory. Different ways of doing this will be described in the next topic, Creating Hybrid Configurations.