Fast DL Visual Information Solutions IDL pour le

  • Slides: 12
Download presentation
Fast. DL Visual Information Solutions

Fast. DL Visual Information Solutions

IDL pour le traitement parallèle ? -Beaucoup d’expériences/simulations génèrent de « gros » jeux

IDL pour le traitement parallèle ? -Beaucoup d’expériences/simulations génèrent de « gros » jeux de données qui doivent être traités rapidement (dynamique des particules/fluides, biophysique, imagerie médicale, …). -Pour ces cas particuliers, le traitement parallèle et l’utilisation de clusters s’avèrent bien souvent nécessaires. -Cependant, IDL « ne sait pas » tirer naturellement profit de ce type d’architecture parallèle … Visual Information Solutions

Utilisation parallèle d’IDL avec Fast. DL -Pour rendre possible l’utilisation d’IDL sur des architectures

Utilisation parallèle d’IDL avec Fast. DL -Pour rendre possible l’utilisation d’IDL sur des architectures de type “cluster”, la société Tech. X a développé Fast. DL. -Fast. DL permet d’exécuter des applications de visualisation et d’analyse en parallèle sur des clusters, réduisant de façon significative les temps de calculs. Visual Information Solutions

Description de Fast. DL -Fast. DL se compose de 2 parties : -Task. DL

Description de Fast. DL -Fast. DL se compose de 2 parties : -Task. DL : une solution de type “task farming” conçue pour des applications dans lesquelles la communication entre les noeuds du cluster n’est pas requise. -mpi. DL : une solution de type “Message Passing Interface” conçue pour des applications nécessitant une communication entre les noeuds du cluster. Visual Information Solutions

Architecture de Task. DL -“Task” : brique de base de Task. DL correspondant à

Architecture de Task. DL -“Task” : brique de base de Task. DL correspondant à une commande IDL (routine système ou utilisateur). -“tdl” : Task. DL Server. -“Worker” : correspond à une session IDL connectée au serveur tdl. Un worker attend que le serveur tdl lui fournisse une tâche , l’exécute, et attend la prochaine. -“Private queue” : file d’attente de tâches sur le serveur tdl spécifique a chaque worker. -“Default queue” : file d’attente générale sur le serveur tdl pour tous les workers. Lorsque la file d’attente spécifique à un worker est vide, le serveur tdl fournit à ce worker une tâche de la file d’attente générale. Visual Information Solutions

Communication avec Task. DL -Il n’est pas nécessaire d’installer Task. DL sur tous les

Communication avec Task. DL -Il n’est pas nécessaire d’installer Task. DL sur tous les nœuds du cluster. -Cependant, chaque nœud doit être équipé d’une licence IDL développement ou runtime. -Les différents workers sont exécutés à partir d’un nœud principal en utilisant SSH (Secure Shell) ou RSH (Remote Shell). Visual Information Solutions

Workflow Task. DL 1. Lancement d’IDL sur le nœud principal (master node). 2. Le

Workflow Task. DL 1. Lancement d’IDL sur le nœud principal (master node). 2. Le nœud principal instancie un objet Task. DL et ouvre une session. 3. Le nœud principal « recrute » un ou plusieurs workers. 4. Les tâches sont ajoutées dans la liste d’attente générale, ou celle spécifique à un worker. 5. Le serveur tdl distribue les tâches aux workers. Des qu’ils ont fini leurs tâches, ils en reçoivent de nouvelles. 6. Une fois toutes les tâches achevées, la session Task. DL est fermée. Visual Information Solutions

Utilisation basique de Task. DL - Création d’un objet Task. DL IDL> o. Farm

Utilisation basique de Task. DL - Création d’un objet Task. DL IDL> o. Farm = OBJ_NEW(’taskdl’) - Ouverture d’une session o. Farm->open_session -Recrutement d’un worker my. Task. DL->spawn worker [, HOST=host] - Ajout d’une tâche o. Farm->add_task, ’print, "Hello Taskfarm"’ -Terminer une session o. Farm->close_session -Fermer Task. DL o. Farm->close_session Visual Information Solutions

Utilisation avancée de Task. DL -File d’attente privée o. Farm->spawn_worker, QUEUEID=queueid o. Farm->add_task, ’print,

Utilisation avancée de Task. DL -File d’attente privée o. Farm->spawn_worker, QUEUEID=queueid o. Farm->add_task, ’print, "hello from a specific worker"’, QUEUEID=queueid -Task stages Les « task stages » permettent à l’utilisateur de créer des dépendances entre les tâches, et d’indiquer quelles tâches peuvent ou ne peuvent pas être exécutées en parallèle. - Exemple for i = 0, nframes-1 do $ o. Farm->add_task, ’render_image, ’+string(i), STAGE = 1 o. Farm->add_task, ’encode_movie’, stage=2 o. Farm->advance_stage, 2 o. Farm->set_stage, 1 Visual Information Solutions

Utilisation de mpi. DL -Lancement : Mpirun -np n [other mpirun flags] $MPIDL_DIR/bin/mpidlstart [-quiet

Utilisation de mpi. DL -Lancement : Mpirun -np n [other mpirun flags] $MPIDL_DIR/bin/mpidlstart [-quiet –verbose – i] myfile. sav n : nombre de processus à exécuter en parallèle. myfile. sav : fichier IDL runtime à exécuter sur le cluster. Autres flags : -quiet : suppression des messages -verbose : définition du niveau de verbosité Visual Information Solutions

Fichiers runtime IDL -Comprendre le fonctionnement des fichiers IDL runtime permet de comprendre le

Fichiers runtime IDL -Comprendre le fonctionnement des fichiers IDL runtime permet de comprendre le fonctionnement des nœuds du cluster. -Au démarrage, le fichier runtime IDL spécifié est chargé dans chaque processus. -IDL cherche dans le fichier. sav une procédure nommée « MAIN » et l’exécute si elle existe. -Si « MAIN » n’est pas trouvée, IDL cherche une procédure dans le fichier. sav possédant le même nom que le fichier ( « myfile » dans l’exemple ci-dessus) et tente de l’exécuter. -Si aucune de ces 2 procédures n’existe, une erreur se produit. -Des fichiers. sav doivent être utilisés car les fichiers. pro ne peuvent pas être compilés en mode runtime. Visual Information Solutions

Fast. DL Exemples Visual Information Solutions

Fast. DL Exemples Visual Information Solutions