Skip to content. | Skip to navigation

Emergences

Lettre d'information n° 45

Image emergences pour impression
Personal tools
You are here: Home 2017 Lettre d'information n° 45 Un moteur de workflows décentralisé et adaptatif
Document Actions

Un moteur de workflows décentralisé et adaptatif

Beaucoup d'applications aujourd'hui reposent sur l'exécution de milliers de tâches effectuées simultanément ou les unes après les autres. On appelle cela des workflows. Ils se déploient parfois sur un grand nombre de machines. D'où la complexité et la nécessité de les organiser efficacement. Créé au centre Inria Rennes – Bretagne Atlantique, GinFlow est un gestionnaire de workflows doublement innovant. Tout d'abord il introduit un mécanisme d'adaptation à chaud pour donner plus de souplesse aux utilisateurs. Ensuite, il implémente une technique pour décentraliser la coordination de l'exécution afin d'augmenter la tolérance aux fautes.

Beaucoup d'applications aujourd'hui reposent sur l'exécution de milliers de tâches effectuées simultanément ou les unes après les autres. On appelle cela des workflows. Ils se déploient parfois sur un grand nombre de machines. D'où la complexité et la nécessité de les organiser efficacement. Créé au centre Inria Rennes – Bretagne Atlantique, GinFlow est un gestionnaire de workflows doublement innovant. Tout d'abord il introduit un mécanisme d'adaptation à chaud pour donner plus de souplesse aux utilisateurs. Ensuite, il implémente une technique pour décentraliser la coordination de l'exécution afin d'augmenter la tolérance aux fautes.

« Un workflow, c'est un calcul composé de plusieurs tâches qui présentent des dépendances entre elles et doivent donc s'exécuter dans un certain ordre, explique le chercheur Cédric Tedeschi (1). Ainsi, on ne peut pas commencer une tâche avant la fin de la précédente parce que celle-ci doit produire un résultat que la seconde va ensuite utiliser. On appelle cela une dépendance de données. Mais il y a aussi des choses qui n'ont pas de dépendances entre elles et que l'on va pouvoir lancer en parallèle. Ainsi, les workflows sont souvent largement distribués, que ce soit sur grappe ou sur grille. »

Cependant, pour que ces workflows fonctionnent correctement, encore faut-il que le développeur de l'application ait bien spécifié toutes les dépendances. Ce qui n'est pas toujours une mince affaire. Et c'est là que GinFlow intervient. Apparu comme prototype de recherche en 2009, cet outil open source ambitionne de faciliter la gestion des workflows et de permettre aux utilisateurs d'accéder aux dernières innovations dans le domaine.

Adaptation à chaud

Durant la conception des workflows, il importe de pouvoir changer l'agencement et tester toutes sortes d'options sans trop de difficulté. « On peut souhaiter, par exemple, retirer une tâche ou un groupe de tâches, et les remplacer par d’autres, de façon dynamique, sans avoir à tout recommencer depuis le début »,  indique Matthieu Simonin (2), ingénieur de recherche.

« Il existe deux façons de faire cela, détaille Cédric Tedeschi. L'une s'appelle la conception d'adaptation à froid. Imaginons un utilisateur en train de créer un workflow. Il n'est pas sûr de ce que sera le résultat de la tâche. Donc avant même de lancer l'application, il va concevoir une alternative prête au cas où cette première ne marcherait pas. Et si, effectivement,  les données produites ne satisfont pas aux spécifications qu'il a énoncées, alors le workflow va se reconfigurer et basculer vers la tâche alternative prédéfinie. »

GinFlow va un cran plus loin en introduisant l'adaptation à chaud. « Parfois, les concepteurs de workflow hésitent pour la bonne et simple raison que tout dépend de tâches non-encore effectuées et de données pas encore calculées. GinFlow leur permet donc d'établir un point de contrôle sur une tâche. Le workflow va donc se mettre en pause à cet endroit. L'utilisateur ira vérifier la donnée et, à partir de là, décidera oui ou non de changer des choses, puis il relancera le workflow là où il s'était interrompu. Tout cela à l'exécution. »

Coordination décentralisée

Le deuxième aspect de ces recherches vise à décentraliser non pas seulement l'exécution mais aussi la coordination de cette exécution. « Une fois toutes les tâches spécifiées, il faut un orchestrateur pour les exécuter dans le bon ordre. Jusqu'à présent, cet orchestrateur était centralisé et situé sur une seule machine. Pas idéal en termes de passage à l'échelle et de tolérance aux fautes. Si l'on perd l'orchestrateur, on n'a plus rien. Nous avons donc travaillé sur un modèle de coordination décentralisée. Dans la nouvelle architecture que nous proposons, les machines qui travaillent se coordonnent directement entre elles. Chacune connaît la partie locale du workflow, c'est-à-dire la tâche à exécuter ainsi que ses dépendances d'entrée et de sortie. »

Une Action de développement technologique (ADT) de deux ans financée par Inria a permis de transformer le prototype en un outil complètement opérationnel et facile d'utilisation. « Nous avons gardé la philosophie de départ mais pratiquement réécrit tout le programme », résume Matthieu Simonin. Prochaine étape ? « Avoir la chance de travailler sur un vrai cas, répond Cédric Tedeschi. Nous pensons que GinFlow intéressa les développeurs d'applications scientifiques. De la météorologie à la cosmologie par exemple, beaucoup d'outils de simulation utilisent en fait des workflows. Ce sont  les domaines par excellence pour lesquels GinFlow peut répondre aux besoins. »

-----
Notes :

(1) (2) Cédric Tedeschi et Matthieu Simonin sont membres de Myriads, une équipe-projet Inria, Insa Rennes, ENS Rennes, université Rennes 1 et CNRS, commune à l'Irisa (UMR 6074)