Message Passing Interface for ROOT
Omar Zapata Gerardo Gutiérrez http://oproject.org/ROOTMpi Outline
Message Passing Interface ROOTMpi
MPI Current status and future
Implementation with ROOT Conclusions
2 Message Passing Interface
Standard of communication for HPC/Grid Computing Widely used in the scientific community. Implementations
OpenMPI, MPICH, IBM, Intel etc.. Support for:
RMA (Remote Memory Access)
Checkpointing
P2P and collective communication Fault tolerance under development http://mpi-forum.org/mpi-40
3 ROOTMpi
Integration of MPI and ROOT technologies in a framework for parallel computing. Motivation:
Communicate ROOT objects
through processes.
Implement MPI with a better design for ROOT.
Create an interface that uses the new C++ features to write parallel code.
Implement ROOT algorithms in parallel for HPC/Grid systems.
4 ROOTMpi
Prototype is going under development with the next features already implemented
Peer to Peer communication
Some collective operation implemented
Gather/AllGtaher
Scatter/AllScatter
Redude/AllReduce
Bcast
Communicators
IntraCommunicator
InterCommunicator
Blocking and non-blocking communication.
Tested with OpenMPI and MPICH
5 ROOTMpi Design
6 ROOTMpi Design
7 ROOTMpi Design Comparison with C
Pointer Size Predefined Message MPI Tag id to void of the array MPI datatype destination Communicator
8 ROOTMpi Design Comparison with C
Send in ROOTMpi
Global Template Any serializable Message Communicator Method object destination Tag id
9 ROOTMpi Design
10 Example Peer to Peer
11 Example Peer to Peer output
12 Current Status
Feature Description Status TCommunicator Base class for all DONE communcators, to perform p2p and collective TIntraComminicator Class to do Almost DONE communication in the same context TInterCommunicator Class to perform DONE communication between different contexts. TCartCommunicator Cartesian TODO Communicator TGraphComminicator Graph communicator TODO
13 Current Status
Feature Description Status Request Classes Classes to handle non- DONE blocking communication TEnvironment Class initialize/finalize DONE communication system TInterCommunicator Class to perform DONE communication between different contexts. Checkpointing Feature to save the TODO need design state of the execution and restore it. Fault Tolerance Feature to continue TODO MPI-4 comming execution in case of soon. fault.
14 Current Status
FeatureCl Description Status Serialization for Made with the classes DONE communication TmpiMessage and TMpiMessageInfo Error Handling MPI error are very hard TODO need design to understant also for MPI experts, improbe the error handling. MPI Files Class manage TODO need design distribute file
Memory Window Class to shared regions TODO need design of memory with Remote Access Memory
15 Conclusions
MPI standard have all need HPC/Grid computing
Shared/Distributed memory
Checkpointing
Fault tolerance under development ROOTMpi is
A modern interface for MPI that uses powerful C++ design
A great communication system through serialization.
An easy way to parallelize codes in ROOT for HPC/Grid computing.
16 More Information
Website http://oproject.org
17 To finish
Thanks !
18