Rapport de stage de 2ème année. Filière Télécommunication

Dimension: px
Commencer à balayer dès la page:

Download "Rapport de stage de 2ème année. Filière Télécommunication"

Transcription

1 Institut Supérieur d'informatique, de Modélisation et de leurs Applications Complexe de Cézeaux BP Aubière Cedex 1 rue de Provence BP Echirolles Cedex Rapport de stage de 2ème année Filière Télécommunication OUTIL DE VISUALISATION POUR MPI Présenté par : Cédric CABESSA cedric.cabessa.2007@anelis.isima.fr Responsable entreprise : Sylvain JEAUGEY sylvain.jeaugey@bull.net Responsable ISIMA : Christophe DUHAMEL christophe.duhamel@isima.fr Durée : 5 mois du 3 avril au 31 août 2006

2

3 Institut Supérieur d'informatique, de Modélisation et de leurs Applications Complexe de Cézeaux BP Aubière Cedex 1 rue de Provence BP Echirolles Cedex Rapport de stage de 2ème année Filière Télécommunication OUTIL DE VISUALISATION POUR MPI Présenté par : Cédric CABESSA cedric.cabessa.2007@anelis.isima.fr Responsable entreprise : Sylvain JEAUGEY sylvain.jeaugey@bull.net Responsable ISIMA : Christophe DUHAMEL christophe.duhamel@isima.fr Durée : 5 mois du 3 avril au 31 août 2006

4 Remerciements Je tiens à remercier mon tuteur, Sylvain Jeaugey, pour son aide et ses conseils tout au long de ce stage. Je remercie également les membres du HPC Bull pour leur accueil chaleureux au sein de l'équipe.

5 Résumé L'objectif de ce stage est de développer une application permettant de visualiser en temps réel les performances d'un programme MPI. Ce travail a été réalisé dans les locaux de Bull Echirolles, dans l'équipe HPC (High Performance Computing). L'outil se présente en deux parties : Une bibliothèque statique permet la collecte des informations relatives à MPI avec la contrainte de ne pas impacter les performances. De plus nous utilisons les fonctions PMPI (surcharge de weak-symbols) ce qui permet d'être compatible avec toutes les versions de MPI. La bibliothèque se charge aussi d'envoyer les informations par le réseau à un serveur de visualisation. Le serveur permet l'observation en trois dimensions et en temps réel d'une application MPI en cours d'exécution. Il est réalisé avec la bibliothèque graphique FLTK et OpenGL. L'outil a été réalisé dans l'optique d'être le plus modulaire possible. C'est-à-dire qu'il est facile d'ajouter des modules afin de modifier le comportement du programme et observer un paramètre d'une application MPI en particulier. Mots clés : MPI, visualiser, temps réel, OpenGL, PMPI

6 Abstract The aim of this internship was to develop an application to monitor in real-time the performance of a MPI program. This work was done at Bull (Echirolles), in the HPC team (High Performance Computing) This tool is made of two parts: A static library collect data about MPI witout impacting performances. Moreover we use PMPI functions (overloading of weak-symbols) this allows us to be compatible with all MPI versions. The library is in charge of sending data through the network to the monitoring server. The server allows us to observe in 3D and real-time a running MPI application. It is made with the FLTK graphic library and OpenGL. This tool was designed to be modular. That mean it is easy to add modules to modify the program behavior and observe one parameters of an MPI application in particular. Keywords: MPI, to monitor, real-time, OpenGL, PMPI

7 Table des matières Remerciements Résumé Abstract Lexique Introduction...1 Présentation du cadre du stage...3 1) L'entreprise...3 2) L'environnement de travail...3 I. Analyse du problème...5 1) Présentation du HPC...5 2) MPI...5 3) Analyse du besoin...7 4) Le design de l'application...8 II. Conception de la solution ) Bibliothèque PMPI ) Le serveur de visualisation...16 III. Présentation du résultat et perspectives ) Présentation ) Analyse des résultats...24 Conclusion...27 Annexes Présentation de Tera10...i Exemple MPI...vii Planning réel...xi Exemple d'utilisation des weak symbols...15

8 Index des illustrations Illustration 1: Planning prévisionnel en semaines...8 Illustration 2: Fonctionnement de l'outil...9 Illustration 3: Diagramme de classe du serveur de visualisation...18 Illustration 4: Configuration d'un Novascale...iii Illustration 5: Une des 8 allées de Tera10...iv Illustration 6: Interconnexion des nœuds (Quadrics)...iv Illustration 7: Le système de climatisation...v Illustration 8: Planning réel...xiii

9 Lexique Cluster : (ou grappe) Ensemble d'ordinateurs reliés entre eux dans le but d'effectuer d'importants calculs. CVS : (Concurrent Versions System) Système de gestion des fichiers source d'un projet. CVS Permet à plusieurs personnes de travailler en même temps sur les mêmes fichiers. Le système gère les conflits et sauvegarde toutes les modifications. FLOPS : (Floating-point Operations Per Second). Nombre d'opérations à virgule flottante qu'un processeur peut réaliser en une seconde. Cette unité de mesure est souvent exprimée en GigaFLOPS (10 9 ) ou teraflops (10 12 ) FLTK : (Fast Light Toolkit, prononcez "fulltick"). Bibliothèque graphique multiplateformes écrite en C++ et permettant la réalisation d'interfaces graphiques. MPI : (Message Passing Interface) bibliothèque de fonctions, utilisable avec les langages C et Fortran. Devenu un standard dans le calcul parallèle. MPI est supporté par de nombreuses architectures. Chaque implémentation est optimisée pour un type de matériel. Noeud : Machine qui compose un cluster. Il en existe plusieurs types : les nœuds d'administrations, où un utilisateur peut se connecter pour gérer le cluster, les nœuds de calcul, c'est dans ces nœuds que les processus tournent et les nœuds de stockage qui servent à stocker les données sur disque. OpenGL : (Open Graphics Library) bibliothèque multi-plateformes pour la programmation d'applications 3D et 2D.

10

11 Introduction Dans le cadre de son offre calcul haute performance, la société Bull a besoin d'outils pour comprendre et analyser le comportement d'une application MPI. Il existe déjà des méthodes pour obtenir ces résultats, mais la plupart sont dites «post-mortem» c'est-à-dire qu'elles donnent leurs résultats lorsque le programme est terminé. On voit donc l'intérêt de développer une solution qui permette l'observation d'une application au cours de son exécution. D'abord parce qu'elle permet un gain de temps par rapport à la solution post-mortem. De plus, un autre avantage de cette approche est d'obtenir une représentation graphique du programme. Ceci peut aider le développeur à comprendre où en est l'exécution (blocage, mauvaise répartition des processus, etc.) mais peut aussi être très utile lors d'une démonstration. En effet pour répondre à un appel d'offre, Bull doit faire une démonstration aux clients afin de montrer l'efficacité de ses machines. Or avec les outils classiques, la seule information disponible est un fichier que l'on récupère après l'exécution du programme et qui contient diverses statistiques. Dans le cadre d'une démonstration, il est intéressant d'avoir un résultat visuel, c'est à dire de voir toutes les machines qui constituent le cluster et leurs évolutions au cours de temps. Afin de présenter les résultats obtenus lors de ce stage, je commencerai par présenter l'entreprise d'accueil. L'étude débutera par une analyse générale du problème, nous verrons ensuite les étapes de développement de la solution, pour finir avec les résultats obtenus et les évolutions possibles. 1

12

13 Présentation du cadre du stage 1) L'entreprise Bull est une société dont la création remonte à 1931 à Paris. Elle s'est d'abord spécialisée dans la fabrication de cartes perforées et des premières machines à calculer. Puis dans les années cinquante, Bull entre dans le domaine de l'électronique et de l'informatique tout en s'ouvrant à l'international. Après des difficultés financières, le groupe est réorganisé en plusieurs entités. En 1988, Bull participe à la création de l'open Software Foundation. Aujourd'hui, Bull met l'accent sur l'intégration et les services, ceci dans le cadre de systèmes ouverts. En 2003, le groupe a renoué avec les bénéfices et en 2004, le CEA commande un super calculateur de 602 machines de type Novascale 6160 (voir annexe 1) Aujourd'hui Tera10 est classé 1 er en Europe et 5 ème au niveau mondial dans le classement des meilleurs clusters réalisé par le top Il développe une puissance de 50 tera-flops J'ai effectué mon stage dans l'entité HPC (High Performance Computing) situé dans les locaux d'echirolles près de Grenoble. Cette équipe est chargée de développer et d'intégrer des solutions hautes performances sur Linux pour des clients comme le CEA, l'onera (Office National d'etudes et de Recherches Aérospatiales) ou encore Dassault. Plus particulièrement, j'étais affecté à l'équipe «HPC Communications Infrastructure» chargé du développement de MPI et de Lustre (système de fichier distribué). 2) L'environnement de travail Toutes les personnes sur le site ont un PC à disposition, par défaut une distribution Debian (GNU/Linux) avec un environnement KDE est installée. Chacun est libre de configurer sa machine selon ses besoins. De plus un miroir Debian est disponible sur le réseau local. Cet ordinateur est principalement utilisé pour accéder aux machines de développement et pour l'accès à internet et aux mails. Le serveur sur lequel j'ai le plus travaillé est «nsadmin», c'est le noeud d'administration d'un cluster de 2 nœuds soit 8 cpu de type Intel Itanium2 ia64 (processeurs sur 64 bits). La distribution utilisée est basée sur RedHat mais a été largement modifiée par Bull. Ce serveur sert au développement d'application ainsi qu'à lancer des processus MPI sur le cluster

