Message Passing Interface for ROOT
Total Page:16
File Type:pdf, Size:1020Kb
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) Shared memory 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.