Cours sur Open MPI. Christophe Dumez Laboratoire SeT. 5 septembre Introduction 2
|
|
- Gustave Beaudry
- il y a 7 ans
- Total affichages :
Transcription
1 Cours sur Open MPI Christophe Dumez Laboratoire SeT 5 septembre 2008 Table des matières 1 Introduction 2 2 Programmation en C avec Open MPI Structure minimale du programme Le communicateur Fonctions importantes Échanges synchrones Échanges asynchrones Autres fonctions utiles Constantes Jokers Types élémentaires Opérations MPI Communicateurs reservés Exemples Hello World Token Ring Compilation et exécution 9 1
2 1 Introduction MPI (Message Passing Interface) est une norme conçue en 1993 indépendante de toute language de programmation, utilisée pour le calcul parallèle. Elle permet d exploiter des ordinateurs distants ou multiprocesseurs par passage de messages. MPI est le standard le plus utilisé dans l informatique haute-performance actuelle. Ses principaux atouts sont ses performances, son évolutivité, et sa portabilité. Une deuxième version de MPI nommée MPI-2 est disponible depuis Open MPI est une implémentation libre de MPI-2 utilisable en C, C++ et Fortran. 2 Programmation en C avec Open MPI L objectif de cette partie est de vous fournir les bases afin de pouvoir commencer à developper en langage C avec la bibliothèque Open MPI. 2.1 Structure minimale du programme Il est important de noter que tout programme utilisant Open MPI possède la structure présentée par le listing 1. #include <mpi.h> int main(int argc, char** argv) { /* declare variables */ MPI_Init(&argc, &argv); /* parse arguments */ /* main program */ MPI_Finalize(); Listing 1 Structure minimale pour Open MPI 2.2 Le communicateur MPI définit un communicateur (Communicator) comme étant un groupe de processus. Au sein de chaque communicateur, chaque processus possède un identificateur qui est son rang. Lors de l initialisation à l aide de MPI_Init(), un communicateur par défaut est créé : MPI_COMM_WORLD. Celui-ci contient tous les processus. Si vous n utilisez pas d autres groupes, vous pouvez utilisez MPI_COMM_WORLD en paramètre de toutes les fonctions nécessitant un Communicator (MPI_Comm). 2
3 2.3 Fonctions importantes Voici les principales fonctions que vous aurez à utiliser Échanges synchrones int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Permet de réaliser un envoi bloquant de message. buf est un pointeur sur la variable à envoyer. count permet d indiquer le nombre d éléments à envoyer (à utiliser pour les tableaux). datatype indique le type de l élement envoyé (détaillé dans la section 2.4.2). dest indique le rang du processus destinataire. tag est un entier servant d identification pour le message et comm est le Communicator. int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Permet de se mettre en réception d un message. Cette routine est bloquante tant qu il n y a pas de nouveau message. buf est un pointeur vers le message reçu. count indique le nombre maximum d éléments à recevoir. datatype indique le type de message à recevoir. source identifie le rang de l émetteur du message. tag est un entier identifiant le message et comm est le Communicator. int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) Réduction des valeurs de tous les processus au sein d un groupe. op est un opérateur MPI (détaillés dans la section 2.4.3). MPI applique la fonction de réduction MPI indiquée en paramètre sur les tampons d entrée (sendbuf) de tous les processus et met le résultat dans le tampon de sortie (recvbuf) du processus possédant le rang root. int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm) Permet de diffuser un message (broadcast) depuis le processus ayant le rang root vers tous les autres processus du groupe. Le reste des paramètres est identique à ceux de la fonction MPI_Send(). int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) Test bloquant de la disponibilité d un message. Met le processus en attente tant que le message attendu n est pas disponible mais ne lit pas le message. Le développeur est alors libre d aller lire le message. Cette commande peut-être utile 3
4 pour effectuer de l allocation dynamique de mémoire en fonction de la taille du message testé retourné par MPI_Probe() via la structure status. Les champs de la structure MPI_STATUS sont les suivants : - int MPI_SOURCE ; - int MPI_TAG ; - int MPI_ERROR ; - int _count ; - int _cancelled ; Échanges asynchrones int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) Permet de réaliser un envoi non bloquant de message. Un pointeur request vers une structure MPI_Request est retourné. Via cette requête, il est possible de consulter son statut ou de se mettre en attente. int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request) Permet de réaliser une réception non bloquante de message. Un pointeur request vers une structure MPI_Request est retourné. Via cette requête, il est possible de consulter son statut ou de se mettre en attente. int MPI_Wait(MPI_Request *request, MPI_Status *status) Attente de terminaison d une opération d envoi ou de réception de message asynchrone. La request retournée par l opération d envoi est à passer en paramètre. int MPI_Waitany(int count, MPI_Request *array_of_requests, int *index, MPI_Status *status) Se met en attente de n importe quelle opération d envoi ou de réception dont la requête a été passée en paramètre via le tableau array_of_requests. int MPI_Waitall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) Met en attente de toutes les opérations d envoi ou de réception dont la requête a été passée en paramètre via le tableau array_of_requests. Cette fonction ne retourne pas tant que toutes les requêtes n ont pas abouti. int MPI_Test(MPI_Request *request, int *flag, MPI_Status 4
5 *status) Test permettant de vérifier la terminaison (ou non) d une opération d envoi ou de réception spécifique.flag est mis à vrai si l opération est terminée, false sinon. int MPI_Testany(int count, MPI_Request *array_of_requests, int *index, int *flag, MPI_Status *status) Test si une des opérations d envoi ou de réception (précédentes) est terminée. Les requêtes correspondantes aux opérations à tester sont passées en paramètre via array_of_requests. flag est mis à vrai si une des opérations est terminée, faux sinon. int MPI_Testall(int count, MPI_Request *array_of_requests, int *flag, MPI_Status *array_of_statuses) Test si toutes les opérations d envoi ou de réception (précédentes) sont terminées. Les requêtes correspondantes aux opérations à tester sont passées en paramètre via array_of_requests. flag est mis à vrai si toutes les opérations sont terminées, faux sinon. int MPI_IProbe(int source, int tag, MPI_Comm comm, int* flag, MPI_Status *status) Test non-bloquant de la disponibilité d un message. Le développeur est alors libre d aller lire le message s il est arrivé. flag est mis à true si un message correspondant au profil est disponible Autres fonctions utiles int MPI_Init(int *argc, char ***argv) Cette fonction est utilisée pour initialiser l environnement d exécution de MPI. Les paramètres sont les mêmes que pour la fonction main. Cette fonction doit être appelée avant n importe quelle autre routine MPI (à part MPI_Initialized()). int MPI_Comm_rank(MPI_Comm comm, int *rank) Détermine le rang du processus appelant au sein du système de Communicator comm passé en paramètre. Le processus principal (master) possède le rang 0. MPI_Comm_rank() est donc utile pour connaitre le rôle du processus actuel. int MPI_Comm_size(MPI_Comm comm, int *size) Indique le nombre de processus au sein du Communicator comm passé en paramètre. int MPI_Finalize() 5
6 Arrête l environnement d exécution de MPI. Tous les processus doivent appeler cette routine avant de s arreter. int MPI_Barrier(MPI_Comm comm) Définit un point de synchronisation. Cette routine bloque tant que tous les processus ne l ont pas exécutée. int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) Retourne le nombre d éléments reçus lors de l opération de réception. status est un pointeur vers le statut retourné par la précédente opération de réception (MPI_Recv()). 2.4 Constantes Jokers Open MPI définit des constantes de type joker : MPI_ANY_TAG est à utiliser à la place du tag identifiant le message (par exemple dans MPI_Recv()) afin d indiquer que l on ne désire pas tenir compte de celui-ci. MPI_ANY_SOURCE est à utiliser à la place du rang de l émetteur (par exemple dans MPI_Recv()) afin d indiquer qu on ne désire pas se limiter à un émetteur. MPI_STATUS_IGNORE permet d indiquer que le status ne nous intéresse pas (par exemple dans la commande MPI_Recv()) Types élémentaires Les types élémentaires MPI (MPI_Datatype) sont les suivants : MPI_CHAR, MPI_SHORT, MPI_INT, MPI_LONG, MPI_FLOAT, MPI_DOUBLE, MPI_LONG_DOUBLE, MPI_UNSIGNED, MPI_UNSIGNED_CHAR, MPI_UNSIGNED_SHORT, MPI_UNSIGNED_LONG, MPI_LOGICAL, MPI_BYTE, MPI_PACKED, Opérations MPI Les opération MPI (MPI_Op) supportées sont les suivantes : MPI_MAX : Maximum MPI_MIN : Minimum MPI_SUM : Somme MPI_PROD : Produit MPI_LAND : ET logique (AND) 6
7 MPI_BAND : ET bit à bit (AND) MPI_LOR : OU logique (OR) MPI_BOR : OU bit à bit (OR) MPI_LXOR : OU Exclusif logique (XOR) MPI_BXOR : OU Exclusif bit à bit (XOR) Communicateurs reservés Les communicateurs (Communicator) reservés sont les suivants : MPI_COMM_WORLD, MPI_COMM_SELF. MPI_COMM_WORLD est le communicateur par défaut initialisé par la fonction MPI_Init(), il contient tous les processus. Utilisez celui-ci en paramètre de toutes les fonctions réclamant le Communicator. 3 Exemples Dans cette partie, nous présentons deux exemples utilisant Open MPI. La section 3.1 présente le traditionnel Hello World et la section 3.2 présente un exemple un peu plus complexe, nécessitant l envoi de messages. 3.1 Hello World Le listing 2 présente un exemple simple de Hello World distribué utilisant MPI. Ce code permet de demander à chaque processus d afficher le texte "Hello World" ainsi que son rang et le nombre total de processus. #include <stdio.h> #include <mpi.h> int main(int argc, char* argv[]) { int rank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf("hello, world, I am %d of %d\n", rank, size); MPI_Finalize(); return 0; Listing 2 Exemple : HelloWorld distribué Le listing 3 présente un exemple où les processus sont organisés en structure d anneau (ring). Le processus principale (possèdant le rang 0) initialise la variable message à 10 puis il fait passer le message au processus suivant. Ensuite, chaque processus fait passer le message au processus d après de manière à ce que le message fasse le tour de l anneau. A chaque passage du message, au niveau du 7
8 processus principal, celui-ci décrémente la valeur du message. Lorsque le message atteint la valeur 0, les processus transmettent une dernière fois le message avant de s arreter. 3.2 Token Ring #include <stdio.h> #include <mpi.h> int main(int argc, char *argv[]) { int rank, size, next, prev, message, tag = 201; /* Start up MPI */ MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); /* Calculate the rank of the next process in the ring. Use the modulus operator so that the last process "wraps around" to rank zero. */ next = (rank + 1) % size; prev = (rank + size - 1) % size; /* If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put the number of times to go around the ring in the message. */ if (0 == rank) { message = 10; printf("process 0 sending %d to %d, tag %d (%d processes in ring)\n", message, next, tag, size); MPI_Send(&message, 1, MPI_INT, next, tag, MPI_COMM_WORLD); printf("process 0 sent to %d\n", next); /* Pass the message around the ring. The exit mechanism works as follows: the message (a positive integer) is passed around the ring. Each time it passes rank 0, it is decremented. When each processes receives a message containing a 0 value, it passes the message on to the next process and then quits. By passing the 0 message first, every process gets the 0 message and can quit normally. */ while (1) { MPI_Recv(&message, 1, MPI_INT, prev, tag, MPI_COMM_WORLD, MPI_STATUS_IGNORE); if (0 == rank) { --message; printf("process 0 decremented value: %d\n", message); MPI_Send(&message, 1, MPI_INT, next, tag, MPI_COMM_WORLD); if (0 == message) { printf("process %d exiting\n", rank); 8
9 break; /* The last process does one extra send to process 0, which needs to be received before the program can exit */ if (0 == rank) { MPI_Recv(&message, 1, MPI_INT, prev, tag, MPI_COMM_WORLD, MPI_STATUS_IGNORE); /* All done */ MPI_Finalize(); return 0; Listing 3 Exemple : Token Ring 4 Compilation et exécution Pour compiler les programmes utilisant la bibliothèque Open MPI, il suffit d utiliser le compilateur fourni par Open MPI : mpicc. Un exemple est fourni dans le listing 4. Les paramètres sont similaires à ceux de gcc. mpicc hello_c.c -o hello_c Listing 4 Commande de compilation L exécution de programme MPI est réalisée à l aide du programme mpirun. Un exemple est fourni dans le listing 5. mpirun -hostfile hosts -np 3 hello_c Listing 5 Commande d exécution Les principaux paramètres de mpirun sont présentés dans le listing 6. -np <#> : indique le nombre de processus a utiliser -hostfile <path> : indique le chemin vers le fichier contenant les liste des hotes -nolocal : indique a MPI de ne pas lancer de processus sur la machine locale Listing 6 Paramètres de mpirun Il est important de noter que le programme à exécuter doit être présent sur toutes les machines présentes dans le fichier d hôte. Le fichier hostfile possède une structure comme celle présentée dans l exemple du listing 7. Le paramètre slots permet d indiquer à MPI combien de processus peuvent êtres exécutés sur une machine. Si une machine possède plusieurs processeurs, il est utile de préciser le nombre de slots afin qu ils soient tous utilisés. 9
10 localhost slots=2 #Dual-Processor node1 slots=1 #Single processor node2 slots=4 #Quadri-processor Listing 7 Fichier d hôtes 10
Systèmes parallèles et distribués
Systèmes parallèles et distribués Grégory Mounié 2013-12 Grégory Mounié Systèmes parallèles et distribués 2013-12 1 / 58 Outline 1 Introduction 2 Performances 3 Problèmes du calcul parallèle 4 Intergiciels
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailINFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table
Plus en détailIntroduction to Parallel Programming with MPI
Introduction to Parallel Programming with MPI Master Modélisation et Simulation - ENSTA cours A1-2 Pierre Kestener pierre.kestener@cea.fr CEA-Saclay, DSM, France Maison de la Simulation MDLS, September,
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailMPI-1 2ème partie : Programmation «non bloquante» et communications de groupe
3A-SI Programmation parallèle MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle MPI-1 2ème partie
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en détailPlan de la formation. Calcul parallèle avec MPI. Pourquoi paralléliser? Parallélisation. Présentation, environnement MPI. Communications point à point
Plan de la formation Calcul parallèle avec MPI Guy Moebs Parallélisation Présentation, environnement MPI Communications point à point Laboratoire de Mathématiques Jean Leray, CNRS, Université de Nantes,
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détail3IS - Système d'exploitation linux - Programmation système
3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des
Plus en détailGrid Computing. Mihaela JUGANARU-MATHIEU mathieu@emse.fr 2014-2015. École Nationale Supérieure des Mines de St Etienne
Mihaela JUGANARU-MATHIEU mathieu@emse.fr École Nationale Supérieure des Mines de St Etienne 2014-2015 Bibliographie (livres et revues) : Frédéric Magoulès, Jie Pan, Kiat-An, Tan Abhinit Kumar Introduction
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailInstructions Mozilla Thunderbird Page 1
Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailCours de C. Petits secrets du C & programmation avancée. Sébastien Paumier
Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression
Plus en détailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
Plus en détailExercices sur SQL server 2000
Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailArguments d un programme
Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1
Plus en détailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détailCouche 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étailDurée estimée :1 journée Date de la réalisation : 2011. Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ
001 Titre : Mesure de température interfacée par carte Arduino Type de réalisation : montage électronique, de surveillance de température Concepteur : C. Rouviere Coordonnées : Laboratoire lbv villefranche/mer
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailOnce the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
Plus en détailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailInstructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00
Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce
Plus en détailSurveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition
Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution
Plus en détailI>~I.J 4j1.bJ1UlJ ~..;W:i 1U
~I ~~I ~ ~WI~I ~WI ~~'~.M ~ o~wj' js'~' ~ ~JA1ol..;l.:w I>~I.J 4j1.bJ1UlJ ~..;W:i 1U Exercice 1: Le modele TCP/IP est traditionnellement considere comme une pile de 5 couches. Pour chaque couche, expliquer
Plus en détail27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)
Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailOutils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad
Outils d'analyse de la sécurité des réseaux HADJALI Anis VESA Vlad Plan Introduction Scanneurs de port Les systèmes de détection d'intrusion (SDI) Les renifleurs (sniffer) Exemples d'utilisation Conclusions
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailInternet Group Management Protocol (IGMP) Multicast Listener Discovery ( MLD ) RFC 2710 (MLD version 1) RFC 3810 (MLD version 2)
Internet Group Management Protocol (IGMP) Multicast Listener Discovery ( MLD ) RFC 2710 (MLD version 1) RFC 3810 (MLD version 2) multicast applications Site NREN MLD / IGMP IGMP v2 : generality Interaction
Plus en détailCompléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :
FOIRE AUX QUESTIONS COMMENT ADHÉRER? Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante : 275, boul des Braves Bureau 310 Terrebonne (Qc) J6W 3H6 La
Plus en détailCahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Plus en détailWEB page builder and server for SCADA applications usable from a WEB navigator
Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel
Plus en détailContents Windows 8.1... 2
Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to
Plus en détailA l'avenir, chacun aura son quart d'heure de célébrité.. Andy WAHROL
A l'avenir, chacun aura son quart d'heure de célébrité.. Andy WAHROL trough the In the " trough the mirror " work, the question of the value of a video image as reflection of reality arises and in this
Plus en détailProblèmes liés à la concurrence
ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détaillundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public
Communautés Numériques L informatique à la portée du Grand Public Initiation et perfectionnement à l utilisation de la micro-informatique Microsoft Document Connection pour Mac. Microsoft Document Connection
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailThe new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.
General information 120426_CCD_EN_FR Dear Partner, The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. To assist navigation
Plus en détailLier Erlang avec d autres langages de programmation
16 Lier Erlang avec d autres langages de programmation Les logiciels actuels, quelle que soit leur taille, sont souvent écrits dans plusieurs langages de programmation. Généralement, les pilotes de périphériques
Plus en détailPaxton. ins-20605. Net2 desktop reader USB
Paxton ins-20605 Net2 desktop reader USB 1 3 2 4 1 2 Desktop Reader The desktop reader is designed to sit next to the PC. It is used for adding tokens to a Net2 system and also for identifying lost cards.
Plus en détailSendmail milter/greylisting
Sendmail milter/greylisting Kai Poutrain - JT-SIARS 2005 Milter : objectifs Fournir une interface pour des filtres externes pour traiter les mails Validation d informations Modification de contenu tout
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailMon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2
Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailGestion des prestations Volontaire
Gestion des prestations Volontaire Qu estce que l Income Management (Gestion des prestations)? La gestion des prestations est un moyen de vous aider à gérer votre argent pour couvrir vos nécessités et
Plus en détailPROJET 1 : BASE DE DONNÉES REPARTIES
PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties
Plus en détailSupervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
Plus en détailLes communications collectives. Caractéristiques. Communications dans un groupe de processus. Dans un communicateur donné.
Les communications collectives Communications dans un groupe de processus. Dans un communicateur donné. Trois sortes : Synchronisation globale MI_Barrier() Transferts de données : diffusion/collecte globale/sélective
Plus en détailAPPENDIX 6 BONUS RING FORMAT
#4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailTutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Plus en détailAIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES
AIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES FORMULAIRE DE DEMANDE D AIDE / APPLICATION FORM Espace réservé pour l utilisation de la fondation This space reserved for foundation use
Plus en détailGrid Computing. Plan du cours. Plan. Composants d une Grille. Nouredine.Melab@lifl.fr. Besoin d intergiciels robustes
Grid Computing Plan du cours Nouredine.Melab@lifl.fr Les grilles informatiques : concepts et infrastructures La grille nationale Grid5000 Modèles de programmation et intergiciels pour le grilles Etude
Plus en détailLe passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!
> Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.
Plus en détailVTP. LAN Switching and Wireless Chapitre 4
VTP LAN Switching and Wireless Chapitre 4 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Pourquoi VTP? Le défi de la gestion VLAN La complexité de gestion des VLANs et des
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailMicro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance
Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser le Bureau a distance.doc Préambule Voici quelques
Plus en détailF-7a-v3 1 / 5. 7. Bourses de mobilité / Mobility Fellowships Formulaire de demande de bourse / Fellowship Application Form
F-7a-v3 1 / 5 7. Bourses de mobilité / Mobility Fellowships Formulaire de demande de bourse / Fellowship Application Form Nom de famille du candidat Langue de correspondance Français Family name of participant
Plus en détailProgrammation parallèle et distribuée
ppd/mpassing p. 1/43 Programmation parallèle et distribuée Communications par messages Philippe MARQUET Philippe.Marquet@lifl.fr Laboratoire d informatique fondamentale de Lille Université des sciences
Plus en détailStakeholder Feedback Form January 2013 Recirculation
071 Stakeholder Feedback Fm January 2013 Recirculation A. How to Submit Your Comments 1. 2. 3. EMAIL: submissions@collegeofpsychotherapists.on.ca OR FAX: (416) 874-4079 OR MAIL: Consultations Transitional
Plus en détailProgrammation C. J.-F. Lalande. 15 novembre 2012
Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à
Plus en détailExercice sur les Dockers
Exercice sur les Dockers Les parties composant les Dockers: 1 docker daemon: est un démon qui gère les dockers (les conteneurs LXC) qui tournent sur la machine hôte 2 docker CLI: une série de commandes
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailBourses d excellence pour les masters orientés vers la recherche
Masters de Mathématiques à l'université Lille 1 Mathématiques Ingénierie Mathématique Mathématiques et Finances Bourses d excellence pour les masters orientés vers la recherche Mathématiques appliquées
Plus en détailUtiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces
Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles
Plus en détailDéveloppement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)
Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Propriétés Description Intitulé long Formation concernée Matière Présentation Développement d un logiciel de messagerie
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailL installation a quelque peu changée depuis les derniers tutos, voici une actualisation.
Gestion de parc Informatique OCS, GLPI sur Debian 5 Jonathan Gautier Open Computer and Software Inventory Next Generation (OCS inventory NG) est une application permettant de réaliser un inventaire sur
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Plus en détailGestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche
Gestion centralisée d un réseau de sites discrets Nicolas JEAN - @salemioche SEO / Technique,utilisation SEO Technique / Utilisation Intérêt du réseau Centralisé Discrétion Simplicité d utilisation Caractéristique
Plus en détailParis Airports - Web API Airports Path finding
Paris Airports - Web API Airports Path finding Hackathon A660 Version Version Date writer Comment 1.0 19/05/2015 Olivier MONGIN Document creation Rédacteur : Olivier.MONGIN@adp.fr Date : 19/05/2015 Approbateur
Plus en détailArchivage Messagerie Evolution pour usage HTML en utilisant Hypermail
Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire
Plus en détailPARIS ROISSY CHARLES DE GAULLE
GPS 2 34 1 E 49 0 46 N GPS* 2 56 56 E 49 0 12 N Votre contact / Your contact: et / and: Accueil : Cabines téléphoniques publiques Reception: Public telephone kiosks Navette Shuttle AÉROPORT DE TT CAR TRANSIT
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailLe système de gestion des fichiers, les entrées/sorties.
Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailETABLISSEMENT D ENSEIGNEMENT OU ORGANISME DE FORMATION / UNIVERSITY OR COLLEGE:
8. Tripartite internship agreement La présente convention a pour objet de définir les conditions dans lesquelles le stagiaire ci-après nommé sera accueilli dans l entreprise. This contract defines the
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailCONVENTION DE STAGE TYPE STANDART TRAINING CONTRACT
CONVENTION DE STAGE TYPE STANDART TRAINING CONTRACT La présente convention a pour objet de définir les conditions dans lesquelles le stagiaire ci-après nommé sera accueilli dans l entreprise. This contract
Plus en détailCOMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2
SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES
Plus en détail