14 Les outils disponibles sont principalement Emacs et vim pour l'édition de code. La compilation des programmes se fait avec icc (compilateur intel optimisé pour ses processeurs) ou gcc (compilateur libre, standard sur les système Linux). Pour la partie OpenGL, j'ai développé sur un serveur équipé d'une carte graphique de type Nvidia GeForce Quadro De plus, j'ai aussi pu effectuer quelques tests sur Teratec, le centre de démonstration de Bull situé à Bruyère le Chatel à côté du CEA. Ce cluster est beaucoup plus grand que celui d'echirolles et m'a permis de voir comment se comportait mon programme dans des situations plus réaliste. Il comporte 20 nœuds à 16 processeurs par nœud. Les processeurs utilisés sont des Itanium2 type Madison, c'est la génération précédente des Montecito utilisée au CEA. Tout le développement s'est fait à l'aide de CVS ce qui permet un travail collaboratif et offre un système de sauvegarde de l'historique du code. 4

15 I. Analyse du problème Cette partie a pour but de montrer le problème dans son contexte. Nous présenterons d'abord de façon générale le HPC avant de se focaliser sur l'utilisation de MPI. Puis nous verrons les besoins qui nous ont amené à concevoir cet outil. Enfin nous présenterons une vue globale de l'application. 1) Présentation du HPC HPC signifie High Performance Computing, que l'on pourrait traduire par calcul à haute performance. Ce terme couvre l'ensemble de l'utilisation d'outils informatiques nécessaires pour effectuer des calculs mathématiques importants. Les utilisateurs de HPC sont le plus souvent des centres de recherches liés aux domaines de la défense ou de l'énergie. Pour effectuer de tels calculs, il est nécessaire de paralléliser le traitement des données. En effet créer un unique ordinateur n'est pas réalisable pour des raisons de limites techniques, mais aussi de coût. Une solution économique consiste à utiliser plusieurs machines de calcul, reliées entre elles, que l'on pourrait considérer de l'extérieur comme un seul grand ordinateur. Aujourd'hui les clusters de calcul contiennent des milliers de processeurs. Ces processeurs sont répartit dans des nœuds de calculs eux même reliés par un réseau à haute performance. Le stockage des informations se fait sur des nœuds dédiés, l'espace de stockage atteint plusieurs peta-octet (10 15 ) (voir annexe 1 pour un exemple avec la configuration de Tera10). Les systèmes d'exploitations utilisés sont de type Unix/Linux. 73% des 500 meilleurs clusters du monde tournent sous Linux 2 (19% sous Unix). Ceci est dû au fait que ces systèmes sont plus facilement modifiables et adaptables aux besoins particuliers de ces machines. En effet, chaque constructeur modifie les logiciels utilisés sur leurs clusters pour l'adapter aux spécificités de la machine. Les modifications vont du noyau du système aux applications en passant par les bibliothèques de calculs. 2) MPI Afin d'utiliser au mieux toute la puissance des processeurs disponibles, il est nécessaire de disposer d'un moyen pour écrire des programmes parallèles. Cette tâche consiste à trouver une façon de découper un problème en plusieurs parties qui seront traitées par une unité de calcul indépendante. C'est une tâche difficile à réaliser car les algorithmes ne sont jamais 2 5

16 totalement parallélisables. Il faut donc gérer les communications entre les unités de calcul. Et contrairement à une exécution séquentielle, l'ordre des opérations n'est pas assuré, ce qui complique la tâche du programmeur. Des points de synchronisation doivent être utilisés, mais ils ralentissent le traitement. Une autre contrainte est la répartition du travail entre les processeurs, pour un traitement efficace elle doit être le plus homogène possible. Pour répondre à cette problématique, la bibliothèque de fonction MPI a été conçue. Elle permet d'exploiter des ordinateurs distants ou multiprocesseurs par passage de messages. C'est devenu un standard dans le domaine du calcul distribué. MPI est utilisable avec les langages C et Fortran ainsi qu'avec de nombreux systèmes d'exploitations et architectures. La bibliothèque est écrite en C. La première version de MPI fut présentée en 1993 grâce aux efforts de 40 organisations. En 1997, le standard MPI-2 est défini mais il faudra attendre 2005 pour voir apparaître les premières implémentations. Pour l'utilisateur, MPI se présente comme une bibliothèque. Plusieurs fonctions permettent de savoir dans quel processus on se trouve, d'envoyer ou de recevoir des messages, d'attendre des processus, etc (voir annexe 2 pour un exemple). Différents types de communication existent : La communication dite point à point où un processus échange avec un autre. Divers modes sont disponibles : bloquant, non bloquant, synchrone, asynchrone. La communication collective où plusieurs processus sont engagés dans la communication. Cette dernière se fait en définissant des groupes de processus et des communicateurs. Pour exécuter un programme MPI un «lanceur» est nécessaire. Il permet de répartir les différents processus sur les processeurs disponibles. Diverses implémentations de MPI sont disponibles. Certaines sont libres comme OpenMpi ou MPICH. OpenMPI est développé par un groupe de sociétés (Cisco, Sun, Los Alamos National Lab,...) sous une licence BSD. MPICH est un projet du gouvernement américain mené par l'argonne National Laboratory de Chicago. MPICH est aussi distribué sous une licence open-source. L'objectif de Bull est d'utiliser MPICH pour l'optimiser et l'adapter aux machines qui seront ensuite vendues. Par exemple, Bull a développé une couche sous MPI qui permet de faire le choix entre la communication par le réseau (de type Quadrics) ou la communication directe par mémoire partagée. En effet, dans le cas de deux processus qui veulent communiquer mais sont sur des nœuds différents, il 6

17 faut utiliser le réseau. Alors que si les processus sont sur le même nœud, on peut utiliser la mémoire partagée. On peut aussi citer l'exemple de Cpuset qui permet de partitionner une machine multiprocesseur et de créer des zones d'exécutions. Cpuset a été intégré dans le noyau Linux. Cpuset permet, par exemple, d'avoir exactement un processus par processeur. En pratique c'est dans cette configuration que Cpuset est utilisé pour MPI. En effet ceci permet d'éviter les pertes de performance dues aux placements des processus en mémoire et à l'ordonnancement. C'est pourquoi nous ne ferrons pas vraiment la distinction entre un processeur et le processus MPI qui tourne dessus. 3) Analyse du besoin Les quinze premiers jours de mon stage furent passé à me familiariser avec MPI et les différents outils de Bull (les différents serveurs et le CVS en particulier). Dans le même temps avec mon tuteur, nous avons discuté des différents aspects du stage. L'objectif est de développer un outil permettant de visualiser les performances d'une application MPI. Il doit répondre à deux demandes : Rendre visuel quelque chose qui ne l'est pas : MPI est utilisé pour faire du calcul scientifique. L'utilisateur a peu d'informations sur l'exécution de son programme. Ce n'est qu'à la fin qu'il peut récupérer ses résultats sous la forme d'une grande quantité de données qu'il faudra ensuite analyser. Ceci rend très difficile les démonstrations car l'observateur (surtout s'il n'est pas expert) ne se rend pas compte de ce qui se passe réellement sur les machines. Aider à comprendre le fonctionnement d'une application : pour le développeur, il est intéressant de visualiser ce qu'il se passe. Par exemple, si plusieurs processus sont en attente d'un autre ou si les communications se font de manière homogène ou non. Or si les outils existants fournissent ces informations, c'est de façon post-mortem, c'est-à-dire que les résultats sont disponibles qu'à la fin de l'exécution du programme. On voit donc la nécessité d'un outil permettant de représenter en temps réel et de la façon la plus attractive possible l'exécution d'un programme MPI. A la fin de la deuxième semaine, nous avons organisé une réunion avec les différentes personnes qui pourrait être intéressées par ce projet. Le but de cette réunion a été de définir plus précisément les objectifs de l'outil et les différentes contraintes auxquelles il devra obéir, mais aussi de l'intégrer avec l'existant. En particulier avec un programme d'analyses post-mortem qui a été développé chez Bull. Ce programme appelé «Profilecomm» permet le calcul des matrices de communication, c'est-à-dire de connaître précisément les 7

