Message Passing Interface (MPI-1)



Documents pareils
Introduction à la Programmation Parallèle: MPI

Parallélisme et Répartition

Plan de la formation. Calcul parallèle avec MPI. Pourquoi paralléliser? Parallélisation. Présentation, environnement MPI. Communications point à point

Introduction to Parallel Programming with MPI

Rapport d activité. Mathieu Souchaud Juin 2007

Programmation parallèle et distribuée

PVM 1 PVM. Parallel Virtual Machine

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

Grid5000 aujourd'hui : Architecture & utilisation

CORBA haute performance

Initiation au HPC - Généralités

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Gestion de clusters de calcul avec Rocks

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Programmation C. Apprendre à développer des programmes simples dans le langage C

Quantification d incertitude et Tendances en HPC

1. Structure d'un programme FORTRAN 95

Grid Computing. Mihaela JUGANARU-MATHIEU École Nationale Supérieure des Mines de St Etienne

Projet IGGI. Infrastructure pour Grappe, Grille et Intranet. Fabrice Dupros. CASCIMODOT - Novembre Systèmes et Technologies de l Information

Travaux Pratiques sur GRID 5000

SIGAMM/CRIMSON COMMISSION UTILISATEUR du 05/12/2014

Cours Informatique Master STEP

Services de la grille

ParallelKnoppix. Majid Hameed. Copyright 2005 Majid Hameed. Copyright 2005 Gauthier Savart. Copyright 2005 Joëlle Cornavin

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

Systèmes parallèles et distribués

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

1 Description générale de VISFIELD

Client windows Nagios Event Log

Systèmes et traitement parallèles

Eléments d architecture des machines parallèles et distribuées

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

Environnements informatiques

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

TP développement : portage d applications sur le Cloud IaaS

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX

Tout d abord les pré-requis : Au menu un certain nombre de KB

vmware au CC-IN2P3 Déploiement rapide d une infrastructure destinée à de la formation et réflexions sur vsphere.

Plan du cours Cours théoriques. 29 septembre 2014

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

Middleware et services de la grille

Architecture des ordinateurs

La mémoire. Un ordinateur. L'octet. Le bit

IRL : Simulation distribuée pour les systèmes embarqués

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Architecture des calculateurs

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe

Communications performantes par passage de message entre machines virtuelles co-hébergées

Détection d'intrusions en environnement haute performance

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Automatisation de l administration système

D2.2 Définition des mécanismes minimaux d un runtime tolérant aux pannes dans les infrastructures Petascale

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Portage du modèle climatique de surface continentale de l'ipsl. sur une grappe de serveurs XD1

Les environnements de calcul distribué

Introduction à MATLAB R

EMC DATA DOMAIN OPERATING SYSTEM

<Insert Picture Here> Solaris pour la base de donnés Oracle

ViSaGe. Virtualisation du Stockage dans les Grilles. Informatiques. RenPar 16, 6-8 Avril 2005 Thiebolt François

Installation de Zabbix

Portage d applications sur le Cloud IaaS Portage d application

Infrastructures Parallèles de Calcul

Aspects théoriques et algorithmiques du calcul réparti L agglomération

Gestion répartie de données - 1

//////////////////////////////////////////////////////////////////// Administration bases de données

DG-ADAJ: Une plateforme Desktop Grid

Cours Programmation Système

Concept de machine virtuelle

Gestion mémoire et Représentation intermédiaire

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Gérer ses environnements de développement avec Vagrant RMLL 2012

Unix/Linux I. 1 ere année DUT. Université marne la vallée

TP1 - Prise en main de l environnement Unix.

White Paper - Livre Blanc

Simple Database Monitoring - SDBM Guide de l'usager

Systèmes distribués et virtualisation de ressources

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Le Cloud Open-Mind! Emilien Macchi

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Présentation du PL/SQL

Programmation parallèle et distribuée (Master 1 Info )

UNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES. THÈSE présentée par :

Demande d'ap informatique 2012

Un exemple de cloud au LUPM : Stratuslab

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre IX : Virtualisation

