Pooch et le calcul distribué

Documents pareils
HAYLEM Technologies Inc.

Installation et prise en main

Environnements de développement (intégrés)

Comment utiliser FileMaker Pro avec Microsoft Office

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Installation et compilation de gnurbs sous Windows

Guide d installation de MySQL

TD/TP 1 Introduction au SDK d Android

Boot Camp Guide d installation et de configuration

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Eclipse atelier Java

Guide de configuration. Logiciel de courriel

Mac OS X 10.6 Snow Leopard Guide d installation et de configuration

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Projet De Stijl Plate-forme pour robots mobiles

Système Principal (hôte) 2008 Enterprise x64

Manuel de System Monitor

Certificats Electroniques sur Clé USB

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

0.1 Mail & News : Thunderbird

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

Introduction à Eclipse

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Logiciel interne (firmware) du DiMAGE X1 Ver.1.10

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

VERITAS Backup Exec TM 10.0 for Windows Servers

Certificats Electroniques sur Clé USB

Atelier Le gestionnaire de fichier

Tutoriel code::blocks

Tutorial Terminal Server sous

SQL Server Installation Center et SQL Server Management Studio

Livret 1 Poste de travail de l utilisateur :

TD séance n 2c Mise à jour des Systèmes

Organiser les informations ( approche technique )

FileMaker Server 14. Guide de démarrage

Installation / Sauvegarde Restauration / Mise à jour

Introduction. Qu est-ce que WordPress? Pourquoi choisir WordPress?

Comment configurer Kubuntu

Remise à niveau d un programme JAVA du domaine public

Manuel d utilisation Logiciel (Communications Utility)

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Le langage C. Séance n 4

Fiche produit Site Monitor v4

Manuel d'installation de GESLAB Client Lourd

Guide d installation JMap 5.0

Effectuer un triple boot sur un Mac

Outils pour les réseaux de neurones et contenu du CD-Rom

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Installation & Mode d emploi WL400 Adaptateur/Antenne Wifi

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Single User. Guide d Installation

Comment installer le gestionnaire de licence avec une nouvelle version de Arche / Effel / Melody?

Sessions en ligne - QuestionPoint

wxwidgets dans un environnement Microsoft Windows

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

User Documentation. Documentation utilisateur. version 0.2b

Premiers pas avec VMware Fusion. VMware Fusion pour Mac OS X

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Guide de l utilisateur du Centre de gestion des licences en volume LICENCES EN VOLUME MICROSOFT

Certificats de signature de code (CodeSigning)

Optimiser pour les appareils mobiles

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Installation d OpenVPN

TP01: Installation de Windows Server 2012

!" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17

pas à pas prise en main du logiciel Le Cloud d Orange - Transfert de fichiers sur PC et MAC Le Cloud

Quick Start Installation de MDweb version 2.3

Installation et utilisation du client FirstClass 11

Table des matières 1. Installation de BOB BOB ou un programme annexe ne démarre pas ou ne fonctionne pas correctement...10

Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Guide d installation de SugarCRM Open Source version 4.5.1

FileMaker Pro 12. Guide de configuration de l installation réseau

STATISTICA Version 12 : Instructions d'installation

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

cbox VOS FICHIERS DEVIENNENT MOBILES! INTERFACE WEB MANUEL D UTILISATION

Chapitre 02. Configuration et Installation

Premiers contacts avec. Mac OS X Server. Informations sur l installation et la configuration de Mac OS X Server, version 10.2

Manuel du Desktop Sharing

Manuel d utilisation du logiciel Signexpert Paraph

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

Préparation à l installation d Active Directory

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows

La boîte à outils GAS sur clé USB - Manuel d utilisation de la Mise à jour Smart

Suite logicielle ZOOM version 7.1 Guide d installation 94ZM-ZMJ1F-712

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Gestion des documents avec ALFRESCO

