Outline MPI. Tolérance aux pannes. Systèmes distribués. Mise en commun de resources. Introduction. Performances. Grégory Mounié
|
|
- Fernande Laperrière
- il y a 6 ans
- Total affichages :
Transcription
1 Outline MPI Grégory Mounié ven. Introduction Performances Problèmes du calculs parallèle Intergiciels 1 / 52 2 / 52 Systèmes distribués Tolérance aux pannes Mise en commun de resources matérielles : CPU, mémoire, logiciels, données Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it. L. T. A distributed system is one that stops you from getting any work done when a machine you ve never heard of, crashes. 3 / 52 4 / 52
2 Systèmes distribués Dans ce cours Attention Un programme distribué présente de nombreux désavantages! D une manière générale il vaut mieux éviter le recours aux programmes distribués. Objectif vers des systèmes à très grand échelle réseaux pair-à-pair: edonkey, freenet, gnutella calcul distribué: boinc, mpi, kaapi Outils Intergiciels, dépend de la plateforme visée Algorithmes, dépend du type d intergiciel, dé l échelle visé, et bien sûr du problème. 5 / 52 6 / 52 Exemple d intergiciel: BOINC Déroulement du cours issu de SETI@HOME infrastructure de calcul nombreux projets: radioactive@home, docking@home, milkyway@home Le 2 novembre 2012 Active: 262,919 volunteers, 845,104 computers. 24-hour average: PetaFLOPS. (rang 3.5 au top500) cours: Speedup, Amdahl, Graham, Équilibrage, MPI TP: lancé de rayon distribué (MPI) cours : tolérance aux pannes TP : lancé de rayon (MPI / Kaapi) cours : opérations de communication TP : déploiement d applications, introduction au projet 7 / 52 8 / 52
3 Projet Évaluation de performances implantation des techniques du cours langague / bibliothèque au choix make distribué compilation blender analyse de performances : 80 coeurs La mesure du temps La mesure précise du temps est un problème dès qu il y a plusieurs horloge déjà sur un multi-coeur, pour avoir des temps à la nanoseconde en distribuée 9 / / 52 Definition (L accélération) Accélération C est le temps d un calcul parallèle divisé par le meilleur temps séquentiel Algorithme 1: l Addition L efficacité 11 / / 52
4 Algo 2: Tri PRAM Algo 3: Tri MCSTL N 2 Merge en 3 phases. 13 / / 52 Tri rapide Second exemple Wu / / 52
5 Merge Loi d Amdahl Comment commenter ces courbes rapidement?! Accélération de l exécution T STL / T Library STL min element on 8 threads 3 X-Kaapi 2 KaSTL PaSTeL 1 TBB Cilk Size Dans chaque code on trouve une partie parallèle et une partie séquentielle idéalement : T p = T 1 (1 f ) + T1 f p lim p T p = T 1 (1 f ) Exemples : code parallèle à 50 % : T = T 1 /2 code parallèle à 80 % : T 10 = 0.28T 1 jeudi 3 septembre / / 52 Heuristiques à performance garantie Definition (Une heuristique a une garantie de performance de q) si pour toute instance I d un problème et σi la valeur la solution optimale, l heuristique produit une solution de valeur σ I tel que I, σ I < qi 19 / 52 Graham Algorithme de liste :: Les tâches à ordonnancer sont rangés dans une liste de priorité Lorsqu une ressource de calcul est disponible, on démarre le calcul de la tâche prête (ou qui démarre le plus tôt) la plus prioritaire dessus. Theorem (Tâches indépendantes séquentielles) Un algorithme de liste a une garantie de performance de 2 sur m processeurs homogènes. Theorem (Graphe de tâches séquentielles) Un algorithme de liste a une garantie de performance de 2 sur m processeurs homogènes. Theorem (Tâches indépendantes parallèles rigides) Un algorithme de liste a une garantie de performance de 2 sur m processeurs homogènes. 20 / 52
6 Preuve des tâches indépendantes Preuve des graphes Montrer le 2 en utilisant les bornes inférieures de la solution optimale. Illustrer l importance du / / 52 Approximation duale Équilibrage de charge Comment répartir les calculs si l on a deux types de processeurs et donc des vitesses différentes pour les tâches. l approximation duale au sens de Schmoys permet d obtenir une garantie de 2 facilement. Découpe statique Maître-esclave Vol de travail Adaptatif 23 / / 52
7 Données Déploiement 25 / / 52 Tolérance aux pannes Hétérogénéité 27 / / 52
8 Programmation distribuée Le point difficile lors de la programmation, est la gestion de la distribution et des communications. Des bibliothèques/api comme MPI permettent de programmer les applications avec le paradigme simple à comprendre du passage de message. D autres abstractions sont possibles (OpenMP, OpenMP avec des tâches, RMI+J2EE, DO, DCOM, etc.). Le passage de message Le paradigme consiste à écrire dans le code séquentiel exécuté par chaque noeuds, les communications (envoi ou réception) qu il doit réaliser pour faire correctement le calcul. Exemple: sur le noeud 0 1: int tableau[3] = {1,2,3}; 2: int destinataire=3; 3: 4: Calcul(tableau, 3); 5: Envoi(tableau, 3, INT, destinataire); sur le noeud 3 29 / 52 1: int tableaucalcule[3] = {}; 2: int emetteur=0; 3: 4: Recevoir(tableauCalcule, 3, INT, emetteur); 5: ContinuerCalcul(tableauCalcule, 3); 30 / 52 MPI Histoire MPI est un standard définissant l API de fonctions permettant d implanter des applications parallèles avec passage de message. Le standard ne définit pas les opérations de gestion (lancement de l application parallèle). Elles peuvent varier d une implantation à l autre. Implantation la plus couramment utilisée: L API est défini pour C, C++ et Fortran. Elle est la somme de l expertise des concepteurs autour de l écriture de bibliothèque d échange de message ( , 1996 pour MPI-2). Elle permet ou fournit: la portabilité (standard), l exploitation des performances au plus près du matériel, elle fournit de nombreuses fonctionnalité et est disponible presque partout. 31 / / 52
9 Mémoire distribuée Hello world en MPI MPI a été conçu pour des architectures à mémoire distribuée avec un seul CPU. Elle a évolué pour faciliter l exploitation de multi-coeurs inter-connectés. Elle supporte l hétérogénéité (verbeux) et la dynamicité (dépend de l implantation) 1: #include <mpi.h> 2: 3: int main(int argc, char **argv) { 4: MPI_Init(& argc, &argv); 5: printf("hello world!\n"); 6: MPI_Finalize(); 7: } 33 / / 52 Compilation Nommage des processus 1: mpicc -o hello hello.c 2: mpirun -np 100./hello # 100 Hello! 3: mpirun -np hostfile listedemachines./hello Pour pouvoir différencier les calculs des noeuds, il faut pouvoir les nommer. Tous les processus lancés ensemble appartiennent à un même groupe (Communicateur). Le communicateur par défaut est MPI_COMM_WORLD Deux fonctions permettent d obtenir la taille et le rang dans le communicateur. 35 / / 52
10 Hello world et nommage Mesure du temps écoulé 1: #include <mpi.h> 2: #include <stdio.h> 3: 4: int main(int argc, char **argv) { 5: int taille, rang, len; 6: char hostname[mpi_max_processor_name]={}; 7: MPI_Init(& argc, &argv); 8: MPI_Comm_size(MPI_COMM_WORLD, &taille); 9: MPI_Comm_rank(MPI_COMM_WORLD, &rang); 10: MPI_Get_processor_name(hostname, &len); 11: printf("hello world %d parmi %d sur %s!\n", rang, taille, hostname); 12: MPI_Finalize(); 13: } 1: double MPI_Wtime(); 2: 3: double debut = MPI_Wtime(); 4:... 5: double fin = MPI_Wtime(); 6: printf("temps ecoule %g\n", fin - debut); 7: 8: double MPI_Wtick(); (tick) La précision de la mesure est disponible en utilisant la fonction de la ligne (tick). L affichage est dans le désordre. Il dépend de l ordonnancement des processus lancés. 37 / / 52 Communications MPI_Send / MPI_Recv MPI propose de nombreuses variantes pour les communications point-à-point (un processus emetteur et un processus récepteur). 1: float tableau[10]; 2: int recepteur; int TAG=123456; 3:... 4: MPI_Send(tableau, 10, MPI_FLOAT, 5: recepteur, TAG, 6: MPI_COMM_WORLD); 1: float tableaur[10]; 2: MPI_Status status; int emetteur; 3:... 4: MPI_Recv( tableaur, 10, MPI_FLOAT, 5: emetteur, TAG, 6: MPI_COMM_WORLD, &status); 39 / / 52
11 Sémantique Exercice MPI_Send() et MPI_Recv() sont bloquants jusqu à ce que les données puissent être réutilisé, MPI_Recv() est donc bloquant jusqu à la réception du message, MPI_Send() est bloquant jusqu à ce que l envoi ou la copie des données. Anneau à jeton Le premier processus envoie un entier au processus numéro 2. Chaque autre processus passe un entier au processus suivant. Le dernier repasse l entier au premier. 41 / / 52 Joker en réception 1: MPI_Recv( tableaur, 10, MPI_FLOAT, 2: MPI_ANY_SOURCE, MPI_ANY_TAG, // jokers 3: MPI_COMM_WORLD, &status); Pourquoi avoir plusieurs type de communications Exemple: tous les processus échangent avec le processus 0 if (rang!= 0) { MPI_Send(donnees, nb, MPI_DOUBLE, 0, TAG, MPI_COMM_WORLD); MPI_Recv(donnees, nbr, MPI_DOUBLE, 0, TAG, MPI_COMM_WORLD, & st } else { for(int dest =1; dest < taille; dest++, donnees += nbr) { MPI_Send(donnees, nb, MPI_DOUBLE, dest, TAG, MPI_COMM_WORLD); MPI_Recv(donnees, nb, MPI_DOUBLE, dest, TAG, MPI_COMM_WORLD, } } Si Send envoie les données lorsque la réception est prête, quel est le problème? Si Send envoie les données dès qu il commence, quel est le problème? 43 / / 52
12 Envoi et Réception Asynchrone Envoi synchrone MPI permet de démarrer des communications puis d attendre plus tard leur fin. MPI_Request req; MPI_Status status; MPI_IRecv(donnees, nb, MPI_INT, emetteur, TGA, MPI_COMM_WORLD, &req);... MPI_Wait(&req, &status); L envoi terminera après le début de la réception MPI_Ssend(donnees, nb, MPI_INT, destinataire, TAG, MPI_COMM_WORLD); mais aussi MPI_Test(), MPI_Testall(), MPI_Testany(), MPI_Testsome(), MPI_Waitall(), MPI_Waitany(), MPI_Waitsome() 45 / / 52 Envoi tamponné Envoi et réception simultanée Le code d échange précédent mais avec deux tampons différents. Les données seront copiées dans un tampon intermédiaire MPI_Buffer_attach(& buffer, taille); MPI_Bsend(donnees, nb, MPI_INT, destinataire, TAG, MPI_COMM_WORLD); MPI_Buffer_detach(& buffer, taille); Cela à un coût non négligeable par rapport à une transmission avec 0 copie. if (rang!= 0) { MPI_Sendrecv(donnees, nb, MPI_DOUBLE, 0, STAG donnees2, nb2, MPI_DOUBLE, 0, RTAG, MPI_COMM_WORLD, & status); } else { for(int dest =1; dest < taille; dest++, donnees += nbr) { MPI_Sendrecv(donnees, nb, MPI_DOUBLE, dest, STAG, donnees2, nb2, MPI_DOUBLE, dest, RTAG, MPI_COMM_WORLD, & status); } } 47 / / 52
13 Envoi prêt (ready) à être reçu Et encore MPI_Waitall(), MPI_Waitany(), Le programmeur indique que la réception est déjà place. MPI_Rsend(donnees, nb, MPI_INT, destinataire, TAG, MPI_COMM_WORLD); MPI_Waitsome() Attente mais sans faire vraiment la réception : MPI_Probe Version incomplète des envois 49 / / 52 Communication collective 1: MPI_Barrier(MPI_COMM_WORLD); 2: MPI_Bcast( donnees, 20, MPI_INT, root, MPI_COMM_WORLD ); 3: MPI_Scatter( donnees, 20, MPI_INT, 4: donneesr, 20, MPI_INT, 5: root, MPI_COMM_WORLD); 6: MPI_Gather( donnees, 20, MPI_INT, 7: donneesr, 20, MPI_INT, 8: root, MPI_COMM_WORLD); 9: MPI_Allgather( donnees, 20, MPI_INT, 10: donneesr, 20, MPI_INT, 11: root, MPI_COMM_WORLD); 12: MPI_Reduce( donnees, donneesr, 20, MPI_INT, 13: OP, root, MPI_COMM_WORLD); 14: // OP: MPI_MAX, MPI_SUM, MPI_PROD, etc. les types de bases Construction de type dérivé MPI_CHAR, MPI_WCHAR, MPI_SHORT, MPI_INT, MPI_LONG, MPI_FLOAT, MPI_DOUBLE, MPI_BYTE, etc. Pour une structure 1: struct T { int a; float b; }; 2: T tmp; 3: int nb=2; 4: int len[2] = {1, 1}; 5: MPI_Aint indices[2] = { (&tmp.a) - (&tmp), (&tmp.b) - (&tmp) 6: MPI_Datatype old[2] = { MPI_INT, MPI_FLOAT }; 7: MPI_Datatype new; 8: MPI_Type_struct( nb, len, indices, old, & new ); 51 / / 52
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é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é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é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étailRuntime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I
Runtime Gestion de la réactivité des communications réseau François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I 1 Le calcul hautes performances La tendance actuelle
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é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é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étailInitiation au HPC - Généralités
Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours
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é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é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é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é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é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é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é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é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étailCours de Master Recherche
Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction
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étailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
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é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é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étailPROJET ALGORITHMIQUE ET PROGRAMMATION II
PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du
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étailBig Data et Graphes : Quelques pistes de recherche
Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université
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étailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Plus en détailÉquilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.
Facultés Universitaires Notre-Dame de la Paix, Namur Institut d Informatique Année académique 2003-2004 Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de
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étailBig Data et Graphes : Quelques pistes de recherche
Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de
Plus en détailEvaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques
Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques (bourse EPSRC numéro GR/S21717/01) Enhancing the Perf. Predictability of Grid Appli. with Patterns and
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
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étailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_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é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é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é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étailIntroduction à MapReduce/Hadoop et Spark
1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
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é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é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étailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
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é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é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étailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailUniversité du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.
Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local
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étailGestion de clusters de calcul avec Rocks
Gestion de clusters de calcul avec Laboratoire de Chimie et Physique Quantiques / IRSAMC, Toulouse scemama@irsamc.ups-tlse.fr 26 Avril 2012 Gestion de clusters de calcul avec Outline Contexte 1 Contexte
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é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étailParallélisme et Répartition
Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre
Plus en détail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
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étailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailModule BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet Anne.Doucet@lip6.fr Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de
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étailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailContribution à la conception à base de composants logiciels d applications scientifiques parallèles.
- École Normale Supérieure de LYON - Laboratoire de l Informatique du Parallélisme THÈSE en vue d obtenir le grade de Docteur de l École Normale Supérieure de Lyon - Université de Lyon Discipline : Informatique
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é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étailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailSugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009
SugarCubes Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués Paris, le 9 janvier, 2009 Plan 2 Les SugarCubes au dessus de J2ME Quelques résultats expérimentaux Les
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailLes environnements de calcul distribué
2 e Atelier CRAG, 3 au 8 Décembre 2012 Par Blaise Omer YENKE IUT, Université de Ngaoundéré, Cameroun. 4 décembre 2012 1 / 32 Calcul haute performance (HPC) High-performance computing (HPC) : utilisation
Plus en détailUne dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU
Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour
Plus en détailIntroduction au calcul parallèle avec OpenCL
Introduction au calcul parallèle avec OpenCL Julien Dehos Séminaire du 05/01/2012 Sommaire Introduction Le calculateur du CGR/LISIC/LMPA Généralités sur OpenCL Modèles Programmation Optimisation Conclusion
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étailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailAlgorithmique des Systèmes Répartis Protocoles de Communications
Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
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étailContexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,
Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très
Plus en détailECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;
RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
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é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étailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailCONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade
CONFIGURATION DU SERVEUR DE MAILS EXIM par G.Haberer, A.Peuch, P.Saade Table des matieres 1. Introduction........................................................................ 2 1.1. Objectifs....................................................................
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é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é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é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é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étailObjets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Plus en détail1 Mesure de la performance d un système temps réel : la gigue
TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core
Plus en détailLe traitement du temps
Programmation Système Mesure Horloges Sommeil Mise en forme Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/ enib, F.H... 1/30 Intérêt Cadencer les
Plus en détailWASD en environnement haute disponibilité Jean-Pierre PETIT WASD Le produit WASD WASD signifie Wide Area Surveillance Division C est le nom d une division de la défense australienne qui a accepté en 1996
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailFIMA, 7 juillet 2005
F. Corset 1 S. 2 1 LabSAD Université Pierre Mendes France 2 Département de Mathématiques Université de Franche-Comté FIMA, 7 juillet 2005 Plan de l exposé plus court chemin Origine du problème Modélisation
Plus en détail