Multiprogrammation parallèle générique des méthodes de décomposition de domaine

CESI Bases de données

Tour d'horizon des Middlewares de Grille

Aide-Mémoire unix. 9 février 2009

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Rencontre sur la thématique du Calcul Haute Performance - 13 juin Better Match, Faster Innovation

Transcription:

IPGP INSTITUT DE PHYSIQUE DU GLOBE DE PARIS Programmation parallèle : Message Passing Interface (MPI-1) Geneviève Moguilny moguilny@ipgp.jussieu.fr Institut de Physique du Globe de Paris Réunion téléphonique EGEE-SA1-FR du 7 juin 2005

Architectures et modèles de programmation D après Flynn (1972), S : Single, I : Instruction, M : Multiple, D : Data. Séquentielles ou Parallèles Données Contrôle (Inst.) S I S SISD MISD M SIMD MIMD Parmi les MIMD, systèmes répartis = ensemble de machines reliées par un réseau. Programmation parallèle écriture d un (ou plusieurs) programme(s) qui s exécutera(ont) simultanément sur plusieurs processeurs afin d atteindre un but commun : chaque processeur exécutera une instance de programme, échange de données (message) appel à un sous-programme d une librairie d échange (ou de passage) de messages comme PVM (Parallel Virtual Machine) ou MPI (Message Passing Interface). Modèles de programmation sur les systèmes répartis à mémoire distribuée (P = Program) : MPMD pour un réseau hétérogène PVM ou MPI-2, SPMD pour un réseau homogène PVM (obsolète) ou MPI-[1 2]. Réunion EGEE-SA1-FR du 7 juin 2005 MPI 2 / 21

Application SPMD Un programme écrit dans un langage classique (Fortran, C...). Chaque processus reçoit la même occurence du programme mais par le biais d instructions conditionnelles, exécute le même code ou une partie différente du code, sur les mêmes données ou des données différentes. Les variables du programme sont privées et résident dans la mémoire du processeur allouée au processus. Les données sont échangées entre les processus par des appels à des sous-programmes d une librairie d échange de messages, comme MPI. Mem 1 Mem 2 Mem n Réseau à haut débit et faible latence : Myrinet, SCI, Infiniband... CPU 1 CPU 2 CPU n msgs, NFS,... msgs d 90 Mb/s, l 90 µs d 2 Gb/s, l 5 µs Programme........................... Réunion EGEE-SA1-FR du 7 juin 2005 MPI 3 / 21

La librairie de passage de messages MPI Historique : 1992 : Nécessité de créer des applications portables avec de bonnes performances création d un groupe de travail (principalement américano-européen) afin d adopter les méthodes HPF (High Performance Fortran). 1994 : Version 1.0 de MPI. 1997 : Définition d une norme pour MPI-2 (contrôle dynamique des tâches, E/S parallèles...) disponible aujourd hui. Principales implémentations du domaine public : LAM MPI (Indiana University), MPICH (Argonne National Laboratory) ; et sur celles-ci, librairies spécifiques à un réseau (MPI-GM : implémentation de MPICH sur Myrinet). Réunion EGEE-SA1-FR du 7 juin 2005 MPI 4 / 21

Concept d échange de message Application MPI = ensemble de processus autonomes exécutant leur propre code, et communiquant via des appels à des sous-programmes de la bibliothèque MPI. Communication Échange de messages Message = identificateur(processus émetteur) + type des données (simple ou dérivé) + longueur + identificateur(processus récepteur) + donnée Mem 1 Mem 2 CPU 1 envoyeur message CPU 2 récepteur Communication point à point Réunion EGEE-SA1-FR du 7 juin 2005 MPI 5 / 21

