Message Passing Interface for ROOT - CERN Indico
-
Upload
khangminh22 -
Category
Documents
-
view
0 -
download
0
Transcript of Message Passing Interface for ROOT - CERN Indico
2
Outline
Message Passing Interface
ROOTMpi
MPI Current status and future
Implementation with ROOT
Conclusions
3
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
4
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.
5
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
8
ROOTMpi Design
Comparison with C
Pointer
to void
Size
of the array
Predefined
MPI datatypeMessage
destinationTag id
MPI
Communicator
9
ROOTMpi Design
Comparison with C
Send in ROOTMpi
Global
Communicator
Template
MethodAny serializable
object
Message
destination Tag id
13
Current Status
Feature Description Status
TCommunicator Base class for all
communcators, to
perform p2p and
collective
DONE
TIntraComminicator Class to do
communication in the
same context
Almost DONE
TInterCommunicator Class to perform
communication
between different
contexts.
DONE
TCartCommunicator Cartesian
Communicator
TODO
TGraphComminicator Graph communicator TODO
14
Current Status
Feature Description Status
Request Classes Classes to handle non-
blocking communication
DONE
TEnvironment Class initialize/finalize
communication system
DONE
TInterCommunicator Class to perform
communication
between different
contexts.
DONE
Checkpointing Feature to save the
state of the execution
and restore it.
TODO need design
Fault Tolerance Feature to continue
execution in case of
fault.
TODO MPI-4 comming
soon.
15
Current Status
FeatureCl Description Status
Serialization for
communication
Made with the classes
TmpiMessage and
TMpiMessageInfo
DONE
Error Handling MPI error are very hard
to understant also for
MPI experts, improbe
the error handling.
TODO need design
MPI Files Class manage
distribute file
TODO need design
Memory Window Class to shared regions
of memory with Remote
Access Memory
TODO need design
16
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.