Systèmes parallèles et distribués

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

Download "Systèmes parallèles et distribués"

Transcription

1 Systèmes parallèles et distribués Grégory Mounié Grégory Mounié Systèmes parallèles et distribués / 58

2 Outline 1 Introduction 2 Performances 3 Problèmes du calcul parallèle 4 Intergiciels Grégory Mounié Systèmes parallèles et distribués / 58

3 Introduction Systèmes distribués Mise en commun de resources matérielles : CPU, mémoire, logiciels, données Grégory Mounié Systèmes parallèles et distribués / 58

4 Introduction Tolérance aux pannes Stockage pérenne 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. Définition de Lamport A distributed system is one that stops you from getting any work done when a machine you ve never heard of, crashes. Grégory Mounié Systèmes parallèles et distribués / 58

5 Introduction Systèmes distribués 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. Grégory Mounié Systèmes parallèles et distribués / 58

6 Introduction Dans ce cours Objectif vers des systèmes à très grand échelle réseaux pair-à-pair: edonkey, freenet, gnutella calcul distribué orienté performance: boinc, mpi, charm++, kaapi Outils Intergiciels, dépend de la plateforme visée Algorithmes, dépend du type d intergiciel, de l échelle visé, et bien sûr du problème. Grégory Mounié Systèmes parallèles et distribués / 58

7 Introduction Exemple d intergiciel: BOINC issu de infrastructure de calcul nombreux projets: Le 2 décembre 2013 Actifs: volunteers, computers. 24-hour average: 8.11 PetaFLOPS. (rang 5.5 au top500) Grégory Mounié Systèmes parallèles et distribués / 58

8 Introduction Déroulement des séances 1 cours: Speedup, Amdahl, Graham, équilibrage, MPI 2 cours: tolérance aux pannes/opérations de communication 3 TP: lancé de rayon distribué (MPI) 4 TP: lancé de rayon (MPI) 5 TP: simgrid / déploiement d applications 6 cours: présentation de votre projet devant les autres étudiants (10 min) Grégory Mounié Systèmes parallèles et distribués / 58

9 Introduction Projet trinome (10 min de présentation+5min question) implantation des techniques du cours langagues / bibliothèques parmi 20 choix arbitraire (transparent suivant) make distribué compilation blender analyse de performances : jusqu à 80 coeurs sur 40 PCs Grégory Mounié Systèmes parallèles et distribués / 58

