Section: Software
PadicoTM
Participant : Alexandre Denis.
PadicoTM is a high-performance communication framework for grids. It is designed to enable various middleware systems (such as CORBA, MPI, SOAP, JVM, DSM, etc.) to utilize the networking technologies found on grids. PadicoTM aims at decoupling middleware systems from the various networking resources to reach transparent portability and flexibility: the various middleware systems use PadicoTM through a seamless virtualization of networking resources; only PadicoTM itself uses directly the networks.
PadicoTM architecture is based on software components. Puk (the PadicoTM micro-kernel) implements a light-weight high-performance component model that is used to build communication stacks. Typical communications stacks built in PadicoTM follow a three-layer approach. The lowest layer, called the arbitration layer , aims at making the access to the resources cooperative rather than competitive. It enables the use of multiple middleware systems atop a single network, as needed by code coupling programming models such as parallel objects or parallel components. This layer is based on PIOMan to ensure high performance and good interactions between threads and networking. The middle layer, called the abstraction layer , decouples the paradigm of the programming interface from the paradigm of the network; for example, it can do dynamic client/server connections over static SPMD networks. The highest level layer, called the personality layer , gives several API called “personalities” over the abstractions. It aims at providing the middleware systems with the API they expect. It enables PadicoTM to seamlessly integrate unmodified middleware systems.
PadicoTM currently supports most high performance networks (Infiniband, Myrinet, SCI, Quadrics, etc.), communication methods for grids (plain TCP, splicing to cross firewalls, routing, tunneling). Various middleware systems are supported over PadicoTM: various CORBA implementations (omniORB, Mico), popular MPI implementations (MPICH from Argonne – actually, MPICH/PadicoTM is derived from MPICH-Madeleine —, YAMPI from the University of Tokyo, our own Mad-MPI), Apache Portable Runtime, JXTA from Sun (in collaboration with the Paris project), gSOAP, Mome (DSM developed in the Paris project), Kaffe (Java virtual machine), and Certi (HLA implementation from the ONERA).
PadicoTM was started in the Paris project (Rennes) in 2001, in collaboration with Christian Pérez and migrated in Runtime in October 2004 together with Alexandre Denis . The current main contributors to PadicoTM are Alexandre Denis and François Trahay (Runtime ) with some occasional contributions from Christian Pérez (Paris ).
PadicoTM is composed of roughly 50 000 lines of C. It is free software distributed under the terms of the GNU General Public License, and is available for download at: http://runtime.bordeaux.inria.fr/PadicoTM/ . It is has been hosted on InriaGForge since mid-2005. PadicoTM is registered at the APP under number IDDN.FR.001.260013.000.S.P.2002.000.10000.
PadicoTM component model is now used in NewMadeleine . It is the cornerstone for networking integration in the projects “LEGO” and “COOP” from the ANR. Previously, it has been used by several projects: ACI GRID “RMI”, ACI GRID HydroGrid, ACI GRID EPSN, Inria ARC RedGrid, and the European FET project POP.