18 échanges entre chaque processus. Il a donc été décidé d'intégrer cet outil pour permettre à terme d'observer les échanges en temps réel. Cette réunion m'a permis de faire un planning prévisionnel Familiarisation avec MPI 2 Mise en place du client 6 Apprentissage Opengl 2 Mise en place du serveur 6 Intégration de Profilecomm 4 Illustration 1: Planning prévisionnel en semaines Vous trouverez en annexe le planning réel. 4) Le design de l'application Après avoir pris en compte les différentes contraintes et les objectifs que doit remplir l'application, j'ai pu écrire un «design» du projet. C'est-àdire un document qui présente l'application et donne des informations sur la façon dont elle sera implémentée. Le design fait aussi apparaître les problèmes qui devront être résolus au cours du projet. Il en ressort les points suivant : L'application doit être le moins intrusif possible : en effet MPI est utilisé dans des domaines ou la performance est primordial, il faut donc que l'utilisation des ressources soit le plus faible possible. Il faudrait que l'outil fonctionne avec toutes les versions et toutes les implémentations de MPI. Il existe deux versions majeurs de MPI (MPI-1 et MPI-2) et de nombreuses implémentations (libre et constructeur). Pour cela nous avons décidé de présenter l'outil comme une bibliothèque PMPI. (voir la partie II) La partie visualisation se fera avec OpenGL. Cette bibliothèque permet de créer des programmes en 3D et il existe des implémentations libres sous Linux. 8

19 Schématiquement, on peut présenter l'outil de la façon suivante : Illustration 2: Fonctionnement de l'outil Plusieurs processus MPI envoient leurs statistiques à un serveur de visualisation déporté. Le serveur réceptionne les données, les traite et en fait une représentation en trois dimensions pour l'utilisateur. L'utilisateur peut aussi agir sur l'interface graphique afin de sélectionner un paramètre particulier ou envoyer des ordres aux processus, comme par exemple l'intervalle de rafraîchissement 9

20