10 Introduction Les environnements et bibliothèques possibles Chaque groupe choisira un enviromment différents parmi les 20 suivants: 1 Les environnement de programmations parallèles distribuées: MPI (Communication Asynchrone); MPI (Communication uni-directionnelles Read/Write); MPI (Communication Collectives); MPI (avec l interface fichier de MPI); Charm++ (Bibliothèque C++) Python PP Hadoop (Map-Reduce de Apache) Python + Disco (map reduce en python) 2 Les languages dédiés Julia (http://julialang.org); Erlang (http://erlang.org); Chapel (http://chapel.cray.com) 3 Les objets distribués Java-RMI; DO de Objective-C (gnustep); Distributed ADA (polyorb); Python + Pyro; RPC Go (http://golang.org); RPC C; Corba; 4 Autres Zero-MQ (bibliothèque réseau de haut niveaux) Simgrid (simulation) Grégory Mounié Systèmes parallèles et distribués / 58

11 Introduction Lanceurs parallèles Pour lancer vos applications, il faudra être capable de déployer les instances sur les PCs Lanceurs parallèles Il faut éviter la boucle for séquentielle de ssh qui ne passe pas à l échelle: taktuk est le lanceur conseillé ssh-add et taktuk -c "ssh -A" Grégory Mounié Systèmes parallèles et distribués / 58

12 Performances Évaluation de performance La mesure du temps La mesure précise du temps est un problème dès qu il y a plusieurs horloges déjà sur un multi-coeur, pour avoir des temps à la nanoseconde en distribuée POSIX clock_gettime() de <time.h>. Grégory Mounié Systèmes parallèles et distribués / 58

13 Performances Accélération Definition (L accélération (Speedup)) C est le temps du meilleur calcul séquentiel divisé par le temps de calcul parallèle sur m processeurs ( T 1 /T m ) Grégory Mounié Systèmes parallèles et distribués / 58

14 Performances L efficacité L efficacité (Efficiency) C est l accélération multiplié par l inverse du nombre m de ressources de calculs ( T 1 /(m T m ) ). Accélération superlinéaire et super efficacité Normalement l accélération est plus petite que m et lefficacité plus petite que 1. Ce n est pas toujours vrai (cache, algorithme non déterministe). Grégory Mounié Systèmes parallèles et distribués / 58

15 Performances Algorithme 1: l Addition Question Comment additionne-t-on deux entiers? Quelle est le problème dans une parallélisation de cet algorithme? Comment faire? Grégory Mounié Systèmes parallèles et distribués / 58

16 Performances Algo 2: Tri PRAM Question Quelle est l opération de base d un tri? Comment la paralléliser? Pourquoi la compléxité d un tri devient alors N 2?. Grégory Mounié Systèmes parallèles et distribués / 58

17 Performances Algo 3: Tri MCSTL Question Comment améliorer le surcoût du tri? Idée du merge-sort parallèle (mémoire partagée) 1 merge-sort local 2 échange de pivots, tri et échanges des chunks correspondants 3 fusion des chunks Grégory Mounié Systèmes parallèles et distribués / 58

18 Performances Tri rapide Grégory Mounié Systèmes parallèles et distribués / 58

19 Performances Merge Comment commenter ces courbes rapidement?! Accélération de l exécution 9 STL min element on 8 threads 8 7 T STL / T Library X-Kaapi 2 KaSTL PaSTeL 1 TBB Cilk Size jeudi 3 septembre Grégory 2009 Mounié Systèmes parallèles et distribués / 58

20 Performances Loi d Amdahl Dans chaque code on trouve une partie parallèle et une partie séquentielle modèle du temps d exécution : T m = T 1 (1 f ) + T 1 f m lim m T m = T 1 (1 f ) Exemples : code parallèle à 50 % : T = T 1 /2 code parallèle à 80 % : T 10 = 0.28T 1 Grégory Mounié Systèmes parallèles et distribués / 58

21 Performances Heuristiques à performance garantie Problèmes NP-Difficiles Une exécution parallèle efficace demande la résolution des problèmes d optimisation classiques: partition, ordonnancement, sac-à-dos, etc. Ils sont (tous) NP-Difficile. On ne cherche pas l optimal, mais juste une bonne solution. 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 Grégory Mounié Systèmes parallèles et distribués / 58

22 Performances Graham Definition (Algorithme de liste) Les tâches à ordonnancer sont rangées dans une liste de priorité Lorsqu une ressource de calcul est disponible, on y démarre le calcul de la tâche prête (ou qui démarrera le plus tôt) la plus prioritaire. Grégory Mounié Systèmes parallèles et distribués / 58

23 Performances Garantie des algorithmes de listes 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. Grégory Mounié Systèmes parallèles et distribués / 58

24 Performances Bornes inférieures On ne peut pas comparer avec la solution optimale, mais on peut se comparer avec deux bornes inférieures. Le chemin critique du graphe La plus longue tâche pour les tâches indépendantes La somme du coût des noeuds divisée par le nombre de processeurs Le travail total divisé par le nombre de processeurs Grégory Mounié Systèmes parallèles et distribués / 58

25 Performances Preuve pour les tâches indépendantes Montrer le 2 en utilisant les bornes inférieures de la solution optimale. Grégory Mounié Systèmes parallèles et distribués / 58

26 Performances Preuve des graphes Illustrer l importance du Grégory Mounié Systèmes parallèles et distribués / 58

27 Performances Approximation duale 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. Grégory Mounié Systèmes parallèles et distribués / 58

28 Problèmes du calcul parallèle Équilibrage de la charge 4 grandes stratégies: Découpe statique Maître-esclave Vol de travail Adaptatif Grégory Mounié Systèmes parallèles et distribués / 58

29 Problèmes du calcul parallèle Découpage statique Répartition efficace Le but est de minimiser les communications et les synchronisations. "Owner compute rule" Les calculs sont effectués là où sont rangées les données. Découpage automatique efficace avec des partitionneurs de graphes (Scotch et Metis) Grégory Mounié Systèmes parallèles et distribués / 58

30 Problèmes du calcul parallèle Maître-esclave (Master-Worker) Découpage du travail en petit morceau indépendant: les tâches (jobs, tasks) La liste des tâches est conservé par le maître Les esclaves viennent demander du travail au maître lorsqu ils n ont plus de travail Grégory Mounié Systèmes parallèles et distribués / 58

31 Problèmes du calcul parallèle Vol de travail Variante distribuée du maître-esclave Tous les noeuds ont une liste locale de tâches Lorsque sa liste locale est vide, le noeud vole du travail dans la liste d une victime tirée au hasard Variations sur les vols Probabilité du choix de la victime vols multiples si temps de vols très différents. Grégory Mounié Systèmes parallèles et distribués / 58

32 Problèmes du calcul parallèle Adaptatif Le travail n est découpé que lorsqu une demande de vol arrive peu de surcoût par rapport au séquentiel: plus efficace pour les problèmes de petites tailles. Grégory Mounié Systèmes parallèles et distribués / 58

33 Problèmes du calcul parallèle Autres problèmes Données Déploiement Tolérance aux pannes Hétérogénéité Grégory Mounié Systèmes parallèles et distribués / 58

34 Intergiciels 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.). Grégory Mounié Systèmes parallèles et distribués / 58

