Interface générique pour la parallélisation d'applications de recherche en imagerie biomédicale



Documents pareils
Thierry DELZESCAUX. «biopicsel» group, URA CNRS-CEA 2210 Service MIRCen, I²BM, CEA Fontenay-aux-Roses, France.

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

Forge. Présentation ( )

Les environnements de calcul distribué

INFO-F-404 : Techniques avancées de systèmes d exploitation

Middleware et services de la grille

ftp & sftp : transférer des fichiers

Guide de prise en mains du User Center

Présentation de la Grille EGEE

Open Source Job Scheduler. Installation(s)

Architecture de la plateforme SBC

BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

vcenter Server 1. Interface Lancez le vsphere Client et connectez vous à vcenter Server. Voici la page d accueil de vcenter Server.

L art d ordonnancer. avec JobScheduler. François BAYART

WGW PBX. Guide de démarrage rapide

How to Login to Career Page

Dafoe Présentation de la plate-forme UIMA

XtremWeb-HEP Interconnecting jobs over DG. Virtualization over DG. Oleg Lodygensky Laboratoire de l Accélérateur Linéaire

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Charte d'utilisation des infrastructures de la plate-forme bioinformatique Genotoul

GUIDE NSP Activation et gestion des produits avec NSP

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

TutoJRES Outils et Services Collaboratifs

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Guide de l enseignant. pour le Passeport Sécurité. Mise à jour : 10 août 2015

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Sauvegardes par Internet avec Rsync

Les fichiers de configuration d'openerp

GOUTEYRON ALEXIS. SIO2 N candidat: UEpreuve E4. USituation professionnelle 2. serveurs de fichiers. Uen haute disponibilité

Grid5000 aujourd'hui : Architecture & utilisation

Couche application. La couche application est la plus élevée du modèle de référence.

UTILISATION DE LA PLATEFORME WEB D ANALYSE DE DONNÉES GALAXY

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Xtremweb-HEP : A best effort virtualization middleware

OpenPaaS Le réseau social d'entreprise

SysFera-DS : vers une solution de portail scientifique collaboratif chez EDF. Benjamin Depardon

Qu'est-ce que c'est??

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Création d un service web avec NetBeans 5.5 et SJAS 9

LES ACCES ODBC AVEC LE SYSTEME SAS

Installation du transfert de fichier sécurisé sur le serveur orphanet

Les termes du cloud CUMULO NUMBIO 2015 O. COLLIN

Les mésocentres HPC àportée de clic des utilisateurs industriels

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

La sécurité des solutions de partage Quelles solutions pour quels usages?

Guide Installation Serveur Extensive Testing

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Table des matières. Chapitre 1 Les architectures TSE en entreprise

Cloud Computing Connectivity (Windows Azure, DRMAA) with ProActive Resource Manager

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Agile&:&de&quoi&s agit0il&?&

IBM Software Group. Migration vers Tivoli Workload Scheduler. Philippe TESSIER 2009 IBM Corporation

Pratique et administration des systèmes

Services Réseau SSH. Michaël Hauspie. Licence Professionnelle Réseaux et Télécommunications

Application web de gestion de comptes en banques

Containers : Outils magiques pour les Devops? OpenNebula et son écosystème pour une infrastructure cloud agile

Un exemple de cloud au LUPM : Stratuslab

Rapport d activité. Mathieu Souchaud Juin 2007

SysFera. Benjamin Depardon

Architecture de la grille

Cisco CCVP. Architecture Cisco UCM

ArcGis Server 10 (sur VM CentOS bits) DOCUMENT D INSTALLATION

Travaux Pratiques sur GRID 5000

Vers une meilleure gouvernance des plateformes d ingénierie

Les différentes méthodes pour se connecter

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

TechSoftware Présentations

Introduction de la journée

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Guide Installation Serveur Extensive Testing

TD/TP 1 Introduction au SDK d Android

pythonocc: une plateforme de développement agile d applications CAO.

Table des matières Hakim Benameurlaine 1

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

Cloud et Informatique Scientifique

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

PLM 2.0 : Mise à niveau et introduction à l'offre version 6 de Dassault systèmes

Importation et exportation de données dans HDFS

Documentation EdgeSight. Citrix XenApp 5.0

ORTIZ Franck Groupe 4. Terminal serveur pour administrer un serveur Windows à distance, client rdp linux.

Module pour la solution e-commerce Magento

Les commandes relatives aux réseaux

CP Upgrade Guide HOPEX V1R1 FR. Révisé le : 25 octobre Créé le : 16 juillet Auteur : Jérôme Horber

E 2 O : Oracle Enterprise 2.0

Formation continue BNF // Programme des cours 2015

FME Server comme plateforme d échanges de données raster multi-temporelles chez MeteoSuisse

Journée Utiliateurs Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Transcription:

d'applications de recherche en imagerie biomédicale Yann Cointepas : yann@sapetnioc.org Soizic Laguitton : soizic.laguitton@gmail.com