21 II. Conception de la solution Dans cette partie nous allons montrer plus en détail comment est construite l'application. Nous commencerons d'abord par présenter la partie MPI puis la partie visualisation. 1) Bibliothèque PMPI PMPI Afin d'être compatible avec les différentes versions et les différentes implémentations de MPI, il est préférable de ne pas modifier le code de la bibliothèque. A la place, il faudrait créer une sur-couche de MPI qui aurait pour but de recueillir les statistiques d'utilisation et de les envoyer au serveur. Pour cela la norme MPI propose une solution en utilisant les «weak symbols»: Toutes les fonctions MPI_* sont définies weak (faible) par rapport aux fonctions PMPI_*. Notons MPI_fct une fonction MPI. Si à l'édition des liens d'un programme avec la bibliothèque MPI, la fonction MPI_fct est redéfinie (dans le code du programme ou dans une autre bibliothèque) alors l'appel se fera sur la dernière fonction définie. Le code «réel» MPI se trouve alors dans PMPI_fct que l'on pourra appeler de façon explicite. On peut donc ajouter du code qui permettra d'observer l'exécution du programme dans les fonctions MPI_*. (voir annexe 4 pour un exemple d'utilisation des weak symbols) Une bibliothèque de profiling pour MPI peut se présenter de la façon suivante : int MPI_Fonction(t1 arg1,...,tn argn) { } /* début profiling */ ret=pmpi_fonction(arg1,...,argn); /* fin profiling */ /* échange avec serveur */ return ret; A l'intérieur de chaque fonction, il faut donc écrire le code capable de calculer les données utiles et de les envoyer au serveur de visualisation. 11

22 Modularité Pour avoir une bibliothèque MPI complète, il faut écrire la couche de profiling pour toutes les fonctions MPI (soit près de 200 fonctions). De plus il faut être capable d'observer différents paramètres suivant la demande. Afin de pouvoir ajouter et enlever facilement des modules de calcul de statistiques sur MPI, nous avons décidé d'utiliser un système de script qui générera les fichiers de la bibliothèque. Sous la forme source de la bibliothèque, on aura un ensemble de fichiers avec un fichier par fonction MPI. Ces fichiers seront générés en utilisant un ensemble de règles et des sources réparties par module. Le script aura pour charge de compiler tous ces fichiers afin de générer une bibliothèque statique. Cette bibliothèque devra être liée avec les programmes MPI que l'on veut observer. Script Pour la réalisation du script, le choix c'est porté sur le langage Python. Ce langage est orienté objet et simple à prendre en main. Il dispose de nombreuses fonctions (traitement de chaînes de caractères, de fichiers, accès au réseau,...), d'un système de typage dynamique fort et une gestion de mémoire par ramasse-miettes. Le script a pour tâche de générer le code de la bibliothèque et les règles du Makefile qui serviront à la compiler. Comme l'objectif est de permettre d'écrire des modules facilement, il a fallu définir une syntaxe pour les créer. Celle ci est basée sur un principe d'arborescence de répertoires. Il y a un répertoire par module. Le nom des fichiers dans le répertoire précise la fonction MPI concernée. Un numéro permet de placer précisément le code par rapport aux autres modules. L'une des premières utilités du script a été de permettre l'intégration de Profilecomm. Ceci a amené une collaboration avec son auteur. En effet la définition du fonctionnement du script a été faite en commun. Et j'ai pu bénéficier de son retour d'expérience pour la correction des erreurs. 12

23 Génération Voici schématiquement comment se passe la création de la bibliothèque. Le script se nomme createlib.py, sur la ligne de commande il faut lui fournir un fichier contenant la liste de tous les prototypes de fonction MPI (prototypes.h) et le nom d'un répertoire de sortie. $ createlib.py prototypes.h lib C'est dans ce répertoire que seront créés les fichiers sources de la bibliothèque. Les modules doivent se trouver dans le dossier «modules». Il y a un dossier par module. Le script va placer le contenu des fichiers dans les fonctions MPI de la façon suivante: PMPI Si le fichier commence par E (end) il sera placé après l'appel PMPI Si le fichier commence par S (start) il sera placé avant l'appel Si le fichier commence par G (global) il sera placé avant la déclaration de la fonction. Ceci est utile pour les variables globales. Un numéro précise la positon relativement à tous les fichiers de tous les modules. Enfin, un suffixe de la forme _xxx.c ou xxx est le nom d'une fonction MPI (en minuscule) ou est égale à «all» si toutes les fonctions sont concernées. Si le fichier a l'extension «.h» alors il sera concaténé dans mpianalyser.h qui sera placé dans le dossier de sortie et inclus dans toutes les sources. 13

24 Pour résumé, un fichier module est soit un «point h» soit de la forme [G S E]nnn_fct.c /* G10_fct.c*/ Le script va générer un fichier de la forme suivante : int MPI_fct(type1 arg1,type2 arg2,...){ } int result; if(active_module1){ /* S00_fct.c */ } if(active_module2){ /* S10_fct.c */ } result=pmpi_fct(type1 arg1,type2 arg2,...); if(active_module3){ /* E05_all.c */ /* E20_fct.c */ } return result; Cette méthode permet d'insérer facilement du code dans les fonctions MPI. Les conditions sur les modules permettent de les activer ou désactiver depuis le serveur (un fichier de configuration permet aussi de les activer ou non à lors de la génération). Collecte de données En plus de ces modules que l'utilisateur peut créer, il existe un module particulier nommé «datacoll» qui est chargé de la collecte des données dans chaque module et de les envoyer par le réseau au serveur de visualisation. Pour cela, l'utilisateur doit fournir dans son module un fichier de la forme src/getdata_module.c. Ce fichier doit contenir la fonction : void getdata_module(void** ptr,size_t* size) Cette fonction renseigne l'adresse mémoire qui contient la donnée à envoyer et sa taille. (Pour être correctement reconnu par le serveur, les premiers octets du champ doivent contenir un identifiant, le rang de l'émetteur et la taille des données suivantes.) Sur le même principe il est possible de définir des fonctions pour recevoir des ordres depuis le serveur. Nous pouvons aussi signaler que le dossier src peut être utilisé pour définir toutes les fonctions que le programmeur du module juge utile. Elles 14

25 seront compilées et liées avec le reste de la bibliothèque, il suffit de fournir un Makefile. La communication avec le serveur s'effectue de trois façons différentes : L'inscription : dans la fonction MPI_Init (appelé au début de tout programme MPI) on crée une socket TCP. Cette socket envoie vers le serveur l'adresse IP de la machine sur laquelle s'exécute le programme MPI, un numéro de port utilisé pour les ordres et le numéro de rang MPI. Si le serveur ne peut être contacté alors l'inscription se fait dans un fichier. Ceci permettra au serveur de «récupérer» les processus déjà lancés quand il sera disponible. De la même façon une désinscription est faite lors de l'appel à MPI_Finalize. Les ordres : chaque processus MPI a une socket TCP en attente d'ordre venant du serveur. Les ordres reçus sont transmis à la fonction capable de les traiter en fonction de leurs en-têtes. Les données : une socket UDP est utilisé pour envoyer les données calculées par les modules vers le serveur de visualisation. Utilisation Après avoir créé les fichiers sources dans le répertoire de sortie, le script fournit le Makefile qui permettra de générer la bibliothèque. Les règles du Makefile sont fait de façon à compiler tous les fichiers du dossier de sortie (les fonction MPI), ainsi que tous les fichiers contenus dans les dossiers «src» de chaque module. Enfin tous ces fichiers objets sont rassemblés en une bibliothèque statique nommée libmpianalyser.a. Pour utiliser la partie client de l'outil, il suffit de lier cette bibliothèque avec un programme MPI existant. Enfin avant de lancer un programme MPI, il est nécessaire de préciser l'adresse IP et le port du serveur de visualisation sur lequel les processus MPI devront se connecter. Ceci ce fait grâce à des variables d'environnements. export MPIANALYSER_VISU_SERVER_IP= export MPIANALYSER_VISU_SERVER_PORT=

26 2) Le serveur de visualisation Généralités Le travail du serveur est de réceptionner les données en provenance des processus MPI et d'en faire une représentation en trois dimensions pour l'utilisateur. En plus d'afficher des informations, le serveur sert d'interface pour contrôler le déroulement de l'application. On peut envoyer des ordres aux programmes MPI pour, par exemple, contrôler la fréquences d'envoi des données ou sélectionner un module. Pour réaliser cette application, j'ai utilisé deux bibliothèques : OpenGL et FLTK. Je commencerai par présenter ces bibliothèques avant de montrer le fonctionnement du serveur. OpenGL Abréviation de Open Graphics Library. C'est une spécification qui définit un ensemble de fonctions permettant la programmation d'application 2D et 3D. Depuis sa création en 1992 par SGI, OpenGL est devenu un standard dans le domaine de la programmation d'application 3D (son principal concurrent est Direct 3D de Microsoft). OpenGL est disponible sur de nombreuses plateformes (Unix, Linux, Windows, MacOs,...) et est utilisable dans plusieurs langages (C, C++, Fortran, Python, Perl, Java,...). Plusieurs implémentations de la bibliothèque existent. Les constructeurs de cartes graphiques développent les leurs afin d'avoir les meilleures performances sur leurs matériels, mais il existe des implémentations libres. Par exemple Mesa qui est une implémentation logiciel d'opengl (pour des raison de licences, Mesa se dit très similaire à OpenGL...) La bibliothèque ne permet que de dessiner des primitives de base comme le point, la ligne et le polygone. Pour dessiner des objets plus complexes (comme une voiture, un arbre,...) on utilise d'autres bibliothèques qui fonctionnent au-dessus d'opengl. Par contre il est possible d'utiliser des textures, des effets de lumière ou de brouillard et des calculs de projections. OpenGL ne gère pas non plus de système de fenêtrage ni les événements clavier/souris. Ce choix permet d'avoir une bibliothèque plus portable car indépendante du gestionnaire de fenêtre mais impose l'utilisation d'une autre bibliothèque comme FLTK. FLTK FLTK est une bibliothèque qui permet la réalisation d'interfaces graphiques. Elle est utilisable en C++ et disponible sous Linux (X11), Windows et MacOS. Elle a pour objectif de fournir un moyen simple de créer des applications graphiques modernes. La bibliothèque est très légère (moins de 2Mo) et peut 16

27 être liée statiquement (ce qui permet de faciliter le déploiement de l'application). Elle est livrée avec un outil (FLUID) permettant de créer facilement son interface graphique par un système de «glisser-déposer». On peut ajouter des boutons des ascenseurs, des boites de dialogues, des zones de saisie, etc. De plus, il est possible d'ajouter une fenêtre OpenGL dans l'interface. Les événements clavier et souris sont gérés et peuvent être traités pour modifier le contenu de la fenêtre OpenGL. FLTK est livré sous la licence LGPL avec l'autorisation de lier statiquement la bibliothèque. Fonctionnement L'application de visualisation a été écrite en C++. Elle s'articule autour de cinq classes. Avant de présenter leurs fonctionnements, nous pouvons observer le diagramme de classe relatif à ce programme. 17

28 Illustration 3: Diagramme de classe du serveur de visualisation 18

29 Les classes Interfaces et Cluster. Elles représentent l'interface entre l'utilisateur et l'application. La classe Interface est générée automatiquement par l'outil FLUID fournit avec FLTK, elle fournit l'interface graphique à l'utilisateur. Cluster traite les événements clavier et souris. Cette classe dérive de Fl_Gl_Window qui est définie dans la bibliothèque FLTK et fournit des méthodes virtuelles pour l'affichage (draw) ou pour gérer les événements (handle). De plus, la classe Cluster est chargée d'assurer la cohérence entre l'interface et les variables qui la décrivent. C'est aussi dans cette classe que se trouve la boucle principale du programme. Celle-ci est réalisée grâce à la méthode statique add_timeout qui permet d'appeler une fonction particulière à intervalle régulier. Cette fonction a pour tâche principale d'aller chercher de nouvelles données sur le réseau. La classe Network. Dès le lancement du programme, une instance de Network est créée. Elle commence par créer deux sockets. Une socket TCP en attente de processus qui souhaite se connecter ou se déconnecter. Une socket UDP qui reçoit les données en provenance des programmes MPI. En plus des connexions réseaux, on vérifie aussi si des processus n'ont pas effectué leurs inscriptions dans un fichier (et non dans une socket). Ceci peut se produire si le serveur ne pouvait pas être contacté au moment du lancement de l'application MPI. Le plus souvent ceci signifie qu'il n'a pas été lancé. Cette option permet donc d'observer une application à tout moment. Comme cette classe se charge des inscriptions des processus, c'est elle qui est chargée de maintenir une liste des processus actifs. Cette liste est réutilisée par Cluster pour l'affichage. Un processus est actif à partir du moment ou il a effectué son inscription (MPI_Init). Il devient inactif s'il n'envoie plus de données et sa connexion TCP (ordre) est fermée. Dans ce cas il disparaît de la liste et n'est plus affiché. Un processus disparaît aussi lorsqu'il atteint MPI_Finalize. En plus des deux connexions citées, la classe Network gère une autre socket de type TCP pour envoyer des ordres vers les processus MPI. Ces ordres permettent d'activer ou de désactiver un module ou encore de configurer l'intervalle d'envoi des données. Elle est utilisée en particulier au lancement du serveur pour activer les modules. Enfin après avoir reçu les données, on les envoie à l'instance de Processor concerné. Chaque Processor se charge d'effectuer le traitement sur les données et d'en faire une représentation. 19

30 La classe Processor Elle a pour tâche de traiter les données fournies par Network et d'afficher le résultat sous la forme d'un cube coloré. Or le traitement de ces données dépend du paramètre que l'on souhaite observer. Celui-ci est choisi par l'utilisateur dans l'interface graphique. C'est pourquoi nous avons mis en place un système de module dynamique («plugin»), avec l'objectif de permettre de changer facilement la méthode d'affichage en fonction des choix de l'utilisateur. Voici comment ceci est réalisé. La classe Processeur contient une variable statique qui est un pointeur sur une instance de la classe Module. Module est une interface (méthodes virtuelles) qui définit le comportement de tous les modules. Ces méthodes permettent le traitement des données en provenance du réseau et de modifier la couleur d'un «processor». Elles doivent êtres fournies pour tous les nouveaux modules. Pour implémenter le chargement dynamique des modules, nous avons utilisé les fonctions de la famille dlopen de Linux. La classe Module contient deux méthodes statiques open_mod et close_mod. open_mod permet d'ouvrir une bibliothèque à partir du nom du module (qui correspond à un nom de fichier, utilisation de dlopen). Puis pour instancier le module on demande à dlsym de charger un symbole particulier qui correspond au constructeur de la classe. Ce symbole doit être défini comme extern ''C'' afin de dire au compilateur de ne pas modifier ce nom de symbole. En effet, au contraire des compilateurs C, les compilateurs C++ doivent modifier les noms de symboles à la compilation afin de prendre en compte, entre autres, le polymorphisme. De la même façon un appel à close_mod provoque l'appel au destructeur du module et ferme la bibliothèque dynamique (dlclose) Ce système permet de créer facilement des modules pour modifier le comportement de l'application suivant le type de données reçues. Ceci sans rien modifier à l'application de départ. Les différents modules disponibles sont automatiquement détectés et chargés sur demande de l'utilisateur. Il est inutile de recompiler l'application existante ni de refaire l'édition de liens. Utilisation De la même façon qu'avec le client MPI, il faut définir le numéro de port sur lequel le serveur va écouter. export MPIANALYSER_VISU_SERVER_PORT=12345 Remarque : Pour la réception de données et l'initialisation, on utilise le même numéro de port mais deux protocoles différents (UDP et TCP). C'est pourquoi, comme pour les clients MPI, il n'y a qu'un seul port à définir. 20

31 III. Présentation du résultat et perspectives. Dans cette partie nous allons décrire le fonctionnement de l'outil du point de vue d'un utilisateur, puis nous verrons ses limites et les perspectives qu'il peut offrir. 1) Présentation MPI Commençons par la partie MPI. En supposant que tout les modules sont correctement écrit, il faut commencer par choisir lesquels nous allons utiliser. Pour cela il faut éditer le fichier mod.conf. Ce fichier permet de choisir les modules qui seront compilés NB_MOD 4 GLOBAL 0 DATA_COLL 1 CALL 2 TIME 3 NB_MOD précise le nombre total de modules, les numéros suivant les noms sont utilisés pour les en-têtes qui vont déterminer à quel module appartiennent les données échangées (aussi bien les ordres que les données utiles). Il faut toujours compiler l'application avec les modules Global et Data_coll. Ce sont des modules de bases utilisés pour l'échange de données. En plus nous utilisons un module qui donne le nombre d'appels MPI (call) et un autre qui calcul le rapport entre le temps passé dans MPI et le temps total (time). Ensuite, nous générons puis compilons la bibliothèque: $createlib.py prototypes.h lib $make all Une fois que le fichier libmpianalyser.a est créé, il suffit de le lier avec un programme. $ mpicc -c test.c $ mpicc -o test test.o -lmpianalyser -L. Enfin on configure la connexion $ export MPIANALYSER_VISU_SERVER_IP= $ export MPIANALYSER_VISU_SERVER_PORT=

32 A partir de ce moment le programme MPI est prêt à être lancé. Si le serveur de visualisation est présent, il enverra sa demande de connexion directement, sinon il passera par un fichier. L'envoi des données se fera à la demande du serveur. Serveur Pour le serveur il suffit de donner le numéro de port à utiliser. $ export MPIANALYSER_VISU_SERVER_PORT=12345 Au démarrage, il recherche les applications déjà lancées puis les modules de visualisation qu'il peut charger. Enfin l'interface graphique est lancée. On voit ici l'application tourner sur un cluster de 16 machines, chacune avec 8 cpu. Cette capture est une simulation, en effet il m'était impossible de lancer autant de processus sur le cluster du site. Dans la fenêtre principale on voit les différents processeurs. Ils sont regroupés par machine, ici par groupe de 8. Cette sélection se fait d'après l'adresse ip. Les machines sont elle-même placées de façon homogène sur le plan. 22

33 Nous pouvons remarquer que chaque processeur est associé a une couleur, celle-ci traduit le taux d'activité du processeur. Ici le paramètres observé est le rapport temps total sur temps MPI (on vois sur la gauche dans le cadre «Display»). Une couleur rouge correspond a une forte activité MPI (presque tout le temps est passé dans du code MPI) alors qu'une couleur verte correspond à une faible activité. L'affichage est modifié à intervalle régulier. Celui-ci est réglable par la barre «speed», ici il est réglé à 500ms. Réduire cette fréquence peut être utile afin de ne pas saturer le réseau dans le cas d'un grand cluster. De plus une fréquences élevé impactera moins les performances MPI. L'utilisateur peut modifier la vue du cluster grâce à la souris ou le clavier. Il est possible de zoomer ou de faire tourner le plan sur deux axes. La partie gauche de la fenêtre fournie de nombreuses informations : Le nombre de processus affichés à cet instant (connected processes, ici 128) Le paramètre en cours d'observation (Display, ici Mod_time c'est-àdire le temps passé dans MPI par rapport au temps total). L'utilisateur peut cliquer sur la flèche afin de choisir le module qu'il veut visualiser. La vitesse de rafraîchissement (Speed, ici 500ms). La aussi l'utilisateur est libre de la modifier. Des informations sur le processus MPI sélectionné : on sélectionne le numéro de rang en modifiant la valeur «rank». A côté s'affiche l'adresse ip du nœud sur lequel tourne le processus. Enfin nous pouvons voir la valeur instantanée du paramètre observé (ici 54 c'est-à-dire que 54% du temps est passé dans MPI). Lorsqu'un processeur est sélectionné, il est affiché sans transparence ce qui permet de le retrouver facilement parmi les autres. Si besoin, il est possible d'augmenter la transparence de tous les autres processeurs grâce à la molette «transparency». Le cadre «active modules» permet de choisir les informations que les processus MPI envoient. Ici nous recevons les données relatives au temps passé et aux nombres d'appels. Enfin le bouton «origine» permet de retrouver la vue par défaut (zoom et rotation). La case «rotation» fait tourner le plan de façon continue. 23

34 2) Analyse des résultats Mise en œuvre Comme nous l'avons vu, cet outil permet de visualiser facilement l'exécution d'un programme MPI. Cette solution a l'avantage d'être simple à mettre en œuvre. En effet il suffit de lier la bibliothèque statique avec un programme existant. Pour la visualisation, le serveur a besoin d'assez peu de ressources. Les tests que j'ai pu effectuer sur mon PC ou sur le nœud nsadmin on été fait sans accélération graphique. Malgré un certain ralentissement, l'application reste utilisable. Mais il est plus confortable d'utiliser une machine équipée d'une carte graphique. Nous pouvons maintenant nous interroger à propos de l'impact sur les performances d'un programme MPI. Pour cela j'ai effectué plusieurs mesure. Le programme de test consiste à envoyer diverse donnée et à mesurer le temps de transfert. Il en ressort que lorsque la bibliothèque est liée mais sans modules actifs, la perte de performance est de l'ordre de 5%. Si on active les trois module (temps passé, nombre d'appels et Profilecomm, même si ce dernier n'envoie pas de données, il effectue tout de même un traitement) alors la perte monte à 45%. Ceci est principalement du au traitement de Profilecomm qui est assez lourd. Avec les module «call» et «time» nous avons une perte de 23%. Même si ces chiffres paraissent élevés, il faut voir que le programme de test traite le cas le plus défavorable (beaucoup d'appel MPI et envoi de message de petite taille). L'objectif des dernières semaines de stage sera de voir si il est possible d'optimiser le code pour obtenir de meilleurs résultats. Il faudra surtout s'intéresser au cas des modules inactifs. En effet si il est possible de liée la bibliothèque en impactant de façon négligeable les performances, alors il sera possible d'intégrer l'outil avec tout les programmes MPI et d'activer les modules suivant les besoins depuis le serveur. Dans ce cas même si les performances seront dégradé, l'utilisateur en est conscient et le fait pour observer le déroulement d'une application. Une fois l'observation terminée, les modules seront désactivé et l'exécution reprendra normalement. Modularité Cette méthode de visualisation est basée sur la création de divers modules, aussi bien au niveau client MPI que serveur de visualisation. Ce choix laisse une très grande liberté au développeur pour adapter l'outil à ses besoins. Par exemple, en utilisent le script python, il est très facile de créer un autre module pour compter le nombre de «barrière» dans un programme (les barrières sont des points de synchronisation, un processus dans une barrière 24

35 se bloque et attend ses voisins). L'outil Profilecomm a déjà été adapté pour être utilisé avec le générateur python. Une fois le module créé, il suffit d'hériter la classe Module pour transformer les données reçues en un résultat visible. On voit ici apparaître une première limite dans la conception du serveur de visualisation. En effet à l'heure actuelle le serveur ne sait afficher que des cubes de couleur. Même si cette représentation est adaptée aux paramètres liés à un seul processus (comme le temps passé, le nombre d'appel MPI,...), elle est n'est pas utilisable pour représenter les échanges entre processus. Or avec Profilecomm on souhaiterait observer les matrices de communications. Il faudra donc trouver un visuel adapté aux échanges. Limite Une autre limite évidente à cette application est qu'elle ne permet que l'observation de paramètres liés à MPI. Il est impossible par exemple d'obtenir la charge CPU des machines ou l'utilisation du réseau. Pour cela il faut utiliser des outils de surveillance de cluster comme Ganglia 3. Par contre il peut être intéressant de recouper les résultats globaux concernant tout le cluster fournis par Ganglia avec les résultats localisé sur MPI. Perspectives Le but premier de l'application était de fournir un moyen de visualiser en temps réel le fonctionnement d'une application MPI. Mais on peut très bien l'utiliser pour obtenir des résultat dit «post-mortem». Par exemple on pourrait demander au serveur d'écrire dans un fichier les résultats qu'il reçoit en plus de les afficher. Ceci pourrait aussi être fait du coté MPI si trop de données sont perdu lors de l'envoi (en effet les données sont envoyé par UDP, c'est un protocole dit non fiable, mais plus simple et donc plus «rapide») Si les données sont écrites dans un format facilement utilisable (comme le XML par exemple), il serait possible d'écrire des utilitaires pour tracer des courbes et faire des statistiques sur le comportement d'un programme. Nous pouvons même imaginer de renvoyer ces données au serveur de visualisation pour revoir le déroulement de l'application et s'arrêter ou ralentir à des moments précis. Utilisation Dans un premier temps il est probable que cet outil sera utilisé à des fin de démonstrations. Cela permettra à des personnes non spécialisées dans le domaine du calcul parallèle de prendre conscience du fonctionnement d'un programme (les échanges, la vitesse de calcul) et du matériel mis en jeu (nombre de processeurs en particulier). 3http://ganglia.info/ 25

36 Mais avec la création de nouveaux modules, nous pouvons penser que l'application sera utilisée par les développeurs. En effet elle permet de voir rapidement ce qu'il se passe dans un programme. Il est déjà possible de savoir si un processus est bloqué, s'il ne passe pas assez de temps dans MPI ou même s'il est détruit. L'intégration future de Profilecomm va aussi permettre de voir les échanges inter-processus et donc de savoir si un processus est surchargé de données ou au contraire s'il en reçoit très peu. 26

37 Conclusion L'objectif de ce stage était de réaliser un outil graphique pour l'observation en temps réel de programmes MPI. Même si de nombreuses améliorations sont encore nécessaire, l'outil tel qu'il est aujourd'hui, permet déjà d'observer le comportement d'un programme MPI en cours d'exécution. Grâce a une conception modulaire, il devrait être facile d'ajouter des fonctionnalités pour étendre les possibilités du programme suivant les besoins. Personnellement, ce stage m'a permis de mieux appréhender le monde de l'entreprise. J'ai aussi pu acquérir de nouvelles connaissances comme le langage Python et OpenGL (et plus généralement sur la conception d'interfaces graphiques). De plus, faire ce stage dans une grande société m'a permis d'assister à des conférences, une première sur les implémentations liées à MPI et une autre sur les futurs systèmes de fichiers sous Linux (ext4). 27

38

39 Annexes

40

41 Annexe 1 : Présentation de Tera10 i

42

43 Présentation Le cluster Tera10 est constitué de 544 NovaScales, chacun avec 8 processeurs Intel Itanium Dual-Core (appelé Montecito). Les serveurs sont reliés par un réseau Quadrics QsNet II. En tout, Tera 10 a une capacité de 4352 processeurs dual-core et 30 Tera octets de mémoire. 56 Novascales sont dédiés aux I/O gérant un péta octets d'espace disques et une bande passante de 100 Go/s. Illustration 4: Configuration d'un Novascale iii

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU LANDPARK NETWORK IP Avril 2014 LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU Landpark NetworkIP est composé de trois modules : Un module Serveur, que l'on installe sur n'importe

Plus en détail

Le meilleur de l'open source dans votre cyber cafe

Le meilleur de l'open source dans votre cyber cafe Le meilleur de l'open source dans votre cyber cafe Sommaire PRESENTATION...1 Fonctionnalités...2 Les comptes...3 Le système d'extensions...4 Les apparences...5 UTILISATION...6 Maelys Admin...6 Le panneau

Plus en détail

Projet : PcAnywhere et Le contrôle à distance.

Projet : PcAnywhere et Le contrôle à distance. Projet : PcAnywhere et Le contrôle à distance. PAGE : 1 SOMMAIRE I)Introduction 3 II) Qu'est ce que le contrôle distant? 4 A.Définition... 4 B. Caractéristiques.4 III) A quoi sert le contrôle distant?.5

Plus en détail

Edutab. gestion centralisée de tablettes Android

Edutab. gestion centralisée de tablettes Android Edutab gestion centralisée de tablettes Android Résumé Ce document présente le logiciel Edutab : utilisation en mode enseignant (applications, documents) utilisation en mode administrateur (configuration,

Plus en détail

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés. 2010 Ing. Punzenberger COPA-DATA GmbH Tous droits réservés. La distribution et/ou reproduction de ce document ou partie de ce document sous n'importe quelle forme n'est autorisée qu'avec la permission

Plus en détail

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24 Guide Utilisateur Titre du projet : Sig-Artisanat Type de document : Guide utilisateur Cadre : Constat : Les Chambres de Métiers doivent avoir une vision prospective de l'artisanat sur leur territoire.

Plus en détail

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide Acronis Backup & Recovery 10 Advanced Server Virtual Edition Guide de démarrage rapide Ce document explique comment installer et utiliser Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Copyright

Plus en détail

http://www.jdl68160.com/informatique/yawcam.htm

http://www.jdl68160.com/informatique/yawcam.htm Date de publication: le 11/05/2013 Date de modification le : 19/05/2013-20:45 Edition de la version PDF le 20/05/2013 Yawcam est un petit logiciel gratuit, mais très complet, permettant de diffuser/d'enregistrer

Plus en détail

Manuel d'utilisation d'apimail V3

Manuel d'utilisation d'apimail V3 Manuel d'utilisation d'apimail V3 I Préambule Page 3 II Présentation Page 4 III Mise en route Configuration Page 5 Messagerie Serveur smtp Serveur pop Compte pop Mot de passe Adresse mail Laisser les messages

Plus en détail

Assistance à distance sous Windows

Assistance à distance sous Windows Bureau à distance Assistance à distance sous Windows Le bureau à distance est la meilleure solution pour prendre le contrôle à distance de son PC à la maison depuis son PC au bureau, ou inversement. Mais

Plus en détail

I Pourquoi une messagerie?

I Pourquoi une messagerie? I Pourquoi une messagerie? Outlook express est un logiciel de messagerie de windows. Il est installé par défaut sur un grand nombre d ordinateurs de la planète, ceux tournant sous Windows, et proposé par

Plus en détail

Didacticiel de mise à jour Web

Didacticiel de mise à jour Web Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

La réplication sous SQL Server 2005

La réplication sous SQL Server 2005 La réplication sous SQL Server 2005 Mettre en place la réplication sur SQL Server 2005 La réplication des bases de données est une problématique classique dans les systèmes d'information. En effet, dans

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Livre blanc Mesure des performances sous Windows Embedded Standard 7 Livre blanc Mesure des performances sous Windows Embedded Standard 7 Table des matières Résumé... 1 Introduction... 1 Utilisation de la boîte à outils Windows Performance Analysis... 2 Fonctionnement...

Plus en détail

Guide de déploiement

Guide de déploiement Guide de déploiement Installation du logiciel - Table des matières Présentation du déploiement du logiciel CommNet Server Windows Cluster Windows - Serveur virtuel CommNet Agent Windows Cluster Windows

Plus en détail

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Module 0 : Présentation de Windows 2000

Module 0 : Présentation de Windows 2000 Module 0 : Présentation de Table des matières Vue d'ensemble Systèmes d'exploitation Implémentation de la gestion de réseau dans 1 Vue d'ensemble Donner une vue d'ensemble des sujets et des objectifs de

Plus en détail

CAHIER DE S CHARGE S Remote Workload Manager

CAHIER DE S CHARGE S Remote Workload Manager CAHIER DE S CHARGE S Remote Workload Manager équipe Regis Rouyard (rouyar_r) Jonathan Bouchot (boucho_o) Johan Massin (massin_j) Jacky Rouquette (rouque_j) Yannick Boillon (boillo_o) EPITECH INOVATION

Plus en détail

Infrastructure - Capacity planning. Document FAQ. Infrastructure - Capacity planning. Page: 1 / 7 Dernière mise à jour: 16/04/14 16:09

Infrastructure - Capacity planning. Document FAQ. Infrastructure - Capacity planning. Page: 1 / 7 Dernière mise à jour: 16/04/14 16:09 Document FAQ Infrastructure - Capacity planning EXP Page: 1 / 7 Table des matières Détails de la fonctionnalité... 3 I.Généralités... 3 II.Configuration... 3 III.Vue globale des capacités...3 IV.Vue par

Plus en détail

Facility Touch Client. SAUTER EY-TC505F110 Logiciel Facility Touch Client Mise en service. Manuel D100238867 1/26 D100238867 D100238867

Facility Touch Client. SAUTER EY-TC505F110 Logiciel Facility Touch Client Mise en service. Manuel D100238867 1/26 D100238867 D100238867 SAUTER EY-TC505F110 Logiciel Facility Touch Client Mise en service Manuel 1/26 2/26 Contenu Contenu 1 Avant-propos 5 2 À propos de ce manuel 7 2.1 Objectif de ce manuel 7 2.2 Marques Propres 7 2.3 Abréviations

Plus en détail

Guide de l'utilisateur de l'utilitaire d'installation de caméra Avigilon

Guide de l'utilisateur de l'utilitaire d'installation de caméra Avigilon Guide de l'utilisateur de l'utilitaire d'installation de caméra Avigilon Version 4.10 PDF-CIT-D-Rev1_FR Copyright 2011 Avigilon. Tous droits réservés. Les informations présentées sont sujettes à modification

Plus en détail

Cet article fait suite au premier tutorial MSN publié sur le site (Tutorial MSN 7.0)

Cet article fait suite au premier tutorial MSN publié sur le site (Tutorial MSN 7.0) Voici un tutorial complet sur le célèbre logiciel de messagerie instantanée de Microsoft : Windows Live Messenger. Connu depuis plusieurs années sous le nom de MSN Messenger, c'est désormais sous cette

Plus en détail

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM Manuel d'utilisation OPTIMALOG 2008 Table des matières I Table des matières Part I Gestionnaire d'alarmes Optim'Alarm

Plus en détail

http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux

http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux Version 1.0 Septembre 2011 SOMMAIRE 1. Introduction 3 2. Installation du logiciel de virtualisation VirtualBox 4 3. Création d'une

Plus en détail

Détection d'intrusions en environnement haute performance

Détection d'intrusions en environnement haute performance Symposium sur la Sécurité des Technologies de l'information et des Communications '05 Détection d'intrusions en environnement haute performance Clusters HPC Fabrice Gadaud (fabrice.gadaud@cea.fr) 1 Sommaire

Plus en détail

Artica. La déduplication. Révision Du 08 Février 2011 version 1.5.020818

Artica. La déduplication. Révision Du 08 Février 2011 version 1.5.020818 Artica La déduplication Révision Du 08 Février 2011 version 1.5.020818 Table des matières Introduction :...2 Historique du projet :...2 A qui s'adresse Artica?...2 Licence et support...2 Que fait Artica?...

Plus en détail

Éléments d'architecture des ordinateurs

Éléments d'architecture des ordinateurs Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances

Plus en détail

Business Intelligence avec SQL Server 2012

Business Intelligence avec SQL Server 2012 Editions ENI Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel Collection Solutions Informatiques Extrait Alimenter l'entrepôt de données avec SSIS Business

Plus en détail

Serveur de travail collaboratif Michaël Hoste -

Serveur de travail collaboratif Michaël Hoste - Serveur de travail collaboratif Michaël Hoste - Table des matières 1. Qu'est ce qu'un serveur de travail collaboratif?...2 2. Pourquoi ce projet?...2 3. Possibilités d'utilisation dans le cadre de l'université...3

Plus en détail

TD/TP 1 Introduction au SDK d Android

TD/TP 1 Introduction au SDK d Android TD/TP 1 Introduction au SDK d Android Romain Raveaux 1 Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

OneDrive, le cloud de Microsoft

OneDrive, le cloud de Microsoft OneDrive est le cloud mis à disposition par Microsoft. Pour en profiter, il suffit de disposer d'un compte Microsoft (Tutoriel), Microsoft offre 10 Go de stockage (Dont 3 Go pour sauvegarder des photos).

Plus en détail

Microsoft Application Center Test

Microsoft Application Center Test Microsoft Application Center Test L'outil de Test de performance des Sites Web Avec Visual Studio.NET, il est fourni une petite application qui permet de valider la performance de son site Internet ou

Plus en détail

Guide d'installation du connecteur Outlook 4

Guide d'installation du connecteur Outlook 4 Le serveur de communication IceWarp Guide d'installation du connecteur Outlook 4 Version 10 Aout 2010 Icewarp France / DARNIS Informatique i Sommaire Guide du connecteur Outlook 1 Présentation... 1 Pré-requis

Plus en détail

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Licences Windows Server 2012 R2 dans le cadre de la virtualisation Résumé des licences en volume Licences Windows Server 2012 R2 dans le cadre de la virtualisation Ce résumé s'applique à tous les programmes de licences en volume Microsoft. Sommaire Synthèse... 2 Nouveautés

Plus en détail

DOCUMENTATION VISUALISATION UNIT

DOCUMENTATION VISUALISATION UNIT DOCUMENTATION VISUALISATION UNIT Table des matières 1)Documentation Utilisateur CamTrace VU...2 1)Premiers pas:...3 a)le mode Client CamTrace...4 b)le mode VU Standalone...6 2)F.A.Q...9 1)Vérifier la connectivité

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