Principales catégories de l API MPI ➊ Gestion de l environnement activation / désactivation de l environnement (MPI INIT, MPI FINALIZE), identification des processus (MPI COMM SIZE, MPI COMM RANK). ➋ Communications (envoi et réception de messages) point à point, collectives. ➌ Gestion des groupes et communicateurs Communicateur : ensemble de processus sur lesquels portent les opérations MPI, groupe de processeurs + contexte de communication (géré par MPI). Création d un communicateur à partir : d un groupe de processus préalablement crée par le programmeur, d un autre communicateur (MPI COMM WORLD = l ensemble des processus). Réunion EGEE-SA1-FR du 7 juin 2005 MPI 6 / 21

Tout petit exemple Source : HelloMPI.f90 1: program HelloMPI 2: 3: implicit none 4: include mpif.h 5: integer :: nb_procs, rang, ierr 6: 7: call MPI_INIT(ierr) 8: 9: call MPI_COMM_SIZE(MPI_COMM_WORLD, nb_procs, ierr) 10: call MPI_COMM_RANK(MPI_COMM_WORLD, rang, ierr) 11: print *, Je suis le processus, rang, parmi,nb_procs 12: 13: call MPI_FINALIZE(ierr) 14: 15: end program HelloMPI Réunion EGEE-SA1-FR du 7 juin 2005 MPI 7 / 21

Tout petit exemple (suite) Compilation et Édition de liens : mpif90 HelloMPI.f90 -o HelloMPI 1: program HelloMPI 2: 3: implicit none 4: include mpif.h 5: integer :: nb_procs, rang, ierr 6: 7: call MPI_INIT(ierr) 8: 9: call MPI_COMM_SIZE(MPI_COMM_WORLD, nb_procs, ierr) 10: call MPI_COMM_RANK(MPI_COMM_WORLD, rang, ierr) 11: print *, Je suis le processus, rang, parmi,nb_procs 12: 13: call MPI_FINALIZE(ierr) 14: 15: end program HelloMPI ifort -c -Iincludes path HelloMPI.f90 ifort -Llibs path HelloMPI.o -static-libcxa -o HelloMPI -lmpichf90 -lmpich Lancement de l exécution : mpirun -np 4 -machinefile mf HelloMPI Lancement de l exécution de HelloMPI (par ssh ou rsh) sur 4 processeurs (np = number of processors) des machines parmi celles citées dans le fichier mf. Résultat obtenu : Je suis le processus 0 parmi 4 Je suis le processus 3 parmi 4 Je suis le processus 1 parmi 4 Je suis le processus 2 parmi 4 Réunion EGEE-SA1-FR du 7 juin 2005 MPI 8 / 21

Les communications point à point Communications entre 2 processus identifiés par leur rang dans le communicateur. Modes de transfert : standard : Synchronous : Buffered : Ready : MPI effectue ou non une recopie temporaire suivant l implémentation. envoi terminé quand réception achevée. recopie temporaire dans un buffer crée par le programmeur, envoi terminé lorsque recopie achevée. envoi effectué lorsque réception initiée (clients/serveurs). Envoi bloquant (envoi et réception couplés) ou non, réception Immédiate ou non. Deux types d échange : ➊ 1 envoyeur et 1 récepteur distincts (MPI SEND, MPI SSEND, MPI IBSEND...) : CPU 1 CPU 2 MPI_[mode]SEND MPI_[mode]RECV ➋ l envoyeur reçoit aussi et inversement (MPI SENDRECV, MPI SENDRECV REPLACE) : CPU 1 CPU 2 MPI_SENDRECV MPI_SENDRECV Réunion EGEE-SA1-FR du 7 juin 2005 MPI 9 / 21