What is BrainVISA? Image processing pipeline Acquisition Acquisition Physicsts Artificial Artificialvision vision Biologists Analysis Analysis Applications Applications Methodologists Cogniticians Clinicians BrainVISA BrainVISA software A software B software C software D software E 2

Overview of BrainVISA architecture User Userinterface interface Toolboxes Toolboxes users methodologists Data Data management management Software Software management management Control Control programmers Data Softwares 3

Resource sharing with BrainVISA Accèscentraliséauxressources Organisationdesdonnées Développementd'applications BrainVISA Interactionsinter logiciels Déploiementsdelogiciels Interfacesaveclesutilisateurs Automatisationdesanalyses Visualisationinteractive Servicesauxutilisateurs et/oudéveloppeurs Imageurs Serveurs Logiciels Savoir faire 4

Some projects based on BrainVISA tools Projets BrainVISA 2,1 Sulci Morphometry 2,1 Connectomist 2,1 fmri MEEG 1. IFR 49, Saclay 3,1 5,1 DataMind 2. Neurospin, CEA, I²BM, Saclay 2,1 Nuclear imaging 3. MIRCEN, CEA, I²BM, MIRCEN, Orsay TMS 4. SHFJ, CEA, I²BM, Orsay 6. MRI Center, CENIR, Paris SACHA 7. LSIS, CNRS UMR 6168, Luminy 4,1 2,1 6,1 Stereotaxy 5. MEG Center, CENIR, Paris 6,1 Cortical surface 8. Odyssee Team, INRIA, Sophia Antipolis Odyssée 9. PENTILA, Le Bourget du Lac Syneika RIC 7 8 éduanatomist 10. IRISA, CNRS, INRIA, Rennes 11. Research Imaging Center, San Antonio, USA 2,1 BrainRAT Affiliations 2,1 T1 MRI 9 10 11 5

BrainVISA toolboxes (1) surface analysis multimodal interactive visualization anatomy segmentation and sulci identification 3D ROI drawing DTI analysis and fiber tracking registration 6

BrainVISA toolboxes (2) functionnal MRI nuclear imaging histology MEG / EEG TMS 7

BrainVISA web site: http://brainvisa.info 8

What is BrainVISA parallelization? Subject 1 AC/PC left Bias Histo... rigth Subject 2 AC/PC left Bias Histo... rigth Subject 3 AC/PC left Bias Histo... rigth Subject 4 AC/PC left Bias Histo... rigth... 9

Three parallelization layers BrainVISA Pipeline Python Python code Tâches Executable + files transfer 10

Parallélisation de tâches Objectif : Exploiter au mieux les ressources disponibles pour minimiser le temps d'exécution d'un ensemble de tâches. Tâche (Job) : executable + paramètres + données exécution unique en un temps fini Deux niveaux de granularité pour la parallélisation : exécution de plusieurs tâches indépendantes (par exemple un unique programme appliqué à un ensemble de données ) programmation parallèle mémoire partagée (1 machine, N coeurs): threads, OpenMP, etc. Mémoire distribuée (M machines, N coeurs): MPI, etc. 11

Utilisation des ressources par les chercheurs 1 machine (plusieurs coeurs) système d'exploitation Plusieurs machines ssh, implémentation MPI... Plusieurs utilisateurs accords/arrangements nécessaires Plus de machines, plus d'utilisateurs & plus de tâches Systèmes de gestion de ressources distribuées (DRMS) Gestion de la distribution des tâches : Pour optimiser l'utilisation des ressources Selon une politique d'utilisation De manière transparente pour l'utilisateur 12

Distributed resource Management System Solutions pour l'exploitation des ressources distribuées : systèmes de facturation gestion des licences logicielles gestion de ressources hétérogènes politique d'utilisation hautement configurable... Quelques exemples : Sun Grid Engine Condor LSF => CCRT platine & titane Torque/PBS Cluster DSV, CCRT cesium... 13

Objectifs du projet API simple et unique Accès distant transparent Gestion des transferts de fichier Gestion des déconnections Ajout aisé de l'accès à un nouveau cluster 14

Existant => DRMAA Distributed Resource Management Application API: API unique pour soumettre et contrôler des tâches sur les différents DRMS DRMAA working group développement des spécifications travail en cours sur DRMAA v2.0 Implémentation de sources variés principalement en C : 15

Ce que DRMAA ne résout pas DRMAA et ses implémentations : API unique pour l'accès aux DRMS soumission des tâches contrôle => suspendre, supprimer suivi => statut des tâches Pas d'utilisation possible à distance / pas de transfert de fichier Aucune sauvegarde des données Ne gère pas les déconnections (selon les implémentations) API compliquée 16