CA ARCserve Backup Patch Manager pour Windows

CA ARCserve Backup Patch Manager pour Windows CA ARCserve Backup Patch Manager pour Windows Manuel de l'utilisateur r16 La présente documentation, qui inclut des systèmes d'aide et du matériel distribués électroniquement (ci-après nommés "Documentation"),

Plus en détail

progecad NLM Guide de l'utilisateur

progecad NLM Guide de l'utilisateur progecad NLM Guide de l'utilisateur Rev. 11.1 Table des matières Table des matières...2 Introduction...3 Comment démarrer...3 Installation de progecad NLM server...3 Enregistrement de progecad NLM server...3

Plus en détail

GANTTPROJECT. Julien TENDERO

GANTTPROJECT. Julien TENDERO GANTTPROJECT Julien TENDERO SOMMAIRE : 1 -Introduction : 2 -Installation et utilisation : 3-Édition, compilation et exécution dans Eclipse : 4-Améliorations apportées : 5-Conclusion: 1 -Introduction :

Plus en détail

Guide d'utilisation du Serveur USB

Guide d'utilisation du Serveur USB Guide d'utilisation du Serveur USB Copyright 20-1 - Informations de copyright Copyright 2010. Tous droits réservés. Avis de non responsabilité Incorporated ne peut être tenu responsable des erreurs techniques

