Section: Software and Platforms



Participant : Remigiusz Modrzejewski [correspondant] .

Around 12,000 lines, developed in Python.

P2PVSim is a discrete-event simulator created for analyzing theoretical properties of peer-to-peer live video streaming algorithms. Implemented in Python it was designed with clarity and extensibility in mind from the beginning. It is capable of simulating overlays of a few thousands of peers. Multiple control protocols have been implemented. At the same time, a lot of work was put into the performance and scalability aspects of the software. Currently it is meant for simulating overlays of a few thousand peers running multiple control protocols that have been implemented. And in 2012, a distributed version of P2PVSim was developed running on an arbitrary number of computers. It has been so far used with success on a dozen computers with multiple cores all located in the same LAN.


Participant : Luc Hogie [correspondant] .

About 500 lines, developed in Java.

Papareto is a Java framework for the development of evolutionary solutions to computational problems. The primary motivation for developing an evolutionary framework was to give the Grph library the ability to generate particular graph instances. Papareto differs from other evolutionary frameworks (ECJ, WatchMaker, JGAP, etc) in the following ways:

  • it is multi-objective;

  • it is not a genetic algorithms (GAs) framework because it manipulates objects as is. It does not consider their chromosomes representation. Performance consequently is no longer impacted by the computational cost of encoding/decoding;

  • it parallelizes the creation and the evaluation of a new generation, adaptively to the evolving load of the computer;

  • it is self-adaptive in the sense that it dynamically evaluates the performance of the crossover and mutation operators, then gives greater priority to most efficient ones;

  • it is easy to use, by exposing the cleanest and more natural API possible and the minimal set of functionality enabling researchers and engineers to perform evolutionary computing;

See also the webpage http://www.i3s.unice.fr/~hogie/papareto/ .


Participants : Luc Hogie [correspondant] , Aurélien Lancin.

Around 3,000 lines, developed in Java.

Toools is a general purpose Java toolbox which, much like Google Guava and Apache Commons, aims at providing classes useful in daily programming tasks. It focuses on the following topics:

  • runtime (threads, control of parallel executions of SIMD code, execution of external processes, management of I/O operations, piping);

  • input/output files (a complete, easier to use and more complete new model for files on disk is provided) and streams;

  • reflection, including dynamic loading of classes, classpath management, Java beans, and access to the source code at runtime;

  • application configuration files (parsing, querying, saving);

  • plain text, XML;

  • collections, including Java collection utilities and efficient sets of primitive integers;

  • mathematical and statistical operations.

See also the webpage http://www-sop.inria.fr/members/Luc.Hogie/toools/ .

Other software

We ensure the maintenance of various tools developped in the past:


a software glue for the integration of Java applications intro the UNIX environment; http://www-sop.inria.fr/members/Luc.Hogie/java4unix/ ;


a Java toolkit for linear optimization; http://www-sop.inria.fr/members/Luc.Hogie/jalinopt/ ;


a minimal middleware infrastructure for practical distributed computing; see http://www-sop.inria.fr/members/Luc.Hogie/javafarm/ ;


a discrete event simulation engine use in the DRMSim routing model simulator; http://www-sop.inria.fr/mascotte/software/mascsim/ ;


a Java toolkit for the XML (de)serialization of Java objects; http://www-sop.inria.fr/members/Luc.Hogie/jaseto/ ;