Solution dévelopée : API Python Connection constructeur resource_id, login password, (config_file) Soumission de tâches submit Contrôle des tâches undetermined queued_active system_on_hold user_on_hold user_system_on_hold running system_suspended user_suspended user_system_suspended done failed wait stop restart kill Transferts de fichiers sendfile registerfiletransfer retrievefile canceltransfer Suivi des tâches status exitinformation stdoutreadline stderrreadline Returned value + Exit status: aborted finished_regularly finished_signal finished_unclear_condition killed_by_user Données utilisateur jobs jobinformation transfers transferinformation 17

Méthode de soumission de tâches def submit( self, command, referenced_input_files = None, referenced_output_files = None, stdin = None, join_stderrout = False, disposal_timeout = 168, name_description = None, stdout_path = None, stderr_path = None, working_directory = None) 18

Soumission de tâches sans transfert de fichier stdin j.submit( command = [ python, mypath/job.py ], referenced_input_files = None, referenced_output_files = None, stdin = mypath/stdin, stdout_path = mypath/stdout, stderr_path = mypath/stderr, disposal_timeout = 48, join_stderrout = False, name_description = my python job, working_directory = mypath ) file0 python job.py file1 file2 stdout stderr 19

Soumission de tâches avec transfert de fichier file0_local = j.sendfile("mypath/file0", 168) script_local = j.sendfile("mypath/job.py", 168) stdin_local = j.sendfile( mypath/stdin", 168) IN file1_local = j.registerfiletransfer( mypath/file1", 168) file2_local = j.registerfiletransfer( mypath/file2", 168) OUT stdin file0 python job.py file1 file2 stdoutstderr jobid = j.submit( command = [ python, script_local], referenced_input_files =[file0_local, script_local, stdin_local], referenced_output_files =[file1_local, file2_local], stdin = stdin_local, join_stderrout = False, disposal_timeout = 168, name_description = my python job ) j.wait(jobid) j.retrievefile(file1_local) j.retrievefile(file2_local) 20

Solution développée - Architecture Pyro server JobServer DRMS (SGE, Condor...) Remote Local Cluster Jobs Database Somewhere 21

Solution développée Base de donnée - job id - expiration date - is stdout requested - is stderr requested - stdout file local path - stderr file local path - stdin file local path 0:1 0:mm input 0:nn Job 0:n - name/description date output 0:n submission Transfer 1 - login User Tables User Jobs Transfers Junction table Input/output 1 owns 0:n - remote file path - local file path - last modification date - expiration date 22

Solution développée - Architecture runs as Toto Local process Pyro server JobServer job status update loop DRMAA Session Toto Remote DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 23

Solution développée - Architecture Remote process runs process & creates tunnel Pyro client runs as Toto Local process Pyro server ssh tunnel Pyro server JobServer job status update loop DRMAA Session Toto Remote DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 24

Solution développée - Architecture Remote process Connection holder I'm here! runs process & creates tunnel Pyro client Connection Checker Proxy runs as Toto Local process Pyro server ssh tunnel Connection Checker Pyro server JobServer job status update loop DRMAA Session Toto Remote DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 25

Solution développée - Architecture Remote process Connection holder I'm here! runs process & creates tunnel Pyro client Connection Checker Proxy Job Scheduler Proxy runs as Toto Local process Pyro server ssh tunnel Connection Checker Job Scheduler Pyro server JobServer job status update loop DRMAA Session Toto Remote DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 26

Solution développée - Architecture Remote process Connection holder I'm here! API Jobs Pyro client Connection Checker Proxy Job Scheduler Proxy Toto Remote runs as Toto Local process Pyro server ssh tunnel Connection Checker Job Scheduler Pyro server JobServer job status update loop DRMAA Session File Transfer runs process & creates tunnel DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 27

Solution développée - Architecture runs as Toto Local process Pyro server Connection Checker Job Scheduler Pyro server JobServer job status update loop DRMAA Session Disconnection Remote Toto DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 28

Solution développée - Architecture runs as Toto Local process Pyro server JobServer job status update loop DRMAA Session Disconnection Remote Toto DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 29

Solution développée - Architecture runs as Toto Local process Pyro server All the jobs ended JobServer job status update loop DRMAA Session Disconnection Remote Toto DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 30

Solution développée - Architecture Pyro server All the jobs ended Disconnection Remote Toto JobServer DRMS (SGE, Condor...) Local Cluster Jobs Database Somewhere 31

Conclusion et perspectives Travail réalisé Etude de l'existant / Tests / Installations / Conception / Architecture Implémentation de l'api en python Batterie de tests sur le cluster test avec SGE: API complète en mode local et distant soumission de jobs parallèles MPI En cours: tests et debugging sur le cluster de test => DRMAA Condor tests et debugging sur le cluster national CEA/DSV => DRMAA PBS/Torque A faire: Amélioration du système de transfert de fichiers Installation et tests au CEA/CCRT => DRMAA LSF & DRMAA PBS/Torque Interface BrainVISA Interface graphique pour le suivi et contrôle des tâches 32