Paraloop

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 23/10/08
  • Correction mineure : 12/04/12
Mots-clés

Paraloop : distribution de travaux en parallèle

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like
  • Version actuelle : 1.3 - Septembre 2008
  • Licence(s) : CeCILL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Emmanuel COURCELLE
  • Contact concepteur(s) : emmanuel.courcelle à toulouse.inra.fr
  • Laboratoire(s), service(s)... : LIPM

 

Fonctionnalités générales du logiciel

Paraloop permet de distribuer des travaux sur plusieurs processeurs d'une machine, et ce de manière indépendante de l'architecture de la machine hôte: celle-ci peut être une machine SMP à mémoire partagée, ou encore une grappe de processeurs, voire un réseau de stations de travail.

Paraloop est bien adapté aux cas où nous avons un grand nombre de tâches indépendantes à effectuer. Cette situation est très fréquente dans les "pipelines" de traitements de données que l'on trouve en bioinformatique.

Paraloop est un outil pour les programmeurs, qui pourront ainsi aisément distribuer leurs travaux, en utilisant le même script quelle que soit la machine. Il s'agit d'un programme écrit en perl orienté objets: le traitement de données est encapsulé dans un objet, ainsi que le code permettant d'interagir avec la machine. Il est ainsi relativement simple d'adapter paraloop à une nouvelle architecture de machine, car cela revient à écrire un nouvel objet (quelques méthodes seulement). De même, il est simple d'écrire des "plugins", objets permettant de lire des données à un format particulier, et de les traiter.

Quelques plugins sont livrés avec paraloop, soit spécifiques au champ de la bioinformatique, soit généralistes (lecture d'un fichier texte par exemple). Il serait cependant utile d'écrire d'autres plugins correspondant à d'autres secteurs d'activité.

Lorsqu'il est utilisé dans un contexte de queue avec limitation du temps processeur, il est par ailleurs possible de configurer paraloop afin que le travail en cours soit interrompu avant d'être tué par le système; dans ce cas, le job "se resoumet" à la queue juste avant son interruption, de sorte que le travail reprendra dès que la charge du système le permettra.

Par ailleurs, paraloop dispose d'une commande permettant à l'utilisateur de savoir l'état d'avancement de l'ensemble des travaux.

Enfin, un mode "équilibrage de charge" permet d'assurer un équilibrage de charge entre les différents travaux.

Contexte d’utilisation du logiciel

Nous utilisons quotidiennement paraloop pour nos calculs de bioinformatique soit sur des serveurs SMP, soit sur des grappes de calcul. D'autre part, paraloop est intégré à nos projets bioinformatiques (eugène, LeARN, narcisse, ...).

Publications liées au logiciel

Paraloop a fait l'objet d'un poster du J-RES en 2005 http://2005.jres.org/resume/poster/138.pdf ainsi qu'au congrès JOBIM 2005 http://pbil.univ-lyon1.fr/events/jobim2005/proceedings/P64Courcelle.pdf

Paraloop est actuellement hébergé par la forge SourceSup: http://sourcesup.cru.fr/projects/paraloop

Commentaires

Responsable thématique précédent

Cette fiche a d'abord été suivie par le responsable thématique Violaine Louvet. Geneviève Romier l'a reprise en mai 2011.