35 Intergiciels 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); Grégory Mounié Systèmes parallèles et distribués / 58

36 Intergiciels Le passage de message (suite) sur le noeud 3 1 int tableaucalcule[3] = {}; 2 int emetteur=0; 3 4 Recevoir(tableauCalcule, 3, INT, emetteur); 5 ContinuerCalcul(tableauCalcule, 3); Grégory Mounié Systèmes parallèles et distribués / 58

37 Intergiciels MPI 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. Implantations couramment utilisées: (ex LAM-mpi) et MPICH Grégory Mounié Systèmes parallèles et distribués / 58

38 Intergiciels Histoire 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èques 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. Grégory Mounié Systèmes parallèles et distribués / 58

39 Intergiciels Mémoire distribuée 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) Grégory Mounié Systèmes parallèles et distribués / 58

40 Intergiciels Hello world en MPI 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 } Grégory Mounié Systèmes parallèles et distribués / 58

41 Intergiciels Compilation 1 mpicc -o hello hello.c 2 mpirun -np 100./hello # et hop! 100 Hello! 3 mpirun -np hostfile listedemachines./hello Grégory Mounié Systèmes parallèles et distribués / 58

42 Intergiciels Nommage des processus 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. Grégory Mounié Systèmes parallèles et distribués / 58

43 Intergiciels Hello world et nommage 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, 12 MPI_Finalize(); 13 } L affichage est dans le désordre. Il dépend de l ordonnancement des processus lancés. Grégory Mounié Systèmes parallèles et distribués / 58

44 Intergiciels Mesure du temps écoulé 1 double MPI_Wtime(); 2 3 double debut = MPI_Wtime(); 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. Grégory Mounié Systèmes parallèles et distribués / 58

45 Intergiciels Communications MPI propose de nombreuses variantes pour les communications point-à-point (un processus emetteur et un processus récepteur). Grégory Mounié Systèmes parallèles et distribués / 58

46 Intergiciels MPI_Send / MPI_Recv 1 float tableau[10]; 2 int recepteur; int TAG=123456; MPI_Send(tableau, 10, MPI_FLOAT, 5 recepteur, TAG, 6 MPI_COMM_WORLD); 1 float tableaur[10]; 2 MPI_Status status; int emetteur; MPI_Recv( tableaur, 10, MPI_FLOAT, 5 emetteur, TAG, 6 MPI_COMM_WORLD, &status); Grégory Mounié Systèmes parallèles et distribués / 58

47 Intergiciels Sémantique 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. Grégory Mounié Systèmes parallèles et distribués / 58

48 Intergiciels Exercice 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. Grégory Mounié Systèmes parallèles et distribués / 58

49 Intergiciels Joker en réception 1 MPI_Recv( tableaur, 10, MPI_FLOAT, 2 MPI_ANY_SOURCE, MPI_ANY_TAG, // jokers 3 MPI_COMM_WORLD, &status); Grégory Mounié Systèmes parallèles et distribués / 58

50 Intergiciels 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, & } 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? Grégory Mounié Systèmes parallèles et distribués / 58

51 Intergiciels Envoi et Réception Asynchrone 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); mais aussi MPI_Test(), MPI_Testall(), MPI_Testany(), MPI_Testsome(), MPI_Waitall(), MPI_Waitany(), MPI_Waitsome() Grégory Mounié Systèmes parallèles et distribués / 58

