Message Passing Interface for ROOT - CERN Indico

18
Message Passing Interface for ROOT Omar Zapata Gerardo Gutiérrez http://oproject.org/ROOTMpi

Transcript of Message Passing Interface for ROOT - CERN Indico

Message Passing Interface

for ROOT

Omar Zapata

Gerardo Gutiérrez

http://oproject.org/ROOTMpi

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

6

ROOTMpi Design

7

ROOTMpi Design

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

10

ROOTMpi Design

11

Example

Peer to Peer

12

Example

Peer to Peer output

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.

17

More Information

Website

http://oproject.org

18

To finish

Thanks !