Home Members Publications Projects/Collaborations Software

Simgrid Distem

SimGrid is a toolkit that provides core functionalities for the simulation of distributed applications in heterogeneous distributed environments. The specific goal of the project is to facilitate research in the area of distributed and parallel application scheduling on distributed computing platforms ranging from simple network of workstations to Computational Grids.

SimGRID has two APIs for researchers who study algo- rithm and need to prototype simulations quickly, and two for developers who can develop applications in the comfort of the simulated world before deploying them seamlessly in the real world. SimGrid employs a mod- ular simulation kernel that supports the addition and use of new resource models without changes in the user code. We used this feature ourselves to implement sev- eral simulation models and even to integrate the GTNetS packet-level simulator with SimGrid.

SimGrid consists of 30,000 lines of GPL'ed code. It is freely available and comes with all relevant information as well as with several exam- ple programs and tutorials. SimGrid uses an extensive regression testing suite as well as set of automatic com- pilation daemons ensuring a reasonable level of software quality. It is ported to Linux, Windows, Mac OS X and AIX.

Home Page

Distem is a distributed systems emulator. In the context of research on Cloud, P2P, High Performance Computing or Grid systems, it can be used to transform an homogeneous cluster (composed of identical nodes) into an experimental platform where nodes have different performance, and are connected together through a complex network topology, thus facilitating the evaluation or benchmarking of applications targeting such environments.

Distem relies on modern Linux features (LXC, cgroups, cpufreq, iptables, traffic control) to steal resources from applications. At the node level, it provides the ability to introduce heterogeneity by splitting a multi-core node into several several virtual nodes of varying number of cores and CPU frequency. At the network level, it allows the user to describe and build virtual network topologies where each link has a given latency, and bandwidth limit.

Distem is controlled through a REST API to ease its integration into experiment scripts, but also provides a Ruby library and a command-line interface. It is freely available under the GNU GPL.

More information is available from http://distem.gforge.inria.fr/.

Distem is a follow-up of our work on the Wrekavoc emulator.

Kadeploy P99

Kadeploy is a scalable, efficient and reliable deployment (provisioning) system for clusters and grids. It provides a set of tools for cloning, configuring (post installation) and managing cluster nodes. It can deploy a 300-nodes cluster in a few minutes, without intervention from the system administrator. It plays a key role on the Grid'5000 testbed, where it allows users to reconfigure the software environment on the nodes, and is also used on a dozen of production clusters both inside and outside INRIA.

Home Page

P99 is a suite of macro and function definitions that ease programming in modern C, aka C99. By using new facilities in C99 we implement default arguments for functions, scope bound resource management, transparent allocation and initialization, ...

By using special features of some compilers and operating systems, we also are able to provide an almost feature complete emulation of the new C standard, C11.

Home Page


parXXL is a library for large scale computation and communication that executes fine grained algorithms (computation and communication are of the same order of magnitude) on so-called coarse grained architectures (clusters, grids, mainframes, out-of-core computing). It supports execution on the basis of POSIX threads (for shared memory) and MPI (for distributed settings).

It implements different interfaces for different programming needs: matrix oriented computation, dynamic data structures such as lists or graphs, and cellular networks. One of its strength is an efficient data abstraction that allows for a seamless access and manipulation of data, which size may even extend the limits of the virtual address space of the underlying architecture.

This project is a collaboration of INRIA and SUPELEC.

Home Page

P2P-MPI is a framework proposing a peer-to-peer management of resources coupled with a fault-tolerant message-passing library for Java programs.

Fault-tolerance: The communication library implements fault-tolerance through replication of processes. A number of copies of each process may be asked to run simultaneously at runtime. So, contrarily to an MPI application that crashes as soon as any of its processes crash, a P2P-MPI using replication will be able to continue as long as at least one copy of each process is running.

Resource discovery: Contrarily to most MPI implementations that rely on a static description of resources, P2P-MPI has adopted a peer-to-peer architecture to adapt to volatility of resources. A resource joins the P2P-MPI grid and becomes available to others when a simple user starts a P2P-MPI peer. Thus, at each job request, the middleware handles a discovery of available resources, possibly guided by simple strategies indicated by the user, to satisfy the job needs.

Home Page