52 Intergiciels Envoi synchrone L envoi terminera après le début de la réception MPI_Ssend(donnees, nb, MPI_INT, destinataire, TAG, MPI_COMM_WORLD); Grégory Mounié Systèmes parallèles et distribués / 58

53 Intergiciels Envoi tamponné 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. Grégory Mounié Systèmes parallèles et distribués / 58

54 Intergiciels Envoi et réception simultanée Le code d échange précédent mais avec deux tampons différents. 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); } } Grégory Mounié Systèmes parallèles et distribués / 58

55 Intergiciels Envoi prêt (ready) à être reçu Le programmeur indique que la réception est déjà place. MPI_Rsend(donnees, nb, MPI_INT, destinataire, TAG, MPI_COMM_WORLD); Grégory Mounié Systèmes parallèles et distribués / 58

56 Intergiciels Et encore MPI_Waitall(), MPI_Waitany(), MPI_Waitsome() Attente mais sans faire vraiment la réception : MPI_Probe Version incomplète des envois Grégory Mounié Systèmes parallèles et distribués / 58

57 Intergiciels 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. Grégory Mounié Systèmes parallèles et distribués / 58

58 Intergiciels Construction de type dérivé les types de bases 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 ); Grégory Mounié Systèmes parallèles et distribués / 58

Introduction à la Programmation Parallèle: MPI

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étail

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Isabelle Dupays Marie Flé Jérémie Gaidamour Dimitri Lecas MPI Plan I 1 Introduction... 6 1.1 Introduction... 7 1.2 Concepts de l échange de messages...8 1.3 Mémoire distribuée...

Plus en détail

Introduction to Parallel Programming with MPI

Introduction 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étail

INFO-F-404 : Techniques avancées de systèmes d exploitation

INFO-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étail

INSTALLATION ET CONFIGURATION POUR LA PROGRAMMATION

INSTALLATION ET CONFIGURATION POUR LA PROGRAMMATION INSTALLATION ET CONFIGURATION POUR LA PROGRAMMATION PARALLELES SOUS WINDOWS I. PREPARATION DE L ENVIRONNEMENT Tous d abord il va vous falloir télécharger quelques logiciels afin de pouvoir commencer à

Plus en détail

Systèmes distribués Introduction

Systèmes distribués Introduction Systèmes distribués Introduction Nabil Abdennadher nabil.abdennadher@hesge.ch http://lsds.hesge.ch/distributed-systems/ 2015/2016 Semestre d Automne 1 Aujourd hui les réseaux et les SDI sont partout! Réseaux

Plus en détail

Grid Computing. Plan du cours. Plan. Composants d une Grille. Nouredine.Melab@lifl.fr. Besoin d intergiciels robustes

Grid 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étail

Super Calculateur HPC, pour High Performance Computing