Plus en détail

Boîte à outils OfficeScan

Boîte à outils OfficeScan Boîte à outils OfficeScan Manuel de l'administrateur Sécurité des points finaux Protection ti en ligne Sécurité Web Trend Micro Incorporated se réserve le droit de modifier sans préavis ce document et

Plus en détail

Le générateur d'activités

Le générateur d'activités Le générateur d'activités Tutoriel Mise à jour le 09/06/2015 Sommaire A. Mise en route du Générateur d'activité... 2 1. Installation de Page... 2 2. Création des bases du générateur d'activités... 3 3.

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Qu'est ce que le Cloud?

Qu'est ce que le Cloud? Qu'est ce que le Cloud? Le Cloud computing (informatique dans les nuages) consiste en l'utilisation de données à distance. Les fichiers de l utilisateur se trouve non pas dans son ordinateur personnel

Plus en détail

PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 %

PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 % PFE Télécommunications Pré-rapport à l'issue des 6 premières semaines de stage!"!"#$%&' ()*()!")+")# (#),()-,)*)"-./0 1 ()*()!")+-)# % 23 &0 )14) 56 7$8797%77:7' '72 Page 1 sur 5 Contexte Les centres de

Plus en détail

Retrospect 7.7 Addendum au Guide d'utilisation