Notes de mise à jour. 4D v11 SQL Release 2 (11.2) Notes de mise à jour

User Manual Version 3.6 Manuel de l Utilisateur Version

Manuel d utilisation. Logiciel (Device Monitor) Pour les systèmes d imagerie numérique. Configuration requise Description générale

Mise à jour de version

Machine virtuelle Java pour Palm TX

Sophos Endpoint Security and Control Guide de configuration pour réseaux étendus. Enterprise Console, version 3.1 EM Library, version 1.

Transcription:

16 mai 2003 1

Table des matières 1 Introduction 3 2 Création d un ordinateur parallèle 3 3 Utilisation de Pooch 3 4 Développement d applications distribuées 4 4.1 Message Passing Interface (MPI).......................... 4 4.2 Implémentations disponibles pour Mac OS X................... 4 4.3 Compilation d applications à mémoire distribuée................. 5 4.3.1 MacMPI X.................................. 5 4.3.2 mpich..................................... 7 4.3.3 MPI Pro.................................... 8 4.4 Software Development Kit et exemples....................... 8 5 Références 9 2 Apple Computer, France

1 Introduction Le document suivant propose la mise en place d un cluster dédié au calcul grâce l application Pooch (Parallel OperatiOn and Control Heuristic application), développée par Dauger Research (http ://www.daugerresearch.com). Nous verrons à travers ce guide comment configurer facilement un ordinateur parallèle à partir de plusieurs ordinateurs Apple connectés à un même réseau local puis nous découvrirons l ensemble des interfaces de programmation disponibles pour développer des applications à mémoire distribuée sous Mac OS X. 2 Création d un ordinateur parallèle Pooch a été créé dans le but de simplifier au maximum la création d un ordinateur parallèle. L application fonctionne à la fois sous Mac OS et Mac OS X. Elle détecte chaque noeud automatiquement et permet l exécution d applications distribuées en toute simplicité puisqu un simple glisser-déposer suffit à exécuter une tâche en parallèle. Bien entendu, vos applications doivent être développées en ayant à l esprit qu elles s exécuteront de manière distribuée. De nombreuses bibliothèques permettent ce genre de développement parmi lesquelles MPI (Message Passing Interface) est proposée et supportée sous trois implémentation différentes par Mac OS X et Pooch. Nous renviendront sur ce sujet un peu plus tard ; pour le moment créons notre ordinateur parallèle. La création de notre ordinateur parallèle se résume à installer Pooch sur chaque ordinateur qui composera un noeud de notre cluster. Pooch est disponible en téléchargement à l adresse suivante : http ://www.daugerresearch.com/pooch/download.html. La version proposée expire au bout de 30 jours ; nous vous invitons à consulter la page http ://www.daugerresearch.com/ pooch/ordering.html pour connaître les modalités de commandes et de licenses relatives à Pooch. Une fois l application téléchargée, laissez-vous guider à travers la procédure d installation de cette dernière en exécutant Pooch Installer qui se trouve dans le répertoire créé lors de la décompression du paquet PoochDemoInstaller.sit. Répétez cette étape sur chaque ordinateur de votre cluster : votre ordinateur parralèle est en place. 3 Utilisation de Pooch Nous allons à présent vérifier l efficacité de notre ordinateur parallèle en exécutant l application AltiVec Fractal Carbon fournit par Dauger Research lors du téléchargement de Pooch. Pour se faire, glisser-déposer cette dernière sur l icône Pooch qui se trouve sur votre bureau. Une fenêtre intitulée Job Window apparaît alors à l écran. Cette dernière se divise en deux partie. A gauche se trouve la tâche à exécuter en parallèle sur les noeuds présents dans la partie droite de la fenêtre. Si vous souhaitez rajouter des noeuds, il suffit de cliquer sur le bouton Select Nodes afin que Pooch recherche les autres noeuds disponibles automatiquement. Enfin, cliquez sur le bouton Launch Job pour exécuter la tâche. Pooch vous permet ainsi de réaliser un calcul distribué sur un ensemble de noeuds préconfigurés automatiquement par le logiciel. Néanmoins, Pooch ne permet pas de gestion de cluster ou de file d attente automatique. L utilisateur pourra cependant spécifier, lors de la mise en place d une nouvelle tâche, l ordre de priorité suivant lequel le calcul devra s effectuer. De même l utilisation des ressources qui seront affectées à ce dernier par noeud est configurable lors du lancement d un nouveau calcul. 3 Apple Computer, France

Fig. 1 Gestionnaire de tâches 4 Développement d applications distribuées Cette section traite du développement d applications distribuées sous Mac OS X. Nous y découvrirons les bibliothèques de développement prévues à cet effet ainsi que les compilateurs disponibles pour Mac OS X permettant la création d applications pour notre cluster. 4.1 Message Passing Interface (MPI) MPI est une bibliothèque de développement d applications à mémoire distribuée. Elle permet l envoi et la réception de messages entre les différents noeuds composant un ordinateur parallèle. 4.2 Implémentations disponibles pour Mac OS X Il existe 3 implémentations MPI disponibles pour Mac OS X. Toutes sont supportées par Pooch ; entendez par là que toute application compilée contre une des implémentations présentée ci-dessous pourra être exécutée à travers Pooch tel que nous avons exécuté Altivec Fractal Carbon précédement. 1. MacMPI X : http ://exodus.physics.ucla.edu/appleseed/dev Cette implémentation de MPI développée par le département de physique de l Université de Californie de Los Angeles implémente les fonctionnalités les plus usuelles dans le développement d applications à mémoire distribuée. Elle est proposée pour le développement d applications en langage C et Fortran 77/90 pour de nombreuses version de Mac OS, notament Mac OS X. 2. mpich : http ://www.daugerresearch.com/pooch/mpich mpich est une implémentation libre de MPI très fréquement utilisée au sein des clusters Linux. Cette dernière est disponible pour les versions de Mac OS 10.2 et ultérieures. 3. MPI-Pro : http ://www.mpi-softtech.com MPI-Pro est une implémentation commerciale proposée par MPI Software, Inc destinée aux versions 10.1 et ultérieures de Mac OS. 4 Apple Computer, France

4.3 Compilation d applications à mémoire distribuée Le tableau suivant présente les différentes combinaisons possibles entre les implémentations de MPI proposées et les différents compilateurs disponible pour Mac OS X. MPI Langage Compilateur MacMPI_X Fortran 77/90 C AB Fortran g77 Metrowerks CodeWarrior gcc Cocoa Project Builder C gcc mpich Fortran AB Fortran MPI Pro C gcc 4.3.1 MacMPI X 1. Compiler MacMPI X.f avec AB Fortran avec le Terminal Téléchargez MacMPI X.f et mpif.h et placez-les dans le même répertoire que votre source de programme Fortran, puis exécutez : f77 -O -c MacMPI_X.f qui génèrera le fichier objet MacMPI_X.o. Pour compiler votre code, vous devrez lier ce dernier avec MacMPI_X.o et les bibliothèques Carbon. Pour compiler, par exemple, programme_test.f réalisez l opération suivante : f77 -O programme_test.f MacMPI_X.o /System/Library/Frameworks/Carbon.framework/Carbon Cette commande génère un binaire Mach-O reconnu par Pooch. Notez que le compilateur Absoft créé, par defaut des binaires, ayant une pile de 512 Ko. Si votre application requiert une pile plus importe, utilisez l option -s. 2. Compiler à l aide de g77 Le compilateur g77 est disponible par Fink (http ://fink.sf.net). Fink permet d installer de nombreux programmes libres dédiés au monde Unix. L installation de g77 prend du temps, armez-vous de patience et assurez-vous d avoir les Developer Tools installés avant de procéder. Pour compiler et exécuter votre programme Fortran 77, téléchargez le fichier MacMPI_X.c, les fichiers d en-tête mpi.h et mpif.h et le fichier MacMPIg77.c servant de pont entre g77 et MacMPI_X.c dans le même répertoire que votre code source Fortran. Créez les fichiers objets de MacMPIg77.c et MacMPI_X.c en utilisant gcc : 5 Apple Computer, France

cc -c MacMPI_X.c MacMPIg77.c -I /Developer/Headers/FlatCarbon Créez votre binaire Mach-O de la façon suivante : g77 programme_test.f MacMPI_X.o MacMPIg77.o /System/Library/Frameworks/Carbon.framework/Carbon 3. Compiler MacMPI X.c avec Metrowerks CodeWarrior Deux possibilités s offrent à vous lors de l utilisation de MacMPI X avec CodeWarrior. La première consiste à créer un programme en langage C standard ; c est le cas par exemple si vous portez un programme depuis un environnement Linux vers Mac OS X. L autre option consiste à créer une application Macintosh, comme Altivec Fractal Carbon par exemple. Cette dernière implique une gestion des menus, fenêtres tandis que la première permet un démarrage depuis la ligne de commande (à l aide de plauncher, livré en standard avec Pooch). Standard C Console Débutez en créant un projet du type Mac OS Stationary. Activez l option Std C Console Carbon dans la catégorie Standard Console > Carbon et ajoutez votre code source comme vous le faites habituellement. Enfin, ajouter MacMPI_X.c et assurezvous que mpi.h est présent dans le même répertoire. Afin d obtenir un meilleur binaire, il vous faudra effectuer les modifications suivantes : ajustez le flag SIZE des options du panneau PPC Target afin qu il emploie localandremotehlevents. Assurez-vous également de spécifier la mémoire disponible pour votre application (option Preferred Heap Size du même panneau) pour que cette dernière ne manque pas. La suite se déroule avant la fonction main(). Ajoutez le fichier d en-tête SIOUX.h et les affectations SIOUXSettings.asktosaveonclose=0 ; SIOUXSettings.autocloseonquit=1 ; en début de la fonction main(). Ceci permet à l application de quitter en cas d échec sans quoi cette drenière attendrait une entrée utilisateur et bloquerait les machines distantes jusqu à ce que l utilisateur se manifeste. Enfin, si ce n est déjà fait, appelez la fonction printf avant la fonction MPI_Init afin d initialiser proprement l environnement d exécution de l application sans quoi l application pourrait quitter inopinément. Mac OS Toolbox C Si vous souhaitez développer une application Macintosh à mémoire distriburée disposant de menus, fenêtres, boutons..., créez un nouveau projet Mac OS Toolbox Carbon, comme vous l avez sans doute déjà réalisé, et ajoutez à ce dernier le fichier MacMPI_X.c et confirmez l inclusion des bibliothèques ANSI de CodeWarrior à votre projet. A nouveau, ajustez le flag SIZE des options du panneau PPC Target afin qu il emploie localandremotehlevents. Lors de l écriture de votre application, ayez à l esprit que vos instances d application distantes puissent quitter sans intervention de la part d un utilisateur. Il est aussi indispensable de correctement gérer l événement 6 Apple Computer, France

applicatif Quit afin que Pooch puisse tuer à distance les instances de l application si cela est nécessaire. 4. Compiler MacMPI X.c en utilisant le GNU C Compiler Afin de pouvoir utiliser gcc, il est nécessaire d installer les Developer Tools fournis sur le CD accompagnant les CD d installations de Mac OS X. Si vous ne disposez pas de ce disque, les Dev Tools sont également téléchargeables sur l espace Web dédié aux developpeurs : http ://developer.apple.com. Assurez-vous de placer les fichiers MacMPI_X.c et mpi.h dans le même répertoire que les sources C de votre programme puis exécutez la commmande suivante : cc programme_test.c MacMPI_X.c /System/Library/Carbon.framework/Carbon -I /Developer/Headers/FlatCarbon Le binaire résultant de cette compilation est au format Mach-O et sera utilisatble par Pooch. 5. MacMPI X.c et les appliactions Cocoa Commencez par créer classiquement une application Cocoa à l aide de Project Builder. Ajouter à votre projet les fichiers MacMPI_X.c, mpi.h ainsi que le Framework Carbon.frameworks. MacMPI X lisant un fichier nodelist_ip en utilisant la fonction fopen et ce fichier se trouvant généralement à la racine de votre bundle Cocoa, il est nécessaire de spécifier que le répertoire par défaut est le répertoire ou réside l application le plus tôt possible dans votre code (avant d appeler MPI_Init). Pour cela, ajouter les lignes suivantes à la fonction main() du fichier main.m : NSString *path = [[NSBundle mainbundle] bundlepath]; char cpath[1024]; [path getcstring:cpath]; { char *lastslash, *tp; for(lastslash=tp=cpath; tp=strchr(tp, / ); lastslash=tp++) ; lastslash[1]=0; //specifies the parent of the bundle directory } chdir(cpath); 4.3.2 mpich mpich est disponible à l adresse suivante : http ://daugerresearch.com/pooch/mpich. Une fois l archive récupérée et décompressée, placez-vous dans le répertoire des sources de l implémentation afin de déployer cette dernière. Pour ce faire, éxecutez le script configure de la manière suivante :./configure --prefix=/users/nom_utilisateur/mpich-1.2.4 7 Apple Computer, France

Si vous utilisez AB Fortran 90, vous souhaiterez peut-être désactiver les compatibilités Fortran de mpich. Après avoir vérifier que que les bibliothèques ABSoft sont à jour (en utlisant ranlib, par exemple), effectuez la configuration suivante :./configure --prefix=/users/nom_utilisateur/mpich-1.2.4 -disable-f90modules Puis compiler mpich make Ce processus peut prendre plusieurs minutes... après cela, vous pourrez compiler votre code C à l aide du binaire mpicc créé lors de la compilation de mpich. Pour cela, il vous suffit de taper la ligne suivante :./bin/mpicc -o mpich_test mpich_test.c Il est nécessaire de spécifier à Pooch qu il s agit d une application mpich. Vous l indiquerez grâce au bouton Options... du gestionnaire de tâches (Job Window) qui apparaît lors de la demande d exécution d une nouvelle tâche. 4.3.3 MPI Pro L implémentation commerciale proposée par MPI Software Technology, Inc est disponible sous forme de paquet. Après avoir installé ce dernier, il est possible de compiler une application distribuée développée en langage de C de la manière suivante : cc -o programme_test.out programme_test.c -lmpipro -lpthread -lm Il est nécessaire de spécifier à Pooch qu il s agit d une application MPI Pro. Vous l indiquerez grâce au bouton Options... du gestionnaire de tâches (Job Window) qui apparaît lors de la demande d exécution d une nouvelle tâche. 4.4 Software Development Kit et exemples Dauger Reasearch fournit un kit de développement complet pour se lancer dans la création d applications à mémoire distribuée. Ce dernier peut-être récupéré à l adresse suivante : http ://www.daugerresearch.com/pooch/poochsdk.hqx et vous fournira de nombreux exemples afin que vous puissiez tester les différentes implémentations de MPI contre différents compilateurs. 8 Apple Computer, France

5 Références Cette documentation a été réalisée à l aide des ressources suivantes Pooch MPI Page : http ://www.daugerresearch.com/pooch/runningparallel.html Appleseed Development Page : http ://exodus.physics.ucla.edu/appleseed/dev/developer.html Développer des applications à mémoire distribuée / partagée : http ://www.idris.fr/data/cours/parallel/ 9 Apple Computer, France