Super Calculateur HPC, pour High Performance Computing Super Calculateur HPC, pour High Performance Computing Certaines applications ont besoin de faire un grand nombre de calcul, souvent pour des problèmes de simulation. météorologie, physique (nucléaire

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation 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étail

Introduction à MapReduce/Hadoop et Spark

Introduction à 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étail

Programmation parallèle et distribuée

Programmation 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étail

Initiation au HPC - Généralités

Initiation 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étail

Conception des systèmes répartis

Conception 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étail

Figure 1. Structure répartie

Figure 1. Structure répartie Chapitre I: Applications Réparties et Middleware 1. Définition d une application répartie Une application répartie est constituée d un ensemble de processus (d objets, d agents, d acteurs) s exécutant

Plus en détail

Cours Visual Basic URCA

Cours Visual Basic URCA Cours Visual Basic URCA Sommaire Introduction à la programmation VBA et VB Syntaxe de base, variables Opérateurs de base, boucles Introduction à la programmation Qu est-ce que la programmation? Séquences

Plus en détail

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe

MPI-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étail

CATALOGUE DE FORMATIONS OPTIMISATION DE PERFORMANCE ET ARCHITECTURES PARALLÈLES

CATALOGUE DE FORMATIONS OPTIMISATION DE PERFORMANCE ET ARCHITECTURES PARALLÈLES CATALOGUE DE FORMATIONS OPTIMISATION DE PERFORMANCE ET ARCHITECTURES PARALLÈLES Trois types de formation LES FORMATEURS Les experts techniques AS+ Groupe EOLEN disposent d une réelle expérience pratique

Plus en détail

Systèmes distribués et virtualisation de ressources

Systè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étail

Les architectures parallèles ~~~~~ Les machines parallèles de l'observatoire ~~~ MPI

Les architectures parallèles ~~~~~ Les machines parallèles de l'observatoire ~~~ MPI 1/89 Les architectures parallèles ~~~~~ Les machines parallèles de l'observatoire ~~~ MPI Aurelia.Marchand@obspm.fr 2/89 Plan -1- Introduction...5-2- Les architectures parallèles...11-2.1- Les types d'architectures

Plus en détail

Introduction aux grilles: L'exemple XtremWeb

Introduction aux grilles: L'exemple XtremWeb Introduction aux grilles: L'exemple XtremWeb Nicolas Bouillot bouillot@cnam.fr 1 Plan Introduction Première définition Les organisations virtuelles Contraintes liées aux Middlewares de Grilles Le calcul

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique 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étail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

Grid Computing. Mihaela JUGANARU-MATHIEU mathieu@emse.fr 2014-2015. École Nationale Supérieure des Mines de St Etienne

Grid 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étail

1/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/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étail

Introduction au langage C

Introduction 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étail

D2.2 Définition des mécanismes minimaux d un runtime tolérant aux pannes dans les infrastructures Petascale

D2.2 Définition des mécanismes minimaux d un runtime tolérant aux pannes dans les infrastructures Petascale D2.2 Définition des mécanismes minimaux d un runtime tolérant aux pannes dans les infrastructures Petascale VERSION 1.0 DATE 2010 EDITORIAL MANAGER Sylvain Peyronnet AUTHORS STAFF Ala Rezmerita, Camille

Plus en détail

Institut Supérieur d' Informatique de Modélisation et de leurs Applications. Auteurs : Etienne Duclos Guillaume Mercat

Institut Supérieur d' Informatique de Modélisation et de leurs Applications. Auteurs : Etienne Duclos Guillaume Mercat Institut Supérieur d' Informatique de Modélisation et de leurs Applications Rapport de projet de troisième année d'école d'ingénieur Filière 2 : génie logiciel et système informatique Filière 4 : Calcul

Plus en détail

Les environnements de calcul distribué

Les 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étail

Plan 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. 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étail

Runtime. 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 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étail

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction Plan du cours Autres modèles pour les applications réparties Introduction Riveill@unice.fr http://rangiroa.polytech.unice.fr Notre terrain de jeu : les systèmes répartis Un rappel : le modèle dominant

Plus en détail

Calculs Haute Performance. Une Introduction aux Calculs Haute Performance

Calculs Haute Performance. Une Introduction aux Calculs Haute Performance Calculs Haute Performance Une Introduction aux Calculs Haute Performance Ivan LABAYE Tizi-Ouzou 2015 1 Plan de l'exposé Calculs Haute Performance? Pour quoi Faire? Modèles de calculateurs (HPC) Outils

Plus en détail

KARMA Le système de Revenue Management d'air France KLM avec Hadoop

KARMA Le système de Revenue Management d'air France KLM avec Hadoop KARMA Le système de Revenue Management d'air France KLM avec Hadoop Conférence BIG DATA - Master MBDS Université de Nice Sophia Antipolis 16 Décembre 2014 Martial AYAS maayas@airfrance.fr 2 Agenda 1. Présentation

Plus en détail

Programmation parallèle pour le calcul scientifique

Programmation 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étail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE 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étail

Mémoire. Préparé au. Laboratoire d Analyse et d Architecture des Systèmes du CNRS. En vue de l obtention de

Mémoire. Préparé au. Laboratoire d Analyse et d Architecture des Systèmes du CNRS. En vue de l obtention de Mémoire Préparé au Laboratoire d Analyse et d Architecture des Systèmes du CNRS En vue de l obtention de l Habilitation à Diriger des Recherches de l Institut National polytechnique de Toulouse Spécialité

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Exclusion mutuelle par attente active Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel 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étail

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Architecture Doctorant: Directeurs de thèse: Bechir ZALILA

Plus en détail

Calcul Haute Performance avec OpenTURNS

Calcul Haute Performance avec OpenTURNS Calcul Haute Performance avec OpenTURNS Renaud Barate EDF R&D Workshop du GdR MASCOT-NUM «Quantification d incertitude et calcul intensif» 28 Mars 2013 Sommaire Présentation du logiciel OpenTURNS Problématiques

Plus en détail

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

É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étail

Licence 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

Diagrammes de Package, de déploiement et de composants UML

Diagrammes de Package, de déploiement et de composants UML labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description

Plus en détail

Contributions à l expérimentation sur les systèmes distribués de grande taille

Contributions à l expérimentation sur les systèmes distribués de grande taille Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

Le modèle client-serveur

Le modèle client-serveur Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)