Retrospect 7.7 Addendum au Guide d'utilisation Retrospect 7.7 Addendum au Guide d'utilisation 2011 Retrospect, Inc. Certaines parties 1989-2010 EMC Corporation. Tous droits réservés. Guide d utilisation d Retrospect 7.7, première édition. L utilisation

Plus en détail

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement) HP Data Protector Express Software - Tutoriel 4 Utilisation de Quick Access Control (Windows uniquement) Que contient ce tutoriel? Quick Access Control est une application qui s'exécute indépendamment

Plus en détail

Google Drive, le cloud de Google

Google Drive, le cloud de Google Google met à disposition des utilisateurs ayant un compte Google un espace de 15 Go. Il est possible d'en obtenir plus en payant. // Google Drive sur le web Se connecter au site Google Drive A partir de

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

ORACLE DIAGNOSTIC PACK 11G

ORACLE DIAGNOSTIC PACK 11G ORACLE DIAGNOSTIC PACK 11G PRINCIPALES CARACTÉRISTIQUES : Surveillance automatique des diagnostics (ADDM Automatic Database Diagnostic Monitor) Référentiel automatique de la charge (AWR Automatic Workload

Plus en détail

Gestion des utilisateurs : Active Directory

Gestion des utilisateurs : Active Directory Gestion des utilisateurs : Active Directory 1. Installation J'ai réalisé ce compte-rendu avec une machine tournant sous Windows 2008 server, cependant, les manipulations et les options restent plus ou

Plus en détail

Qlik Sense Desktop. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.

Qlik Sense Desktop. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik Sense Desktop Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik, QlikTech, Qlik Sense,

Plus en détail

JetClouding Installation

JetClouding Installation JetClouding Installation Lancez le programme Setup JetClouding.exe et suivez les étapes d installation : Cliquez sur «J accepte le contrat de licence» puis sur continuer. Un message apparait and vous demande

Plus en détail

Qlik Sense Cloud. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.

Qlik Sense Cloud. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik Sense Cloud Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik, QlikTech, Qlik Sense, QlikView,

Plus en détail

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

Couche application. La couche application est la plus élevée du modèle de référence. Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide Symantec Backup Exec 12.5 for Windows Servers Guide d'installation rapide 13897290 Installation de Backup Exec Ce document traite des sujets suivants: Configuration requise Conditions préalables à l'installation

Plus en détail

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données Table d index : 1. Généralités 1 2. Installation du logiciel 2 3. Suppression du logiciel 2 4. Activation du logiciel 3 5. Récupération de données perdues 4 6. Interprétation du résultat 6 7. Enregistrement

Plus en détail

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés Module SMS pour Microsoft Outlook MD et Outlook MD Express Guide d'aide Guide d'aide du module SMS de Rogers Page 1 sur 40 Table des matières 1. Exigences minimales :...3 2. Installation...4 1. Téléchargement

Plus en détail

OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR

OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR HISTORIQUE DES VERSIONS Vers. Date Rédacteur Objet de la modification 1.00 Juillet 2007 GTBO_AGRI Création du document 1.01 Février 2009 SAMOA

Plus en détail

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,

Plus en détail

Administration du site (Back Office)

Administration du site (Back Office) Administration du site (Back Office) A quoi sert une interface d'administration? Une interface d'administration est une composante essentielle de l'infrastructure d'un site internet. Il s'agit d'une interface

Plus en détail

Télécom Nancy Année 2013-2014

Télécom Nancy Année 2013-2014 Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON

Plus en détail

Installation et prise en main

Installation et prise en main TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

Gestion de projets. avec. Microsoft Office PROJECT 2003

Gestion de projets. avec. Microsoft Office PROJECT 2003 Gestion de projets avec Microsoft Office PROJECT 2003 Décembre 2006 1 Sommaire 1. Présentation de MS Office Project 2003 2. Aperçu général de l interface 3. Elaboration d un plan de projet 4. Gestion des

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Installation d'un serveur DHCP sous Windows 2000 Serveur

Installation d'un serveur DHCP sous Windows 2000 Serveur Installation d'un serveur DHCP sous Windows 2000 Serveur Un serveur DHCP permet d'assigner des adresses IP à des ordinateurs clients du réseau. Grâce à un protocole DHCP (Dynamic Host Configuration Protocol),

Plus en détail

GESTION DES BONS DE COMMANDE

GESTION DES BONS DE COMMANDE GESTION DES BONS DE COMMANDE P1 P2 Table des Matières LA GESTION DES BONS DE COMMANDE 4 PREMIERE EXECUTION DU LOGICIEL 5 DEFINITION DES PARAMETRES 8 Services 9 Comptes Utilisateurs 10 Adresse de livraison

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

CONNECTEUR PRESTASHOP VTIGER CRM

CONNECTEUR PRESTASHOP VTIGER CRM CONNECTEUR PRESTASHOP VTIGER CRM Page 1 / 14 Vtiger CRM - Prestashop Connector Pour PRESTASHOP version 1.4.x et 1.5.x Pour vtiger CRM version 5.1, 5.2.0, 5.2.1, 5.3 et 5.4 Introduction En tant que gérant

Plus en détail

Qu'est-ce que c'est Windows NT?

Qu'est-ce que c'est Windows NT? Qu'est-ce que c'est Windows NT? Que faire en cas de blocage d'une station NT? Profils «errants» avec win NT : des éclaircissements Echange de fichiers entre les deux environnements PC/Mac Blocage réseau

Plus en détail

Démontage d'un ordinateur

Démontage d'un ordinateur Espaces multimédias Communauté de Communes Moyenne Vilaine et Semnon : Démontage d'un ordinateur 1- A quoi sert-il de démonter son ordinateur? A) Par simple curiosité B) Pour nettoyer C) Pour remplacer

