Can MPI be used to program multicore systems?
There are two common ways to use MPI with multicore processors or multiprocessor nodes: • Use one MPI process per core (here, a core is defined as a program counter and some set of arithmetic, logic, and load/store units). • Use one MPI process per node (here, a node is defined as a collection of cores that share a single address space). Use threads or compiler-provided parallelism to exploit the multiple cores. OpenMP may be used with MPI; the loop-level parallelism of OpenMP may be used with any implementation of MPI (you do not need an MPI that supports MPI_THREAD_MULTIPLE when threads are used only for computational tasks). This is sometimes called the hybrid programming model.
There are two common ways to use MPI with multicore processors or multiprocessor nodes: Use one MPI process per core (here, a core is defined as a program counter and some set of arithmetic, logic, and load/store units). Use one MPI process per node (here, a node is defined as a collection of cores that share a single address space). Use threads or compiler-provided parallelism to exploit the multiple cores. OpenMP may be used with MPI; the loop-level parallelism of OpenMP may be used with any implementation of MPI (you do not need an MPI that supports MPI_THREAD_MULTIPLE when threads are used only for computational tasks). This is sometimes called the hybrid programming model.