Plus en détail

IBD : Introduction aux systèmes distribués

IBD : Introduction aux systèmes distribués IBD : Introduction aux systèmes distribués Vania Marangozova-Martin Université de Grenoble, LIG Vania.Marangozova-Martin@imag.fr Web Site: http://ibd.forge.imag.fr Objectifs u Introduction aux systèmes

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

1 Mesure de la performance d un système temps réel : la gigue

1 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étail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/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étail

Présentation CaSciModOT Performances et Architectures

Présentation CaSciModOT Performances et Architectures Présentation CaSciModOT Performances et Architectures Code parallèle : Un peu de théorie Architectures variables : C(n,p)? Quel code? Quelle architecture? Structure d un code : partie parallèle / séquentielle

Plus en détail

WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS

WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS Avec l appui de l INRIA www-rocq.inria.fr/syndex 1 PLAN I. Présentation du sujet II. Présentation

Plus en détail

Parallélisme et Répartition

Parallé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étail

Architectures logicielles pour les systèmes embarqués temps réel

Architectures logicielles pour les systèmes embarqués temps réel ETR 07 4 septembre 2007 Architectures logicielles pour les systèmes embarqués temps réel Jean-Philippe Babau, Julien DeAntoni jean-philippe.babau@insa-lyon.fr 1/31 Plan Architectures logicielles pour les

Plus en détail

Architectures n tiers Intergiciels à objets et services web

Architectures n tiers Intergiciels à objets et services web UMIN406 : thèmes abordés Architectures n tiers Intergiciels à objets et services web Clémentine Nebut LIRMM / Université de Montpellier 2 LIRMM Clementine.nebut@lirmm.fr 1 Distribution d objets Java RMI,.net

Plus en détail

M2 TIIR (2013-2014) Bilel Derbel

M2 TIIR (2013-2014) Bilel Derbel M2 TIIR (2013-2014) Bilel Derbel Notre but est de concevoir une application générique sur grid5000 qui permet de déployer des calculs parallèles de façon transparente Plus précisément, nous nous plaçons

Plus en détail

Rapport d activité. Mathieu Souchaud Juin 2007

Rapport d activité. Mathieu Souchaud Juin 2007 Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : 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étail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 1 Introduction : le temps d exécution suffit-il? Lorsqu on désire analyser des algorithmes, on le fait de façon relativement abstraite,

Plus en détail

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

M2-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étail

Tolérance aux pannes

Tolérance aux pannes Tolérance aux pannes Arnaud Labourel Université de Provence 15 mars 2012 Arnaud Labourel (Université de Provence) Tolérance aux pannes 15 mars 2012 1 / 55 Présentation Tolérances aux pannes Pannes Définition

Plus en détail

Parallélisme et bioinformatique

Parallé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étail

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d

Plus en détail

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr Déploiement d une architecture Hadoop pour analyse de flux françois-xavier.andreu@renater.fr 1 plan Introduction Hadoop Présentation Architecture d un cluster HDFS & MapReduce L architecture déployée Les

Plus en détail

Programmation d applications distribuées

Programmation d applications distribuées Programmation d applications distribuées François Charoy Université Henri Poincaré 8 octobre 2007 Première partie I Développement d applications distribuées Objectifs du cours Comprendre ce qu est une

Plus en détail

Cours Programmation Système

Cours 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étail

Calcul scientifique et serveurs de calcul

Calcul scientifique et serveurs de calcul Calcul scientifique et serveurs de calcul Serveurs de calcul : contexte, enjeux et administration Violaine Louvet, 13 septembre 2007 Calcul scientifique et serveurs de calcul Journée proposée par : Le

Plus en détail

Groupe calcul parallèle

Groupe 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étail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET 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étail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : l architecture

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big 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étail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Certificat Big Data - Master MAthématiques

Certificat Big Data - Master MAthématiques 1 / 1 Certificat Big Data - Master MAthématiques Master 2 Auteur : Sylvain Lamprier UPMC Fouille de données et Medias Sociaux 2 / 1 Rich and big data: Millions d utilisateurs Millions de contenus Multimedia

