330 likes | 461 Views
Madeleine II provides a high-performance communication interface designed for both cluster and grid environments. Developed as part of the ReMaP project at LIP, ENS Lyon, this versatile communication library supports multithreading and zero-copy transmission, allowing efficient RPC-oriented communication. By integrating multiple protocols and adapters, Madeleine II caters to various network architectures, ensuring seamless data transmission across heterogeneous systems. This comprehensive framework enhances application performance while maintaining protocol independence, making it a crucial tool for modern high-performance computing.
E N D
The generic Madeleine communication interface:from clusters to grids Luc Bougé ReMaP Project LIP, ENS Lyon
Credits • The ParaDigme group Luc Bougé Jean-François Méhaut Jean-Christophe Mignot Raymond Namyst Loïc Prylli Gabriel Antoniu Olivier Aumage Alice Bonhomme Vincent Danjean Alexandre Denis Guillaume Mercier Christian Perez LIP, ENS-Lyon
PM2 Multithreading Library High performance clusters RPC-oriented communication Efficiency Zero-copy transmission Multi-paradigm protocols Multiple protocols Multiple adapters Madeleine II - Objectives Network Node 1 Node 2 LIP, ENS-Lyon
Related works • Standards TCP UDP • Low-level BIP SBP • High-levelMPI PVM • Intermediate level • Nexus • Fast messages • VIA • Gamma LIP, ENS-Lyon
The Madeleine II Interface Mad_begin_packing Mad_pack Mad_end_packing Mad_begin_unpacking Mad_unpack Mad_end_unpacking LIP, ENS-Lyon
int n; int n; char *s = "Hello, World !"; char *s = NULL; p_mad_connection_t cnx; p_mad_connection_t cnx; cnx = mad_begin_packing(channel, dest); cnx = mad_begin_unpacking(channel); n = strlen(s) + 1; mad_pack(cnx, &n, sizeof(int), mad_unpack(cnx, &n, sizeof(int), send_CHEAPER, receive_EXPRESS); send_CHEAPER, receive_EXPRESS); s = malloc(n); mad_pack(cnx, s, n, mad_unpack(cnx, s, n, send_CHEAPER, receive_CHEAPER); send_CHEAPER, receive_CHEAPER); mad_end_packing(cnx); mad_end_unpacking(cnx); Example Sending side Receiving side LIP, ENS-Lyon
Madeleine II – structure Application Application Generic BufferManagementModules Switch Switch BMM1 BMMn BMM1 BMMm Specific Transmission Modules Selection Selection TM1 TMn TM1 TMn Network LIP, ENS-Lyon
Implementation • Madeleine II currently available over: • SISCI/SCI • BIP/Myrinet • MPI • VIA • TCP • SBP LIP, ENS-Lyon
BIP/Myrinet LIP, ENS-Lyon
BIP/Myrinet LIP, ENS-Lyon
SISCI/SCI LIP, ENS-Lyon
SISCI/SCI LIP, ENS-Lyon
Current Limitations • Currently • network-homogeneous clusters • completely connected sessions Node 4 Node 3 SCI Node 1 TCP TCP LIP, ENS-Lyon Node 2
Madeleine II as a basis forgrid communication layers
Madeleine II – Grid Component • Multiprotocol communication device for • Nexus • MPICH • Provide cluster-level communication support • generic • efficient LIP, ENS-Lyon
Nexus/Madeleine II • Globus/Nexus: multi-site management • resource management, security • inter-cluster oriented • Madeleine II: high performance communication • generic structure • intra-cluster oriented • The best of both worlds! • Madeleine as a Nexus module LIP, ENS-Lyon
Structure Nexus Other modules TCP module Message Passing module Nexus/Madeleine module TCP protocol MPL protocol INX protocol MAD SCI protocol MAD TCP protocol Madeleine MPL Library INX Library Sockets SCI TCP LIP, ENS-Lyon
Latency LIP, ENS-Lyon
Bandwidth LIP, ENS-Lyon
MPICH/Madeleine II • MPICH: general-purpose portable MPI implementation • well-defined protocol interface • Abstract Device • Madeleine: cluster-specific high-performance communication • generic structure • available on Gigabit networks • highly optimized implementation • The best of both worlds! • Madeleine as a MPICH device LIP, ENS-Lyon
MPICH/Madeleine II MPI API Generic part (collective operations, context/group management, ...) ADI Generic ADI code, datatype management, request queues management ProtocolInterface CH_MAD device inter-node communication polling loops eager protocol rendez-vous-protocol SMP_PLUG device intra-node communication CH_SELF device self communication Madeleine II multi-protocol management TCP SISCI BIP Fast-Ethernet SCI Myrinet LIP, ENS-Lyon
Latency LIP, ENS-Lyon
Bandwidth LIP, ENS-Lyon
Madeleine II on network-heterogeneous clusters
Network-heterogeneous clusters • Existing solutions for heterogeneous cluster support • PACX-MPI, MPIConnect, MPICH-G • Common features • use of local MPIs for intra-cluster communication • limited inter-cluster support • Getting Madeleine heterogeneous? • MPICH/Madeleine Myrinet SCI LIP, ENS-Lyon
SCI Myrinet Myrinet TCP SCI Objectives LIP, ENS-Lyon
Objectives • Automatic communication support between nodes on different networks • Multiprotocol forwarding • Requirements • genericity • efficiency LIP, ENS-Lyon
Madeleine II – structure Application Application BufferManagementLayer Switch Switch BMM1 BMMn BMM1 BMMm Selection Selection Network Layer TM1 TMn TM1 TMn Network LIP, ENS-Lyon
Endpoint modification Application • Use of a generic TM • Advantages • symmetric BMM selection on both sides • Functions • control over protocol-dependent TM selection • MTU negociation BMM1 BMM2 BMMn Generic TM TM1 TM2 Réseau LIP, ENS-Lyon
The gateway Application Polling thread Forwarding thread Myrinet SCI LIP, ENS-Lyon
Latency LIP, ENS-Lyon
Bandwidth LIP, ENS-Lyon
Conclusion • Madeleine II: a generic communication interface • portable • efficient • Madeleine II as a basis for grid communication layers • Nexus • MPICH • Madeleine II on network-heterogeneous clusters • Myrinet + SCI • Heterogeneous MPICH/Madeleine Departemental-level grid computing? LIP, ENS-Lyon