Condor (logiciel)
Condor (renommé HTCondor en octobre 2012) est un kit de composants logiciels (framework) open source de parallélisation de traitement pour la parallélisation à distribution grossière de tâches de calcul lourdes[1]. Il peut être utilisé pour gérer une charge de travail sur une grappe de serveurs dédiée, et/ou pour délester une charge de travail sur des postes de travail inactifs (grille informatique). Condor tourne sur les systèmes Linux, Unix, Mac OS X, FreeBSD, et sur les systèmes Windows actuels. Condor peut aisément faire collaborer des ressources dédiées (grappes de calculateurs en batterie) et des postes de travail non dédiés (grille informatique) en un seul environnement de calcul intégré.
Condor est développé par l’équipe Condor à l'Université du Wisconsin-Madison et peut être utilisé librement. Condor suit une philosophie open source (sous licence Apache 2.0)[2]. Il peut être téléchargé depuis son site web ou via les dépôts de la plupart des distributions linux basées sur Debian.
Par exemple, le pool Condor NAS NASA Advanced Supercomputing facility compte approximativement 350 postes de travail SGI et Sun acquis initialement pour du développement logiciel, de la visualisation, de la messagerie électronique, de la rédaction de documents, etc.[3]. Chaque poste de travail exécute un démon qui surveille les entrées-sorties de l’utilisateur et la charge du processeur. Quand un poste de travail est inoccupé depuis deux heures, un traitement de la file d'attente Condor est assigné au poste de travail et tourne jusqu'à ce que le démon détecte une action au clavier ou à la souris, ou une utilisation importante du processeur par un processus autre que Condor. À ce moment-là, le traitement Condor est retiré du poste de travail et replacé dans la file d’attente.
Condor peut lancer à la fois des traitements parallèles et des traitements séquentiels. Des traitements séquentiels peuvent être lancés dans différents « univers », par exemple « vanilla » qui offre la possibilité de lancer la plupart des programmes « prêts à tourner » ou encore l’« univers standard » dans lequel les liens de l’application-cible sont ré-édités avec la bibliothèque d’entrées-sorties Condor qui fournit des fonctionnalités de communication avec des traitements distants et de contrôle de traitement pas à pas. Condor fournit aussi un « univers local » qui permet aux traitements de tourner sur un « hôte soumis ».
Condor supporte les interfaces standard du monde parallèle MPI et PVM (Goux, et al. 2000) en plus de sa propre bibliothèque MW (“Master Worker”) dédiée à des tâches massivement parallèles.
Condor-G permet aux traitements Condor d’utiliser des ressources qui ne sont pas directement sous son contrôle. Il est surtout utilisé pour communiquer avec une grille de calcul et des ressources d’infonuagique, telles que les WS-* (et proto-WS-*) Globus, Nordugrid ARC, UNICORE et Amazon EC2. Mais il peut aussi être utilisé pour communiquer avec d’autres systèmes de traitement, tels que Torque/PBS et LSF. La prise en charge du Sun Grid Engine est actuellement en développement par le projet EGEE.
Condor prend en charge l'interface de programmation de traitement DRMAA. Cela permet à des clients compatibles DRMAA de soumettre et de contrôler des traitements Condor. L’implémentation de référence SAGA C++ fournit un adaptateur (plug-in) Condor, qui rend possible la soumission et le contrôle de traitements Condor via les API Python et C++ de SAGA.
Parmi les autres fonctionnalités Condor, citons “DAGMan” qui fournit un mécanisme pour décrire la dépendance entre traitements.
Condor est un des planificateur de tâches supporté par GRAM (Grid Resource Allocation Manager), un composant de la boîte à outils Globus.
Condor était le planificateur de tâches utilisé pour les traitements de la première assemblée d’étude du génome humain.
Dans la mesure où Condor optimise l’allocation du temps de calcul, laisser des ordinateurs allumés pour Condor accroît la consommation d’énergie et les coûts afférents. L’Université de Liverpool[4] a fait la démonstration d’une solution opérationnelle à ce problème en utilisant un mélange de WoL et de gestion d’électricité commerciale PowerMAN (Software)[5]. Depuis la version 7.1.1, Condor peut mettre en hibernation ou réveiller des machines en fonction d’une politique choisie par l’utilisateur, sans qu’il soit nécessaire d’utiliser un logiciel tiers pour cela[6].
Voir aussi
- Liste de projets concernant l’informatique distribuée
Références
- (en) Thain, Douglas, Todd Tannenbaum et Miron Livny, « Distributed Computing in Practice: the Condor Experience », Concurrency and Computation: Practice and Experience, vol. 17, nos 2–4, , p. 323–356 (DOI 10.1002/cpe.938, lire en ligne)
- Condor License Agreement
- Témoignages d’utilisation de Condor pour du calcul massivement parallèle
- Projet Condor à l’Université de Liverpool
- University of Liverpool case study with Data Synergy PowerMAN software
- Note d’édition Condor v7.1.1