The Multi-Processor Computing runtime (MPC) is a unified runtime targeting the MPIOpenMP and PThread standards. One of its main specificity is the ability to run MPI Processes inside threads, being a thread-based MPI.

MPC Supports the MPI 3.1 standard in both thread-based and process-based flavors and was optimized for the Infiniband and Portals 4 networks. In MPC, MPI_THREAD_MULTIPLE is always on enabling the transparent use of shared-memory parallelism with MPI.

MPC comes with a suite of privatizing compilers which enable the transparent port of existing codes to the thread-based execution paradigm. To do so, MPC extended the support of TLS which are now hierarchical.

Running inside threads enables lower latencies inside nodes (as messages are direct memcpys). It requires fewer communication endpoints, one per node instead of one per core, leading to memory and launch time improvements.

Latest News

CEA and MPC team, in collaboration with other French, EU and US institutions, proposed a new workshop focusing on compiler
The MPC team will be present at SC19, at the CEA booth. Please come discuss with us!
MPC is at IWOMP 2019, and will present a paper titled "Detecting Non-Sibling Dependencies in OpenMP Task Based Applications" on
MPC is at Zurich, Switzerland, for the EuroMPI conference. The team will present a paper titles "Mixing Ranks, Tasks, Progress
The MPC team is in Zurich for the September 2019 MPI-Forum face-to-face meeting!
The new version of MPC 3.3.1 has been released with the following changelog: - Optimization for message progress (copy engine)
The MPC team is in Chattanooga, TN, for the March 2019 MPI-Forum face-to-face meeting!
MPC will be in Spokane, WA, next week for SIAM CSE 19. Don't miss out the minisymposium MS306 on Thursay
MPC v3.3.0 is available! Go to the download page to get it!
The MPC team will be present at SC18, at the CEA booth. Please come discuss with us!