Exemple de communication point à point simple 1:!! point_a_point.f90 : Exemple d utilisation de MPI_SEND et MPI_RECV 2:!! Auteur : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> (1996) 3: program point_a_point 4: implicit none 5: include mpif.h 6: integer, dimension(mpi_status_size) :: statut 7: integer, parameter :: etiquette=100 8: integer :: rang,valeur,ierr 9: call MPI_INIT(ierr) 10: call MPI_COMM_RANK(MPI_COMM_WORLD,rang,ierr) 11: 12: if (rang == 0) then 13: valeur=1234 14: call MPI_SEND(valeur,1,MPI_INTEGER,2,etiquette,MPI_COMM_WORLD,ierr) 15: elseif (rang == 2) then 16: call MPI_RECV(valeur,1,MPI_INTEGER,0,etiquette,MPI_COMM_WORLD,statut,ierr) 17: print *, Moi, processus, rang, j ai reçu,valeur, du processus 0. 18: end if 19: 20: call MPI_FINALIZE(ierr) 21: end program point_a_point CPU 0 CPU 1 CPU 2 CPU 3 mpif90 point a point.f90 -o point a point message : 1234 mpirun -np 4 -machinefile mf point a point Moi, processus 2 j ai reçu 1234 du processus 0. Réunion EGEE-SA1-FR du 7 juin 2005 MPI 10 / 21

Les communications collectives Ensemble de communications point à point à l intérieur d un groupe, fait en une opération. Synchronisations (BARRIER) Mouvement de données Diffusions générales (BCAST) ou sélectives (SCATTER) CPU 0 CPU 1 CPU 2 CPU 3 MPI_SCATTER(valeurs,ltranche,MPI_REAL, & donnees,ltranche,mpi_real,2,mpi_comm_world,code) Collectes réparties (GATHER) ou générales (ALLGATHER) Échanges croisés (ALLTOALL) Réductions (REDUCE avec SUM, PROD, MAX, MIN, MAXLOC, MINLOC, IAND, IOR, IXOR) CPU 0 CPU 1 CPU 2 CPU 3 val = 1 val = 2 val = 3 val = 4 sum = 10 MPI_REDUCE(val,sum,count,MPI_INTEGER,MPI_SUM,0,MPI_COMM_WORLD,code) Réunion EGEE-SA1-FR du 7 juin 2005 MPI 11 / 21

Création de communicateurs : les topologies Pour les applications qui utilisent une décomposition de domaine, il est intéressant de définir une grille virtuelle des processus afin d en faciliter la manipulation : nombre de sous-domaines = nombre de processus, travail sur les sous-domaines puis finalisation par calculs aux frontières. création de nouveaux communicateurs sur ces nouvelles topologies. Ces topologies peuvent être : cartésiennes : grille périodique ou non, identification des processus par leurs coordonnées, de type graphe pour les topologies plus complexes. 2 5 8 CPUs réels (0,2) (1,2) (2,2) 1 4 7 (0,1) (1,1) (2,1) 0 3 6 (0,0) (1,1) (2,0) 0 1 2 3 4 Voisins(3) = 1, 2, 4 MPI_CART_CREATE(...) MPI_GRAPH_CREATE(...) Réunion EGEE-SA1-FR du 7 juin 2005 MPI 12 / 21

Développement d une application MPI Pourquoi MPI? Permet de changer l ordre de grandeur du problème à traiter par une augmentation possible quasi-illimitée de la mémoire disponible, avec du matériel et du logiciel de base. Optimisation Choix du mode de communication : éviter les recopies inutiles Contention des messages Équilibrage de la charge en faisant attention aux goulets d étranglement (E/S) Recouvrement des temps de calcul et de communications Utilisation des communications persistantes Aide au développement Débogueurs graphiques supportant MPI : TotalView, DDT Visualisation des communications : Vampir/VampirTrace, Blade Application bien parallélisée avec MPI temps d exécution inversement proportionnel au nombre de processeurs utilisés Réunion EGEE-SA1-FR du 7 juin 2005 MPI 13 / 21

Documentation MPI Programmation parallèle et répartie : http://www.gulus.org/spip/img/pdf/midi_linux_mpi.pdf Cours MPI : http://www.idris.fr/data/cours/parallel/mpi/choix_doc.html www.obspm.fr/ websio/documentations/parallel/archi_mpi3.pdf http://www.cines.fr/textes/support_para.html Implémentations MPI du domaine public : LAM : http://www.lam-mpi.org MPICH : http://www.mcs.anl.gov/mpi/mpich Réunion EGEE-SA1-FR du 7 juin 2005 MPI 14 / 21

