Travaux pratiques MPI
|
|
- Marie-Claire Bernier
- il y a 8 ans
- Total affichages :
Transcription
1 Travaux pratiques MPI Présentation de MPI Schéma général d un programme MPI Exécution d un programme C quelques commandes Unix Quelques fonctions MPI Exemples de programmes Communication Calcul de P Gestion des groupes Gestion des communicateurs Projets de TP 1
2 Présentation de MPI (Message Passing Interface) Bibliothèque standard à inclure dans un programme C (#include "mpi.h") ou Fortran (INCLUDE mpif.h ) Ancêtre : PVM (Parallel Virtual Machine) en 1991 Plusieurs implantations : MPI-1(1994), MPICH2(2000) et OpenMPI(2009) Autres bibliothèques : OpenMP(2010), Souvent utilisée dans des architectures à mémoire distribuée Modèle SPMD (Single Programme Multiple Data) Le même programme est installé dans chaque processeur (ou machine) Des instances multiples du programme traitent partiellement ou totalement les données Chaque instance a un identificateur unique par rapport à un communicateur L instance exécute la partie du programme selon son identificateur Référence : 2
3 Schéma général d un programme MPI rang identificateur du processus en cours par rapport à un communicateur si (rang = identificateur_spécifique) alors faire un traitement sinon faire un autre traitement p0 p2 p4 p5 p1 p3 p6 Communicateur A Communicateur B 3
4 Exécution d un programme C /* fichier hello.c*/ #include <stdio.h> int main() { printf("hello World!"); return 0; Compilation: $gcc hello.c (ou gcc o hello.exe hello.c) Exécution: $./a (ou /home/./a.exe ou./hello) Résultat: $ Hello World! 4
5 Quelques commandes Unix $pwd $ls -l $hostname $mpirun -n 1 hostname (ou mpiexec -np 1 hostname) $mpirun -n 7 hostname $mpirun hostname $mpirun -n 5 hello $mpirun -n 12 hello $mpirun -machinefile machine.txt -n 4 hostname 5
6 Quelques fonctions MPI (1/2) int MPI_Init(int *argc, char ***argv) int MPI_Finalize() int MPI_Comm_rank(MPI_Comm comm, int *rank) int MPI_Comm_size(MPI_Comm comm, int *size) int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm) int MPI_Comm_group(MPI_Comm comm, MPI_Group *group) int MPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm) 6
7 Quelques fonctions MPI (2/2) int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root,mpi_comm comm) Int MPI_Allreduce( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm ) Opérations : MPI_MAX : maximum MPI_MIN : minimum MPI_SUM : sum MPI_PROD : product MPI_LAND : logical and MPI_BAND : bit-wise and MPI_LOR : logical or MPI_BOR : bit-wise or MPI_LXOR: logical xor MPI_BXOR : bit-wise xor MPI_MAXLOC : max value + location MPI_MINLOC : min value + location Liste complète ( 360 fonctions) : 7
8 Exemples de programmes Exemple 1 : Communication entre processus Exemple 2 : Calcul de P Exemple 3 : Gestion des groupes Exemple 4 : Gestion des communicateurs Exercices 8
9 Algorithme de communication p nombre total des processus rang identificateur du processus si (rang 0) alors message Hello world du processus + rang envoyer(message,0) sinon écrire( Hello world du processus 0 : nombre de processus,p) pour source=1 à (p-1) faire recevoir(message,source) p0 écrire(message) p1 p2 p3 9
10 Programme de communication (1/3) /* programme hellompi.c*/ #include <stdio.h> #include <string.h> #include "mpi.h" int main(int argc, char* argv[]){ int my_rank; /* rank of process */ int p; /* number of processes */ int source; /* rank of sender */ int dest; /* rank of receiver */ int tag=0; /* tag for messages */ char message[100]; /* storage for message */ MPI_Status status ; /* return status for receive */ 10
11 Programme de communication (2/3) /* start up MPI */ MPI_Init(&argc, &argv); /* find out process rank */ MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); /* find out number of processes */ MPI_Comm_size(MPI_COMM_WORLD, &p); if (my_rank!=0){ /* create message */ sprintf(message, "Hello MPI World from process %d!", my_rank); dest = 0; /* use strlen+1 so that '\0' get transmitted */ MPI_Send(message, strlen(message)+1, MPI_CHAR,dest, tag,mpi_comm_world); 11
12 Programme de communication (3/3) else{ printf("hello MPI World From process 0: Num processes: %d\n",p); for (source = 1; source < p; source++) { MPI_Recv(message, 100, MPI_CHAR, source, tag, MPI_COMM_WORLD, &status); printf("%s\n",message); /* shut down MPI */ MPI_Finalize(); return 0; 12
13 Exercice 1 a) Compilation $mpicc -o hellompi.exe hellompi.c -lm b) Exécution $mpirun -n 5 hellompi.exe c) Création de hellompimod.c supprimer l appel MPI_Send exécuter le programme Que se passe-t-il? d) Création de course.c supprimer les appels MPI_Send supprimer la boucle lorsque my-rank=0 (processus p0) remplacer sprintf par printf (un affichage par processus) exécuter le programme à 2 reprises Que se passe-t-il? 13
14 Algorithme du calcul de P Calc_pi(rank, num_procs) si (rank = 0) alors num_intervals 1000 diffuser(num_intervals) h 1/num_intervals sum 0 pour i = rank + 1 à num_intervals pas num_procs x=h * (i 0,5) sum = sum + 4*racine_carrée(1 x 2 ) mypi = h* sum reduce(mypi,pi) si (rank = 0) alors écrire( PI=, pi) 14
15 Schéma du calcul de P Hypoyhèse : num_procs = 3 (p0, p1 et p2) num_intervals =10 donc h = 0,1 1 p0 calcule les valeurs x=0,05, x=0,35, x=0,65 et x=0,95 p1 calcule les valeurs x=0,15, x=0,45 et x=0,75 p2 calcule les valeurs x=0,25, x=0,55 et x=0,85 p0 p1 p2 p0 p1 p2 p0 p1 p2 p0 1 15
16 Programme du calcul de P (1/5) /* fichier calculpi.c */ #include <mpi.h> #include <stdio.h> #include <string.h> void calc_pi(int rank, int num_procs){ int i; int num_intervals; double h; double mypi; double pi; double sum; double x; /* set number of intervals to calculate */ if (rank == 0) { num_intervals = 1000; 16
17 Programme du calcul de P (2/5) /* tell other tasks how many intervals */ MPI_Bcast(&num_intervals, 1, MPI_INT, 0, MPI_COMM_WORLD); /* now everyone does their calculation */ h = 1.0 / (double) num_intervals; sum = 0.0; for (i = rank + 1; i <= num_intervals; i += num_procs) { x = h * ((double)i - 0.5); sum += (4.0 * sqrt(1.0 - x*x)); mypi = h * sum; /* combine everyone's calculations */ MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0,MPI_COMM_WORLD); if (rank == 0) { printf("pi is approximately %.16f\n", pi); 17
18 Programme du calcul de P (3/5) int main(int argc, char *argv[]) { int my_rank; /* rank of process */ int num_procs; /* number of processes */ int source; /* rank of sender */ int dest = 0; /* rank of receiver */ int tag = 0; /* tag for messages */ char message[100]; /* storage for message */ MPI_Status status ; /* return status for receive */ /* start up MPI */ MPI_Init(&argc, &argv); /* find out process rank */ MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); /* find out number of processes */ MPI_Comm_size(MPI_COMM_WORLD, &num_procs); 18
19 Programme du calcul de P (4/5) if (my_rank!= 0) { /* create message */ snprintf(message,26, "Greetings from process %d!", my_rank); /* use strlen+1 so that '\0' get transmitted */ MPI_Send(message, strlen(message)+1, MPI_CHAR, dest, tag, MPI_COMM_WORLD); else { printf("num processes: %d\n",num_procs); for (source = 1; source < num_procs; source++) { MPI_Recv(message, 100, MPI_CHAR, source, tag, MPI_COMM_WORLD, &status); printf("process 0 received \"%s\"\n",message); 19
20 Programme du calcul de P (5/5) /* now return the compliment */ snprintf(message, 26, "Hi, how are you? "); MPI_Bcast(message, strlen(message)+1, MPI_CHAR, dest, MPI_COMM_WORLD); if (my_rank!= 0) { printf("process %d received \"%s\"\n", my_rank, message); /* calculate PI */ calc_pi(my_rank, num_procs); /* shut down MPI */ MPI_Finalize(); return 0; 20
21 Exercice 2 a) Compilation b) Exécution $mpicc -o hellompi.exe hellompi.c $mpirun -n 4 hellompi.exe c) Corriger le programme pour calculer P d) Créer calculmod.c tel que P = 4 * dx/(1 + x 2 ) e) Quelle est la version qui donne les meilleures précisions relativement à num_intervals réduit sachant que les 25 chiffres de P sont : Pi25 = 3, f) Déterminer le temps d exécution des deux versions en utilisant MPI_Wtime()
22 Algorithme de gestion des groupes NBPROCS=8 rank1={0,1,2,3, rank2=[4,5,6,7 rank identificateur du processus p nombre total des processus si (rank < NBPROCS / 2) alors inclure(rank,groupe1) Sinon inclure (rank,groupe2) recevoir(message,source) écrire(message) P 22
23 Programme de gestion des groupes (1/2) #include "mpi.h" #include <stdio.h> #define NPROCS 8 int main(argc,argv) int argc; char *argv[]; { int rank, new_rank, sendbuf, recvbuf, ranks1[4]={0,1,2,3,ranks2[4]={4,5,6,7; MPI_Group orig_group, new_group; MPI_Comm new_comm; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); sendbuf = rank; /* Extract the original group handle */ MPI_Comm_group(MPI_COMM_WORLD, &orig_group); 23
24 Programme de gestion des groupes (2/2) /* Divide tasks into two distinct groups based upon rank */ if (rank < NPROCS/2) MPI_Group_incl(orig_group, NPROCS/2, ranks1, &new_group); else MPI_Group_incl(orig_group, NPROCS/2, ranks2, &new_group); /* Create new communicator and then perform collective communications */ MPI_Comm_create(MPI_COMM_WORLD, new_group, &new_comm); MPI_Allreduce(&sendbuf, &recvbuf, 1, MPI_INT, MPI_SUM, new_comm); MPI_Group_rank (new_group, &new_rank); printf("rank= %d newrank= %d recvbuf= %d\n",rank,new_rank,recvbuf); MPI_Finalize(); 24
25 Algorithme de gestion des communicateurs mon_rang identificateur du processus P nombre total des processus si (mon_rang < NBPROCS 0) alors inclure(mon_rang,groupe1) Sinon inclure (mon_rang,groupe2) recevoir(message,source) écrire(message) 25
26 Programme de gestion des communicateurs #include <stdio.h> #include <mpi.h> main(int argc, char **argv) { MPI_Comm row_comm, col_comm; int myrank, size, P=4, Q=3, p, q; MPI_Init (&argc, &argv); MPI_Comm_rank (MPI_COMM_WORLD, &myrank); MPI_Comm_size (MPI_COMM_WORLD, &size); /* Determine row and column position */ p = myrank / Q; q = myrank % Q; /* pick a row-major mapping */ /* Split comm into row and column comms */ MPI_Comm_split(MPI_COMM_WORLD, p, q, &row_comm); /* color by row, rank by column */ MPI_Comm_split(MPI_COMM_WORLD, q, p, &col_comm); /* color by column, rank by row */ printf("[%d]:my coordinates are (%d,%d)\n",myrank,p,q); MPI_Finalize(); 26
27 Exercice 3 a) Compilation b) Exécution $mpicc -o groupe.exe groupe.c $mpirun groupe.exe c) Diviser MPI_COMM_WORLD en 3 communicateurs non chevauchés (nonoverlapped) tels que : processus du rang 0, 3, 6,... appartient au premier groupe processus du rang 1, 4, 7,... appartient au deuxième groupe processus du rang 2, 5, 8,... appartient au troisième groupe 27
28 Références Ivan Lavallée, «Algorithmique parallèle et distribuée» Traité des nouvelles technologies, Hermes, Kai Hwang, «Advanced computer architecture: Parallelism, Sqcalability, Programmability», McGraw Hill Series in Computer Science, ml «MPI : A message Passing Interface Standard», Message Passing Interface Forum,
Introduction à 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étailSystè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 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é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é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é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é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 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é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é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étailSystèmes distribués et virtualisation de ressources
p. 1/18 Systèmes distribués et virtualisation de ressources Tanguy RISSET (Transparents : Antoine Fraboulet) tanguy.risset@insa-lyon.fr p. 2/18 Plan 1 Distribution de ressources 1. Distribution de ressources
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é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étailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
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 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é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é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étailExemple PLS avec SAS
Exemple PLS avec SAS This example, from Umetrics (1995), demonstrates different ways to examine a PLS model. The data come from the field of drug discovery. New drugs are developed from chemicals that
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étailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailM2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013
Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :
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é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étailGénération de code binaire pour application multimedia : une approche au vol
Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation
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é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é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é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étailAlgorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence
Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette
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é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étailProgrammation parallèle pour le calcul scientifique
Méthodologie M2 Programmation parallèle pour le calcul scientifique Benoît Semelin 2014 Préliminaire 1000 x ε ~ ε - Loguez vous sur rubicon.obspm.fr puis sur momentum.obspm.fr - Ecrire un programme qui:
Plus en détailPrésentation Windows Azure Hadoop Big Data - BI
Présentation Windows Azure Hadoop Big Data - BI Sommaire 1. Architecture Hadoop dans Windows Azure... 3 2. Requête Hive avec Hadoop dans Windows Azure... 4 3. Cas d études... 5 3.1 Vue : Administrateur...
Plus en détailInstitut français des sciences et technologies des transports, de l aménagement
Institut français des sciences et technologies des transports, de l aménagement et des réseaux Session 3 Big Data and IT in Transport: Applications, Implications, Limitations Jacques Ehrlich/IFSTTAR h/ifsttar
Plus en détailFrance SMS+ MT Premium Description
France SMS+ MT Premium Description Summary Subscription : kinematics Subscription via SMS (Kinematic + messages) Subscription via Wap (Kinematic + messages) Subscription via Mix SMS / WAP Subscription
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étailGroupe calcul parallèle
Groupe calcul parallèle «Exploiter le potentiel des nouvelles architectures» Vincent Lafage Luz Guevara Ivana Hrivnacova Christophe Diarra Contact :Luz Guevara e-mail : guevara@ipno.in2p3.fr Tel : 54463
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é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é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étailHow to Login to Career Page
How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications
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é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é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étailRapport de Mini-Projet en ArcGIS Engine
Rapport de Mini-Projet en ArcGIS Engine Réalisée par : Asmae BENMESSAOUD 3ème Année Cycle d Ingénieur Géoinformation Année Universitaire 2010- Sommaire 1 Introduction L analyse géographique et la visualisation
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é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é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é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é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étailFiche produit ifinance v4
Fiche produit ifinance v4 2005-2015, Synium Software GmbH Traduction française 2003-2015, SARL Mac V.F. Philippe Bonnaure http://www.macvf.fr support@macvf.fr Version 4 du 25/06/2015 Identification du
Plus en détailOUTIL DE TRAVAIL COLLABORATIF
B i b l i o t h è q u e OUTIL DE TRAVAIL COLLABORATIF Septembre 2012 TitanPad est un outil de travail collaboratif permettant de prendre des notes ou de rédiger à plusieurs un même texte à distance en
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
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é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étailDNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN
Mémoire DNS Server RPC Interface buffer overflow Céline COLLUMEAU Nicolas BODIN 3 janvier 2009 Table des matières 1 Introduction 2 2 Présentation de la faille 3 3 Exemple d exploitation 5 4 Solutions 10
Plus en détailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailParallélisme et bioinformatique
Master EGOIST - Rouen Plan 1 Introduction Parallélisme? Open MPI 2 Historique 3 Pour qui? Pour quoi? Parallélisme? C est quoi le parallélisme? Principe regrouper (physiquement ou logiquement) un ensemble
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é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étailRapport de stage de 2ème année. Filière Télécommunication
Institut Supérieur d'informatique, de Modélisation et de leurs Applications Complexe de Cézeaux BP 125 63173 Aubière Cedex www.isima.fr 1 rue de Provence BP 208-38432 Echirolles Cedex www.bull.com Rapport
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étailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
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é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étailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailREMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION. laurent.renault@u-picardie.fr
REMBO Version 2.0 Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION Description Successeur de BPBatch 3 déclinaisons Rembo Auto Deploy (déploiement massif de clients) Rembo Auto Backup (restauration
Plus en détailSeance 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étailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
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étailLe 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é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étailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
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é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é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é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étailProgrammation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval
École Nationale Supérieure de Techniques Avancées Programmation en C Pierre-Alain Fouque et David Pointcheval E-mail : Pierre-Alain.Fouque@ens.fr Web : http://www.di.ens.fr/~fouque/ Table des matières
Plus en détailSTS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
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étailApplication Form/ Formulaire de demande
Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application
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étailSQL Historique 1982 1986 1992
SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse
Plus en détailTD2/TME2 : Ordonnanceur et Threads (POSIX et fair)
UE PC2R page 1/8 TD2/TME2 : Ordonnanceur et Threads (POSIX et fair) Exercice 1 (Modélisation) Chemin de Fer Cet exercice est dédié à l étude d un problème de circulation de trains : Voie! out1 in1 Voie!
Plus en détailProgrammation Réseau SSH et TLS (aka SSL)
Programmation Réseau SSH et TLS (aka SSL) Jean-Baptiste.Yunes@liafa.jussieu.fr Coloriages: François Armand armand@informatique.univ-paris-diderot.fr UFR Informatique 2011-2012 Réseau et Sécurité Problèmes
Plus en détailProgrammation Classique en langage C
DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric
Plus en détailLes débordements de tampons et les vulnérabilités de chaîne de format 1
Les débordements de tampons et les vulnérabilités de chaîne de format 1 Patrice Lacroix Groupe LSFM Département d informatique et de génie logiciel Université Laval 18 décembre 2002 1 Cette recherche a
Plus en détailLangages et Concepts de Programmation Introduction à la programmation en langage C
Langages et Concepts de Programmation Introduction à la programmation en langage C Cours 1A 2013-2014 Jean-Jacques Girardot, Marc Roelens girardot@emse.fr, roelens@emse.fr Septembre 2013 École Nationale
Plus en détail30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2
2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10
Plus en détailFrequently Asked Questions
GS1 Canada-1WorldSync Partnership Frequently Asked Questions 1. What is the nature of the GS1 Canada-1WorldSync partnership? GS1 Canada has entered into a partnership agreement with 1WorldSync for the
Plus en détailOptimisation des performances et Parallélisme en C/C++ - openmp - MPI MPE - UPC - CUDA 1 / 118-op
Optimisation des performances et Parallélisme en C/C++ - openmp - MPI - UPC - CUDA -opencl http://www.ann.jussieu.fr/pironneau Olivier Pironneau 1 1 University of Paris VI, Laboratoire J.-L. Lions, Olivier.Pironneau@upmc.fr
Plus en détailLes processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
Plus en détailQuick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.
Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational
Plus en détailGestion de la mémoire
433 43 3 Gestion de la mémoire + 1. Qu'est-ce que la mémoire? - Définitions, exemples 2. Allocation contiguë en mémoire - Partitions de taille fixe, de taille variable 3. Pagination et mémoire virtuelle
Plus en détail