Overall Objectives
Application Domains
New Software and Platforms
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
Bibliography
 PDF e-Pub

## Section: New Software and Platforms

### HLCMi, L${}^{2}$C, & Gluon++

Participants : Hélène Coullon, Vincent Lanore, Christian Perez [correspondant] , Jérôme Richard.

HLCMi (http://hlcm.gforge.inria.fr ) is an implementation of the HLCM component model. HLCM is a generic extensible component model with respect to component implementations and interaction concerns. Moreover, HLCM is abstract; it is its specialization—such as HLCM /L${}^{2}$C—that defines the primitive elements of the model, such as the primitive components and the primitive interactions.

HLCMi is making use of Model-driven Engineering (MDE) methodology to generate a concrete assembly from an high level description. It is based on the Eclipse Modeling Framework (EMF). HLCMi contains 700 Emfatic lines to describe its models and 7000 JAVA lines for utility and model transformation purposes. HLCMi is a general framework that supports several HLCM specializations: HLCM /CCM , HLCM /JAVA, HLCM /L${}^{2}$C and HLCM /Charm++ (known as Gluon++).

L${}^{2}$C (http://hlcm.gforge.inria.fr ) is a Low Level Component model implementation targeting at use-cases where overhead matters such as High-Performance Computing. L${}^{2}$C does not offer network transparency neither language transparency. Instead, L${}^{2}$C lets the user choose between various kinds of interactions between components, some with ultra low overhead and others that support network transport. L${}^{2}$C is extensible as additional interaction kinds can be added quite easily. L${}^{2}$C currently supports C++, FORTRAN 2013, MPI and CORBA interactions.

Gluon++ (http://hlcm.gforge.inria.fr ) is a thin component model layer added on top of Charm++ (http://charm.cs.uiuc.edu/ ). It defines chare components as a Charm++ chare with minimal metadata, C++ components as a C++ class with minimal metadata, (asynchronous) entry method calls between components, and plain C++ method calls between components.

L${}^{2}$C and Gluon++ are implemented in the LLCMc++ framework (http://hlcm.gforge.inria.fr ). It is distributed under a LGPL licence and represents 6400 lines of C++.