Programmation Parallèle
|
|
- Daniel Petit
- il y a 7 ans
- Total affichages :
Transcription
1 Programmation Parallèle Les modèles - le paradigme par passage de messages - Intro MPI Mathias Bourgoin, Sébastien Limet et Sophie Robert Université d'orléans - LIFO 1
2 Les modèles du parallélisme Qu'est ce qui est indépendant? Le parallélisme de contrôle * Faire plusieurs choses en même temps Le parallélisme de données * Répéter une action sur des données similaires Le parallélisme de ux * Travailler à la chaine 2
3 Le parallélisme de contrôle ou le parallélisme de tâches (répartition statique des tâches) Le graphe des tâches indépendantes permet de les répartir * de bénécier de la localité des données (min des échanges) * d'exploiter au mieux les ressources la dépendance entre deux tâches due - au séquencement de l'algorithme initial, - aux communications d'une tâche à l'autre. 3
4 The work pool model Cas particulier de parallélisme de tâches Avec une gestion centralisée ou non et une répartition dynamique des tâches * Utilisée lorsque la taille des données est petite par rapport à la complexité des calculs * Le pool de tâches peut être statique ou dynamique Cas particulier : le modèle maître-esclaves 4
5 Le parallélisme de données Chaque processeur fait la même chose sur des données diérentes Le découpage en tâches est issu de la répartition des données pour optimiser les échanges Mémoire partagée : on exploite ce parallélisme lorsque les échanges sont importants entre deux étapes de calculs Mémoire distribuée : on utilise ce paradigme pour mieux exploiter la localité Ce modèle est le plus scalable 5
6 Le parallélisme de ux Le ux de données passe à travers une succession de blocs de calculs Le produit matrice vecteur f1 e1 d1 c1 e2 d2 c2 b2 d3 c3 b3. b1.. a11 a12 a13 a21 a22 a23 a31 a32 a33 6
7 Le parallélisme de ux Le ux de données passe à travers une succession de blocs de calculs Le produit matrice vecteur f1 e1 d1 c1 e2 d2 c2 b2 d3 c3 b3. a11.b1 a11 b1 a21 a12 a22 a13 a23 a31 a32 a33 6
8 Le parallélisme de ux Le ux de données passe à travers une succession de blocs de calculs Le produit matrice vecteur f1 e1 d1 e2 d2 c2 d3 c3 b3 a11.c1 a11.b1+ a11 a12 a13 a12.b2 c1 b2 a21.b1 a21 a22 a23 b1 a31 a32 a33 6
9 Le parallélisme de ux Le ux de données passe à travers une succession de blocs de calculs Le produit matrice vecteur f1 e1 e2 d2 d3 c3 a11.d1 a11.c1 a11 a12 a13 +a12.c2 d1 c2 a21.c1 a21.b1 a21 a22 a23 +a22.b2 c1 a31 a32 a33 6
10 Le parallélisme de ux Le ux de données passe à travers une succession de blocs de calculs Le produit matrice vecteur y x a y a.y+x 6
11 La combinaison des 3 Exemple X, Y, Z tableau de 100 valeurs A tableau de 10 valeurs FOR k FROM 0 to 9 FOR j FROM 0 to 99 IF (Xj*Yj+Yj*Zj == 100) Ak = Ak*(Ak+1) ELSE Ak = 1-Ak 7
12 La combinaison des 3 // de contrôle 100 X 100 X 100 Y X Z Y Z A * * + = +1 * * Y Z A // de flux A // de données 8
13 Systèmes concurrents / Algorithmique parallèle Systèmes concurrents Parallélisme de contrôle Diculté : le placement Algorithmique parallèle * Parallélisme de données * Diculté : pré traitement de l'application pour la spatialiser (processus le plus identique possible exprimé sur une structure régulière) 9
14 Les modèles d'exécution Un peu dépendant de l'architecture SIMD : un seul programme séquentiel mais exécuté sur des données multiples VLIW : plusieurs instructions possibles mais par compilation (lié à l'architecture du processeur et des opérations disponibles) SPMD : un seul programme copié sur chaque processeur qui s'exécute de manière asynchrone MIMD : des programmes diérents sur chaque processeur qui s'exécutent de manière asynchrone Modèle dominant : SPMD 10
15 Les modèles de programmation Architecture à mémoire partagée PRAM = Parallel Random Access Machine (modèle abstrait) OpenMP, HPF Architecture à mémoire distribuée BSP = Bulk Synchronous Parallelism Programmation parallèle par passage de messages * PVM, MPI 11
16 PRAM = Parallel Random Access Machine Une machine parallèle idéale et un modèle de parallélisme p machines RAM (avec petite mémoire locale) synchronisées mémoire partagée : comment se font les accès concurrents? modèle de coût très simplié : le nombre d'opérations eectuées. 12
17 Bulk Synchronous Parallelism (BSP) Naissance du modèle BSP Fin des années 80 par Valiant et McColl Trois modèles architecture exécution modèle de coût Machine BSP p paires processeur-mémoire un réseau pour les communications point-à-point une unité de synchronisation globale 13
18 BSP: modèle d'exécution Programme = séquence de super-étapes. Une super-étape 14
19 BSP: modèle de coût Coût d'une super-étape s où avec { h + i h i T (s) = max 0 i<p w i + h g + L h = max 0 i<p {h+ i, h i } nombre total de mots envoyés par i nombre total de mots reçus par i 15
20 BSP: modèle de coût Paramètres BSP p est le nombre de processeurs L est le temps (ou le nombre d'opérations) requis pour synchroniser tous les processeurs (en secondes ou ops) g est le temps requis pour l'échange d'une 1-relation qui est un motif de communications dans lequel chaque processeur envoie ou reçoit au plus 1 mot de données (en seconde/mot ou op/mot) r la puissance de calcul des processeurs (en op/seconde) Coût d'un programme BSP Somme des coûts de chacune de ses super-étapes 16
21 Modèle de programmation par passage de messages le modèle pour les machines parallèles à mémoire distribuée Il nécessite de la parallélisation explicite L'utilisateur doit coder le parallélisme dans son programme. Pour exprimer le rôle de chaque processeur dans les phases de lecture ou de lecture/écriture de données distribuées. P P P P P P P P P M M M M M M M M M Reseau / Bus 17
22 Modèle de programmation par passage de messages asynchrone ou faiblement synchrone Il est adapté pour des programmes asynchrones * Tous les processeurs eectuent des tâches concurrentes sans s'occuper des autres participants ou faiblement synchrones * Les étapes de lecture/écriture des données synchronisent les processeurs mais sinon les tâches s'eectuent de manière asynchrone. Les programmes respectent l'approche SPMD (Single Program Multiple Data) où le plus grand nombre de processeurs eectue les mêmes tâches sur des données diérentes. Seuls quelques processeurs peuvent eectuer des tâches diérentes. 18
23 Les échanges de messages Les opérations Send/Receive Les opérations de lecture/écriture nécessitent un moyen de partager des données distribuées. La base de ce modèle de programmation s'appuie sur les opérations élémentaires * d'envoi de messages : send(void *sendbuf, int nelems, int dest) * de réception de messages : receive(void *recvbuf, int nelems, int source) 19
24 La sémantique des opérations send/recv La garantie des données P0 P1 a=100 receive(&a,1,0) send(&a,1,1) printf(%d,a); a=0; Le processeur P1 reçoit 0 ou 100? 20
25 Les opérations send/receive bloquant Caractéristiques Négociation entre l'émetteur et le récepteur avant la transmission Reprise des tâches à la n de la transmission (n envoi / n réception) Les inconvénients Un taux d'attente important pour l'émetteur ou le récepteur. Des situations d'interblocage entre processeurs P0 P1 send(&a,1,1) send(&a,1,0) receive(&b,1,1) receive(&b, 1, 0) 21
26 Les opérations send/receive bloquant Déroulement Cas symétrique récepteur en avance - Temps d'attente -> perte de performances + Les processeurs sont équilibrés en charge de travail + Peut constituer une forme de synchronisation 22
27 Les opérations send/receive avec buerisation Caractéristiques L'émetteur et le récepteur disposent d'un buer pour stocker le message Une opération send est décomposée en 1 une buerisation du message à transmettre (les données peuvent être modiées sans altérer la transmission) 2 un envoi du buer de manière asynchrone ou non selon le mode de communication sous jacent Une opération receive ne copie pas directement le message mais utilise également une buerisation et 1 elle vérie si le buer contient le message à lire 2 ou attend jusqu'à réception du message dans ce buer 23
28 Les opérations send/receive avec buerisation Avec support hardware 24
29 Les opérations send/receive avec buerisation Sans support hardware 24
30 La buerisation à un côté? Du côté émetteur 25
31 Buerisation ou pas? Avantages/Inconvénients La buerisation peut régler des temps d'attente et certains interblocages. Elle génère également un coût supplémentaire * compensable par du recouvrement calcul/communication, Si la taille des buers n'est pas susante, des coûts supplémentaires d'attente vont diminuer les performances Et il reste des cas d'interblocage!! P0 P1 receive(&a,1,1) receive(&a, 1, 0) send(&b,1,1) send(&b,1,0) Si le programme est très synchrone les opérations lecture/écriture ont lieu au même moment et on peut se passer du coût de la buerisation 26
32 Les opérations send/receive non bloquant Altération des données L'envoi et la réception non bloquantes impliquent de pouvoir gérer la partie où l'altération de la donnée peut modier le comportement du programme. * check-status 27
33 MPI - Message Passing Interface MPI, qu'est-ce que c'est? MPI est une spécication et un standard Les implémentations de MPI sont fournies sous forme de bibliothèques libres ou commerciales Les deux principales: MPICH2, OpenMPI Langage supportés: C/C++, Fortran (python, java, perl...) MPI permet de gérer l'environnement d'exécution les communications point à point (Send, Recv) les communications collectives (Bcast, Reduce, Scatter,...) les groupes de processus et les communicateurs la topologie d'inter-connexion des processus(grilles, arbres,...) des types de données dérivés etc 28
34 Quelques liens Distributions Documents, Forums et tutoriaux
35 MPI sous language C (1) Fichier mpi.h Il doit être inclus en entête de tous les programmes MPI. Déclaration des prototypes de toutes les routines MPI Déclaration de l'ensemble des constantes MPI Déclaration de toutes les structures de données Routines MPI Les routines MPI (en C) sont sous deux formes 1 MPI_Xxxx(), 2 MPI_Xxxx_xxx(). Il y a six routines MPI de base : 1 MPI_Init, 2 MPI_Finalize, 3 MPI_Comm_size, 4 MPI_Comm_rank, 5 MPI_Send, 6 MPI_Recv. 30
36 MPI sous langage C (2) Inclure le fichier mpi.h La structure d'un programme MPI Initialiser l'environnement MPI Faire des calculs Appeler des routines MPI : - communiquer - se synchroniser Terminer l'environnement MPI 31
37 Initialisation et terminaison de MPI Routine MPI_Init int MPI_Init(int* argc, char*** argv); C'est la première routine MPI exécutée par tous les processus Elle permet de débuter l'exécution parallèle Elle permet de diuser les arguments donnés en ligne de commande Elle renvoie MPI_SUCCESS si l'appel n'a eu aucun problème Routine MPI_Finalize int MPI_Finalize(void); Elle termine proprement l'exécution parallèle et doit être appelée par tous les processus Elle renvoie MPI_SUCCESS si l'appel n'a eu aucun problème 32
38 Domaines de communication MPI_COMM_WORLD MPI dénit la notion de communicateur (MPI_Comm). MPI_Init initialise le communicateur par défaut MPI_COMM_WORLD. Routines MPI_Comm_size et MPI_Comm_rank int MPI_Comm_size(MPI_Comm comm, int* nprocs); Cette routine retourne dans nprocs le nombre total de processus du communicateur comm int MPI_Comm_rank(MPI_Comm comm, int* pid); initialise pid l'identiant relatif au communicateur comm du processus appelant pid est un nombre entier unique dans le communicateur comm Initialement, chaque processus a un identiant unique pid [0, nprocs 1] dans MPI_COMM_WORLD. 33
39 Programme MPI en C exemple 1 #i n c l u d e <mpi. h> 2 #i n c l u d e <s t d i o. h> 3 i n t main ( i n t argc, char a r g v ) 4 { 5 i n t pid, n p r o c s ; 6 7 MPI_Init(& argc, &a r g v ) ; 8 MPI_Comm_rank(MPI_COMM_WORLD, &p i d ) ; 9 MPI_Comm_size (MPI_COMM_WORLD, &n p r o c s ) ; 10 p r i n t f ( " P r o c e s s %d/%d\n", pid, n p r o c s ) ; 11 MPI_Finalize ( ) ; return 0 ; 14 } // end o f f u n c t i o n main 34
40 Installation et compilation d'un programme MPI Installation Ubunbtu - Package $ sudo apt-get install openmpi openmpi-common libopenmpi-dev Compilation habituelle mais avec mpicxx mpicxx -c exemple.c mpicxx -o exemple exemple.o 35
41 Exécution sans hostle Exécution sans hostle mpirun -np 4./exemple Résultat Process 3/4 Process 0/4 Process 2/4 Process 1/4 36
42 Exécution avec hostle Contenu du chier hostle machine_1 machine_2... machine_n Exécution mpirun --hostfile hostfile./exemple1 Résultat Process 3/4 Process 0/4 Process 2/4 Process 1/4 37
43 Les routines de communications : mode bloquant MPI_Send int MPI_Send(void *buf, int count, MPI_Datatype dtype, int dest, int tag, MPI_Comm comm); 1 void *buf : Adresse initiale du buer d'envoi 2 int count : Nombre d'éléments envoyés 3 MPI_Datatype datatype : Type de chaque élément envoyé 4 int dest : Identiant du processus récepteur 5 int tag : Étiquette du message 6 MPI_Comm comm: Communicateur Deux types de communications sont gérées en mode buerisé ou synchrone. Le choix automatique dépend de La taille du message à échanger, L'implémentation de MPI. 38
44 Les 2 premières routines de communications MPI_Recv int MPI_Recv(void *buf, int count, MPI_Datatype dtype, int source, int tag, MPI_Comm comm,mpi_status *status) 1 void *bu: Adresse du tampon de reception 2 int count: Nombre d'éléments dans le tampon de données 3 MPI_Datatype datatype: Type de chaque élément envoyé 4 int src: Identiant du processus émetteur, 5 int tag: Étiquette de message distinguer les messages reçu au niveau récepteur, prendre la valeur MPI_ANY_TAG (le récepteur accepte tous les messages quelque soit l'étiquette). 6 MPI_Comm comm: Communicateur, 7 MPI_Status *status 39
45 Types de données en MPI Types de base Type MPI MPI_CHAR MPI_SHORT MPI_INT MPI_LONG MPI_UNSIGNED_CHAR MPI_UNSIGNED_SHORT MPI_UNSIGNED MPI_UNSIGNED_LONG MPI_FLOAT MPI_DOUBLE MPI_LONG_DOUBLE MPI_BYTE Type C signed char signed short int signed int signed long int unsigned char unsigned short int unsigned int unsigned long int oat double long double octet par octet 40
Introduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailSystèmes parallèles et distribués
Systèmes parallèles et distribués Grégory Mounié 2013-12 Grégory Mounié Systèmes parallèles et distribués 2013-12 1 / 58 Outline 1 Introduction 2 Performances 3 Problèmes du calcul parallèle 4 Intergiciels
Plus en dé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é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étailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailProgrammation 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é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étailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en dé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 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é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é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é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é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é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é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é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é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é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étailI. 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étailCahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailPVM 1 PVM. Parallel Virtual Machine
PVM 1 PVM Parallel Virtual Machine Jalel Chergui Messagerie : Jalel.Chergui@idris.fr Jean-Michel Dupays Messagerie : dupays@idris.fr PVM Plan 2 1 Introduction................. 5 1.1 Concepts de l échange
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étailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
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é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étailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailCours 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é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é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étailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
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étailÉléments d'architecture des ordinateurs
Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances
Plus en dé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étailCours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
Plus en dé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étailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en dé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étailChapitre 5 : Les procédures stockées PL/SQL
I. Introduction Une procédure ou une fonction stockée est un bloc PL/SQL nommé pouvant accepter des paramètres et être appelée. Généralement, on utilise une fonction pour calculer une valeur. Les procédures
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
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étailAlgorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)
Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie
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é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étail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
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étailProjet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
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é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étailProblèmes liés à la concurrence
ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions
Plus en dé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étailTHÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"
UNIVERSITÉ JOSEPH FOURIER DE GRENOBLE N attribué par la bibliothèque THÈSE pour obtenir le grade de DOCTEUR DE L UNIVERSITÉ JOSEPH FOURIER DE GRENOBLE Spécialité : "Informatique : Systèmes et Communications"
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailD2.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étailIFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
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é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étailNIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE
NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE Une application se construit par étapes 1) CAHIER DES CHARGES + ANALYSE FONCTIONNELLE = organisation fonctionnelle (QUE FAIRE) 2) ANALYSE OPERATIONNELLE
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailIFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL
IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL Un bus de services Un bus de services (ESB) permet d assembler des web services existants, le résultat de cet
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
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étailApplication 1- VBA : Test de comportements d'investissements
Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps
Plus en détailLangage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289
Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailLes communications collectives. Caractéristiques. Communications dans un groupe de processus. Dans un communicateur donné.
Les communications collectives Communications dans un groupe de processus. Dans un communicateur donné. Trois sortes : Synchronisation globale MI_Barrier() Transferts de données : diffusion/collecte globale/sélective
Plus en détailQuantification d incertitude et Tendances en HPC
Quantification d incertitude et Tendances en HPC Laurence Viry E cole de Physique des Houches 7 Mai 2014 Laurence Viry Tendances en HPC 7 Mai 2014 1 / 47 Contents 1 Mode lisation, simulation et quantification
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é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étailRAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
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étailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailManuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
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étailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailTélécom Nancy Année 2013-2014
Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON
Plus en détailRapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en dé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é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étailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailCouche application. La couche application est la plus élevée du modèle de référence.
Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailJava 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étailRappels d architecture
Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée
Plus en détail1.6- Génération de nombres aléatoires
1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détail