Exemple d application MPI tournant sur EGEE : SPECFEM3D Résolution de problèmes de propagation d ondes sismiques dans des milieux complexes et à haute fréquence à l échelle régionale, par la méthode des éléments spectraux. Application écrite initialement par D. Komatitsch (Université de Pau), utilisée dans plus de 75 laboratoires dans le monde, essentiellement pour des études de tremblements de terre, tomographie sismique, ultrasons dans les cristaux, topographie, bassins et vallées sédimentaires, ondes d interface, et cristaux anisotropes. Informations supplémentaires : http://www.univ-pau.fr/ dkomati1 Positionnement EGEE : NA4, VO ESR, catégorie Physique de la Terre solide Réunion EGEE-SA1-FR du 7 juin 2005 MPI 15 / 21

SPECFEM3D : spécificités techniques 20 000 lignes de Fortran 90 / MPI. Peut tourner sur 4 CPUs, a tourné sur 1944 CPUs sur le EarthSimulator (Japon). Sur EGEE, a tourné sur 64 CPUs au Nikhef (Pays-Bas), et sur 16 CPUs à SCAI (Allemagne), au LAL, au CPPM, et à la CGG. Contraintes : Optimisation de la mémoire recompilation et mise à jour de fichiers d entrée sur SE nécessaires à chaque changement des paramètres d entrée. Beaucoup de sorties provisoires ( écriture dans les /tmp propres à chaque nœud), + sorties écrites dans un répertoire partagé à récupérer ( /home montés NFS). Nécessite le lancement successif de deux mpirun qui doivent utiliser les mêmes nœuds, alloués dans le même ordre. Réunion EGEE-SA1-FR du 7 juin 2005 MPI 16 / 21

SPECFEM3D sur EGEE : Fem4.jdl 1: # Fem4.jdl 2: NodeNumber = 4; 3: VirtualOrganisation = "esr"; 4: Executable = "Fem"; 5: Arguments = "xmeshfem3d4 xspecfem3d4 4"; 6: StdOutput = "Fem.out"; 7: StdError = "Fem.err"; 8: JobType = "mpich"; 9: LRMS_type = "pbs"; 10: Type = "Job"; 11: InputSandbox = { "Fem", "xmeshfem3d4", "xspecfem3d4"}; 12: OutputSandbox = { "output_mesher.txt","output_solver.txt", "xmeshfem3d4.out", 13: "xspecfem3d4.out", "Fem.out","Fem.err","Par_file"}; 14: # Requirements = (other.glueceinfototalcpus >= 4); 15: Réunion EGEE-SA1-FR du 7 juin 2005 MPI 17 / 21

SPECFEM3D sur EGEE : script Fem (1/2) 1: #!/bin/sh 2: # copy of scai:/home/lcg2/mpirun_g95 modified - 11/03/2005 3: # 4: EXE1=$1 5: EXE2=$2 6: CPU_NEEDED=$3 7: TMP_DIR=/tmp/DATABASES_MPI_DIMITRI4 8: institut= echo $HOSTNAME cut -f2-5 -d. 9: # Different path for mpirun on LAL and CGG 10: if [ $institut == "lal.in2p3.fr" -o $institut == "private.egee.fr.cgg" ] ; then 11: MPIHOME=/usr/bin 12: else 13: MPIHOME=/opt/mpich/bin 14: fi 15: if [ -f "$PWD/.BrokerInfo" ] ; then 16: TEST_LSF= edg-brokerinfo getce cut -d/ -f2 grep lsf 17: else 18: TEST_LSF= ps -ef grep sbatchd grep -v grep 19: fi 20: if [ "x$test_lsf" = "x" ] ; then 21: HOST_NODEFILE=$PBS_NODEFILE 22: else 23: echo "LSF Hosts: $LSB_HOSTS" 24: HOST_NODEFILE= pwd /lsf_nodefile.$$ 25: fi 26: for host in cat ${HOST_NODEFILE} 27: do 28: ssh $host rm -rf $TMP_DIR 29: ssh $host mkdir $TMP_DIR 30: ssh $host chmod 775 $TMP_DIR 31: done 32: LocalFn="DATA.tgz" 33: echo "trying edg-rm..." Création des répertoires temporaires 34: cmd="edg-rm --vo esr copyfile lfn:data${cpu_needed}.tgz file:// pwd /$LocalFn" 35: echo ">>> $cmd" 36: $cmd 37: 38: if [! -f $LocalFn ] ; then 39: echo "edg-rm failed, trying lcg-cp..." 40: export LCG_GFAL_INFOSYS="mu3.matrix.sara.nl:2170" 41: cmd="lcg-cp --vo esr lfn:data${cpu_needed}.tgz file:// pwd /$LocalFn" 42: echo ">>> $cmd" 43: $cmd 44: fi } Définition du path de mpirun Rapatriement des données d un SE Réunion EGEE-SA1-FR du 7 juin 2005 MPI 18 / 21