Plus en détail

Tutorial et Guide TeamViewer

Tutorial et Guide TeamViewer Tutorial et Guide TeamViewer TeamViewer est un programme qui permet de partager son bureau ou prendre la main d'un bureau à distance via internet partout dans le monde, et d'ainsi avoir l'opportunité de

Plus en détail

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

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 Version utilisée pour la Debian : 7.7 Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox Caractéristiques de bases : Un service web (ou service de la toile) est

Plus en détail

Qu'est-ce que le BPM?

Qu'est-ce que le BPM? Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant

Plus en détail

Configurer son courrier électrique avec votre compte Abicom

Configurer son courrier électrique avec votre compte Abicom Configurer son courrier électrique avec votre compte Abicom De tous les services Internet, l'échange de courrier électronique est probablement le plus populaire et plus vieil outil de communication encore

Plus en détail

Installation de Windows 2003 Serveur

Installation de Windows 2003 Serveur Installation de Windows 2003 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows

Plus en détail

Manuel d utilisation email NETexcom

Manuel d utilisation email NETexcom Manuel d utilisation email NETexcom Table des matières Vos emails avec NETexcom... 3 Présentation... 3 GroupWare... 3 WebMail emails sur internet... 4 Se connecter au Webmail... 4 Menu principal... 5 La

Plus en détail

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer Messages d'erreurs Erreur 602 Vous essayez de vous connecter à Internet. L'erreur n 602 apparaît et il vous est impossible de vous connecter. L'erreur 602 est souvent issue de l'utilisation de l'accès

Plus en détail

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Client sur un domaine stage personnes ressources réseau en établissement janvier 2004 Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041

Plus en détail

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1 Les Enseignants De l Ere Technologique - Tunisie - LE CLOUD COMPUTING TAT Tunisie 2014 Le Cloud Computing 1. Définition Les Enseignants de l Ere Technologique - Tunisie Le cloud computing (en français

Plus en détail

Seafile, pour simplifier l'accès à ses fichiers, les partager et les synchroniser

Seafile, pour simplifier l'accès à ses fichiers, les partager et les synchroniser Seafile, pour simplifier l'accès à ses fichiers, les partager et les Accès : hors E.N.T. Direction Informatique Accès : hors E.N.T. Version : 2.3 Date : 20/05/2015 Editeur : Auteur(s) : Copyright : Licence

Plus en détail

MEGA ITSM Accelerator. Guide de Démarrage

MEGA ITSM Accelerator. Guide de Démarrage MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune

Plus en détail

La haute disponibilité de la CHAINE DE

La haute disponibilité de la CHAINE DE Pare-feu, proxy, antivirus, authentification LDAP & Radius, contrôle d'accès des portails applicatifs La haute disponibilité de la CHAINE DE SECURITE APPLICATIVE 1.1 La chaîne de sécurité applicative est

Plus en détail

G. Méthodes de déploiement alternatives

G. Méthodes de déploiement alternatives Page 32 Chapitre 1 - Le fichier MigUser.xml permet de configurer le comportement d'usmt lors de la migration des comptes et profils utilisateurs (capture et restauration). - Le fichier config.xml permet

Plus en détail

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique émetteur : ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique référence : Esylog_PeerBackup 2005 le 20 mai 2005 version :

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

ETI/Domo. Français. www.bpt.it. ETI-Domo Config 24810150 FR 10-07-144

ETI/Domo. Français. www.bpt.it. ETI-Domo Config 24810150 FR 10-07-144 ETI/Domo 24810150 www.bpt.it FR Français ETI-Domo Config 24810150 FR 10-07-144 Configuration du PC Avant de procéder à la configuration de tout le système, il est nécessaire de configurer le PC de manière

Plus en détail

Livre blanc 2015. Solution Foxit(R) PDF Security Suite intégrée à Microsoft(R) Active Directory(R) Rights Management Service

Livre blanc 2015. Solution Foxit(R) PDF Security Suite intégrée à Microsoft(R) Active Directory(R) Rights Management Service Livre blanc 2015 Solution Foxit(R) PDF Security Suite intégrée à Microsoft(R) Active Directory(R) Rights Management Service Table des matières Introduction 3 Environnements Foxit PDF Security Suite 4 Application

Plus en détail

TAGREROUT Seyf Allah TMRIM

TAGREROUT Seyf Allah TMRIM TAGREROUT Seyf Allah TMRIM Projet Isa server 2006 Installation et configuration d Isa d server 2006 : Installation d Isa Isa server 2006 Activation des Pings Ping NAT Redirection DNS Proxy (cache, visualisation

Plus en détail