HTCaaS

, Page d'accueil

Le High-Throughput computing (HTC) consiste à exécuter des taches faiblement interdépendantes (qui ne nécessitent pas de communication entre elles), mais qui ont besoin d’une grande puissance de calcul sur une période relativement longue. Les systèmes Middleware tel que Condor ou BOINC sont parvenus à atteindre des puissances de calcul énormes en mobilisant un grand nombre de ressources informatiques. Cependant, le nombre de tâches et la complexité des applications scientifiques augmentent. C’est alors un défi pour l’actuel middleware utilisant habituellement un seul type de ressources (E.g. cluster de stations de travail et d’ordinateurs de bureau reliés par Internet), de résoudre un problème scientifique donné en un temps raisonnable. En outre l’émergence récente des applications qui requièrent l’exécution de millions, voir milliards de tâches en un temps relativement limité, a conduit le calcul à haut débit traditionnel à devenir du Many-Tasks Computing (MTC).

Par conséquent, pour prendre en charge efficacement ces applications scientifiques complexes et exigeantes, il est impératif de tirer parti d’autant de ressources de calcul que possible, superordinateurs, grids et clouds. Néanmoins, c’est un challenge pour les chercheurs d’utiliser efficacement des ressources controlees par des fournisseurs indépendants, étant donné que le nombre de travaux (devant être soumis en même temps) augmente de façon spectaculaire (comme dans les balayages de paramètres, ou les calculs à N-Corps).

Nous avons conçu et implémenté le système HTCaaS (High-Throughput computing as à Service), qui est capable de masquer aux utilisateurs la complexité et l’hétérogénéité de l’exploitation de ressources de calcul variées, et d’envoyer de nombreuses commandes à la fois en gérant et en exploitant efficacement toutes les ressources disponibles.


Principes de conception:

  • facilité d’utilisation: les couts de traitement d’une grande quantité d’applications et de ressources informatiques sont minimisés.
  • Sélection de ressources intelligentes: L’HTCaaS est capable de sélectionner automatiquement des ressources plus efficaces et plus réactives, et de s’adapter à la charge actuelle en ajustant dynamiquement les ressources acquises.
  • Interface pluggable aux ressources: Nous utilisons le mécanisme du pluggin GANGA afin d’accéder aux ressources informatiques hétérogènes sans hardcoding.
  • Support pour de nombreuses interfaces client: Un large eventail d’interfaces client sont supportées, y compris une interface native WS, Java API, et des outils client (CLI, GUI).

Architecture et composants systeme

L’HTCaaS est constitué de 5 modules côté serveur (Gestionnaire de compte, Gestionnaire de données utilisateur, Gestionnaire de commandes informatiques, Gestionnaire d’agent, et Gestionnaire de surveillance) et de deux outils côté client (Interface ligne de commande et Interface utilisateur graphique).



Dans notre système, une commande informatique correspond aux données et au profil associé qui décrit le traitement à effectuer. Comme certains utilisateurs peuvent vouloir exécuter un grand nombre de commandes en utilisant les paramètres sweep ou des calculs à N corps, HTCaaS offre le concept de Meta-Job, qui spécifie la description d’une tache de plus haut niveau en se basant sur le standard OGF JSDL. Une fois qu’un Meta-Job est soumis, HTCaaS le divise automatiquement en sous-jobs et les insert dans la file de Jobs (implémentée en active MQ) gerée par le Job Manager. Toutes les données saisies ainsi que les résultats produis sont stockés dans le gestionnaire de données utilisateur. Une fois qu’un job est envoyé dans notre système, des agents (implémentés en Java) sont dispatchés par le gestionnaire d’agents et exécutent les jobs dans les superordinateurs, les grids et les clouds. HTCaaS utilise le multi-level scheduling & streamlined job dispatching basé sur les agents, de façon à ce que les requêtes de premier niveau faites a un ordonnanceur batch (E.g. …) reserve les ressources en soumettant des agents comme batch jobs, qui tirent chacun de facon proactive les jobs du gestionnaire de job qui met en oeuvre le mécanisme léger et rapide du dispatchement de jobs.

Par conséquent, les utilisateurs du HTCaaS sont capables de soumettre et d’exécuter des centaines de milliers de jobs (qui peuvent être exprimés par un simple script JSDL) a l’intérieur d’un processus automatisé, de les surveiller efficacement et de traiter les résultats finaux. Pour ceux qui ne sont pas familiers avec le style de script XML, nous proposons également un outil GUI easy-to-use qui peut générer le script JSDL automatiquement en se basant sur les données saisies par l’utilisateur afin de l’envoyer au système. Le déroulement global d’un job et de son exécution dans un système HTCaaS est le suivant:



1. L’utilisateur identifie HTCaaS et envoie les données entrées via le gestionnaire de données utilisateur.
2. L’utilisateur soumet un Meta-Job (écrit en JSDL) pouvant être compose de taches multiples.
3. HTCaaS divise automatiquement le Meta-Job en taches multiples en suivant les spécifications et les inserts dans la file de jobs.
4. Le gestionnaire d’agents dispatche les agents selon les besoins des jobs et les ressources disponibles.

Publications et presentations techniques


Publications

  1. Jik-Soo Kim, Sangwan Kim, Seokkyoo Kim, Seoyoung Kim, Seungwoo Rho, Ok-Hwan Byeon, and Soonwook Hwang, Towards a Next Generation Distributed Middleware System for Many-Task Computing, To appear at