SPECFEM3D sur EGEE : script Fem (2/2) 45: if [! -f $LocalFn ] ; then 46: echo "$LocalFn not found." 47: exit 48: fi 49: # 50: echo "*************************************" 51: tar xfz $LocalFn 52: rm $LocalFn 53: rm -rf OUTPUT_FILES 54: mkdir OUTPUT_FILES 55: cp DATA/Par_file. 56: 57: chmod 755 $EXE1 58: chmod 755 $EXE2 59: ls -l 60: time $MPIHOME/mpirun -np $CPU_NEEDED -machinefile $HOST_NODEFILE \ 61: pwd /$EXE1 > $EXE1.out 62: cp OUTPUT_FILES/output_mesher.txt. 63: time $MPIHOME/mpirun -np $CPU_NEEDED -machinefile $HOST_NODEFILE \ 64: pwd /$EXE2 > $EXE2.out 65: echo "Size of OUTPUT_FILES :" 66: du -sk OUTPUT_FILES 67: for host in cat ${HOST_NODEFILE} 68: do 69: ssh $host echo "Size of $TMP_DIR on $host :" 70: ssh $host du -sk $TMP_DIR 71: ssh $host rm -rf $TMP_DIR 72: done 73: cp OUTPUT_FILES/output_solver.txt. 74: tar cfz OUTPUT_FILES${CPU_NEEDED}.tgz OUTPUT_FILES 75: lcg-del --vo esr -s grid11.lal.in2p3.fr lcg-lg --vo esr \ 76: lfn:output_files${cpu_needed}.tgz 77: lcg-cr --vo esr -d grid11.lal.in2p3.fr \ 78: file:// pwd /OUTPUT_FILES${CPU_NEEDED}.tgz \ 79: -l OUTPUT_FILES${CPU_NEEDED}.tgz 80: exit } Lancement des mpirun Stockage des sorties sur SE Réunion EGEE-SA1-FR du 7 juin 2005 MPI 19 / 21

SPECFEM3D sur EGEE : exécution UI RB SE CE WN WN CPU 0 CPU 1 WN CPU 0 CPU 1 /tmp exec1 exec2 /tmp mpirun... exec1 mpirun... exec2 CPU 0 CPU 1 /tmp exec1 exec2 E/S messages Serveur de disques /home Site Réunion EGEE-SA1-FR du 7 juin 2005 MPI 20 / 21

Perspectives SPECFEM3D : des collaborations avec DEISA et Grid5000 vont être gérées par l INRIA Bordeaux. Souhaits à court terme : Installations homogènes de MPI (path standard ou tag MPIHOME). Nœud CPU remplacement de Torque par un autre LRMS comme SGE ou OAR? Queues spécifiques MPI contenant des CPUs de puissance équivalente. Dans le futur... Réservation de CPUs. MPI inter-sites (MPICH-G2, MPICH-V). Disposer de réseaux performants (Myrinet, Infiniband...). MPI sur des RC disposant de plusieurs centaines de nœuds (CCIN2P3?). Mais globalement, MPI / Fortran90 sur EGEE marche!! Réunion EGEE-SA1-FR du 7 juin 2005 MPI 21 / 21