Plus en détail

POP-Java : Parallélisme et distribution orienté objet

POP-Java : Parallélisme et distribution orienté objet POP-Java : Parallélisme et distribution orienté objet Beat Wolf 1, Pierre Kuonen 1, Thomas Dandekar 2 1 icosys, Haute École Spécialisée de Suisse occidentale, Fribourg 2 Biozentrum, Universität Würzburg

Plus en détail

Le prototype de la fonction main()

Le 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

Simulation et visualisation d un fluide 3D. Michael Ash Septembre 2005

Simulation et visualisation d un fluide 3D. Michael Ash Septembre 2005 Simulation et visualisation d un fluide 3D Michael Ash Septembre 2005 1 Remerciements Je remercie mon maître de stage, Sophie Robert, et toute l équipe de Réalité Virtuelle au LIFO. Je remercie aussi Jonathan

Plus en détail

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Processus! 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étail

Introduction à CUDA. gael.guennebaud@inria.fr

Introduction à CUDA. gael.guennebaud@inria.fr 36 Introduction à CUDA gael.guennebaud@inria.fr 38 Comment programmer les GPU? Notion de kernel exemple (n produits scalaires): T ci =ai b ( ai, b : vecteurs 3D, ci for(int i=0;i

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Systèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49

Systèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49 Systèmes répartis Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis p.1/49 Systèmes répartis Définition très large : un système réparti est système informatique

Plus en détail

Réseaux middlewares et serveurs d application

Réseaux middlewares et serveurs d application Réseaux middlewares et serveurs d application Partie 1 - Jules Chevalier jules.chevalier@telecom-st-etienne.fr Université Jean Monnet - Télécom Saint Etienne novembre 2014 2/97 Introduction Introduction

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big 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étail

Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN

Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN PASSAGE DE TÉMOIN coopération par division du travail entre les processus 4) Rendez-vous à 2, symétrique, avec ou non une écriture ou un envoi de message (avec acquittement) Rendez-vous multiple : m processus

Plus en détail

MEAD : temps réel et tolérance aux pannes pour CORBA

MEAD : temps réel et tolérance aux pannes pour CORBA MEAD : un intergiciel temps-réel et tolérant aux pannes pour CORBA Master 2 Informatique Recherche Université de Marne-la-Vallée Vendredi 3 mars 2006 Plan 1 Introduction 2 Solutions existantes 3 Concilier

Plus en détail

Cours de Master Recherche

Cours 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é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 É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étail

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de

Plus en détail

COMPIL - Versionning GIT. 07/03/2008 fcamps@laas.fr http://compli.cesr.fr 1

COMPIL - Versionning GIT. 07/03/2008 fcamps@laas.fr http://compli.cesr.fr 1 COMPIL - Versionning GIT 07/03/2008 fcamps@laas.fr http://compli.cesr.fr 1 COMPIL Versionning GIT GIT outil de gestion de version Historique 2001 Linux est développé avec CVS 2002 à 2005 Linux est développé

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

30.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

30.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étail

Recherche d information textuelle

Recherche d information textuelle Recherche d information textuelle Pré-traitements & indexation B. Piwowarski CNRS / LIP6 Université Paris 6 benjamin@bpiwowar.net http://www.bpiwowar.net Master IP - 2014-15 Cours et travaux pratiques

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à 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étail

Formalisation et automatisation de YAO, générateur de code pour l assimilation variationnelle de données

Formalisation et automatisation de YAO, générateur de code pour l assimilation variationnelle de données Formalisation et automatisation de YAO, générateur de code pour l assimilation variationnelle de données Luigi NARDI sous la direction de Fouad BADRAN et Sylvie THIRIA LOCEAN : Laboratoire d Océanographie

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales Cécile Cavet cecile.cavet at apc.univ-paris7.fr Centre François Arago (FACe), Laboratoire

Plus en détail

MapReduce. Nicolas Dugué nicolas.dugue@univ-orleans.fr. M2 MIAGE Systèmes d information répartis

MapReduce. Nicolas Dugué nicolas.dugue@univ-orleans.fr. M2 MIAGE Systèmes d information répartis MapReduce Nicolas Dugué nicolas.dugue@univ-orleans.fr M2 MIAGE Systèmes d information répartis Plan 1 Introduction Big Data 2 MapReduce et ses implémentations 3 MapReduce pour fouiller des tweets 4 MapReduce

Plus en détail