Programmation Parallèle sur CPU et GPU (GPU=Graphics Processing Unit)
|
|
- Lucille Julien
- il y a 7 ans
- Total affichages :
Transcription
1 Programmation Parallèle sur CPU et GPU (GPU=Graphics Processing Unit)
2 Plan du cours 2 Motivations pour le parallélisme et les GPUs single core multi-core many-core CPU Architecture Modèle de programmation en mémoire partagé OpenMP GPU (Graphics Processing Unit) Architecture Modèle de programmation many-core CUDA
3 Objectifs 3 Acquérir les bases pour éviter les erreurs de bases dans vos propres codes poursuivre en auto-formation au besoin échanger avec des spécialistes savoir comparer deux solutions matérielles savoir adapter le matériel aux besoins
4 Motivations applicatives 4 Toujours plus de performance... plus rapide : de x10 à x100 ou plus!! résoudre des problèmes plus gros plus de précisions rendre possible de nouvelles applications, nouveaux algorithmes réduire la consommation etc.
5 Motivations applicatives 5 Exemples : Simu électromag, en un point : intégration 4D Code initial en (mauvais) MatLab : 20min Code optimisé / CPU : 0.5s!! Simu sur GPU via MatLab : a life changer! utilisation de CUDA en 3A-voie B (simu) 3A-voie A (instrumentation) : Embarqué traitement/reconstruction efficace des données... Free-form optics
6 Code optimisé et consommation énergétique 6 Exemple sur un smartphone : cons o nombre d'opérations (+,*,etc.)
7 Comment augmenter les performances? 7 Améliorer les algorithmes (voir autres cours) Augmenter la puissance de calcul? Comment? Comment exploiter cette puissance?
8 Loi de Moore... 8 Le nombre de transistors qui peut être intégré facilement dans un microprocesseur double tout les deux ans
9 Motivations pour le multi-cores 9 Finesse de gravure 32nm en 2010, 22nm en 2012, 14nm en 2014, demain : 10nm plus de transistors par circuit Leviers pour augmenter les performances avec un seul processeur : augmenter la fréquence? difficile, consommation++, chaleur++ augmenter la complexité des processeurs opérations spécialisées, logique (ex. prédiction de branchement), cache, etc. x2 logic x1.4 performance (Pollack's rule)!! vidéo!!
10 Motivations pour le multi-cores 10 Leviers pour augmenter les performances (cont.) multiplier le nombre d'unités de calcul : parallélisme au niveau des instructions out-of-order execution, pipelining difficile (beaucoup de logique) et limité parallélisme au niveau des données (SIMD) une seule instruction appliquée sur plusieurs registres unités vectorielles : SSE, AVX, NEON, Cell SPE, (GPU) efficace pour certaines applications, mais relativement difficile à exploiter et reste limité un seul coeur parallélisme au niveau des threads mettre plusieurs processeurs cote-à-cote sur un même chip multi-core, many-core (>100) multi-processor : plusieurs chip sur une même carte mère
11 Motivations pour le multi-cores 11 Plusieurs processeurs par circuits, plusieurs circuits par carte réels gains théoriques: 2 «petits» processeurs x1.8 perf 1 processeur 2 fois plus gros x1.4 perf consommation et dissipation de chaleur réduite N processeurs légèrement plus lents consomment autant qu'un seul rapide activation individuelle des processeurs accès mémoires plusieurs CPU peuvent accéder en même temps à la mémoire permet d'augmenter la bande passante même sans en réduire la latence simplicité plus simple de concevoir et fabriquer pleins de «petits» CPU simples, qu'un seul gros et complexe améliore également la robustesse et absence de pannes/bugs
12 Motivations pour le multi-cores 12 multi-core everywhere CPU GPU super-calculateur systèmes embarqués smart-phones serveur carte graphique (GPU : coeurs) co-processeur dédié (GPU ou centaine de CPUs) embarqué (ex. Jetson) (4 cœurs CPU cœurs GPU) [ supercalculateur en 2000]
13 mais Programmer est difficile... Programmer parallèle est encore plus difficile! trouver des tâches pouvant être exécuter en même temps coordination entre les tâches, éviter les surcoûts...
14 Architecture des CPUs
15 CPU Hiérarchie mémoire 15 RAM (NUMA) x1000 bigger ; ~400 cycles Cache - L2 x100 bigger (900x900 floats) ; cycles Cache - L1 x100 bigger (90x90 floats) ; 1-4 cycles regs small (8x8 floats) ; 1 cycle ALU
16 CPU - Parallélisme 16 3 niveaux de parallélisme : 1 parallélisme au niveau des instructions 2 SIMD Single Instruction Multiple Data 3 multi/many-cores multi-threading mécanismes complémentaires
17 CPU Parallélisme 1/3 17 parallélisme au niveau des instructions pipelining une opération = une unité de calcul (ex : addition) opération décomposée en plusieurs sous-taches une sous-unité par sous-tache 1 cycle par sous-tache plusieurs opérations peuvent s'enchainer sur une même unité requière des instructions non dépendantes! a = a * b; c = c * d; e = e * f; g = g * h; 1op = 4 mini ops = 4 cycles [démo] 4 ops in 7 cycles! time
18 CPU Parallélisme 1/3 In-order / Out-of-order 18 In-order processors instruction fetch attendre que les opérandes soient prêtes dépendances avec les opérations précédentes ou temps d'accès mémoire/caches exécuter l'instruction par l'unité respective Out-of-orders processors instruction fetch mettre l'instruction dans une file d'attente dès que les opérandes d'une des instructions de la file d'attente sont prêtes, exécuter l'instruction par l'unité respective couplée à la prédiction de branchement... réduit les temps où le processeur est en attente simplifie le travail du développeur/compilateur :) requière des instructions non dépendantes
19 CPU Parallélisme 2/3 19 SIMD Single Instruction Multiple Data Principe : exécuter la même opération sur plusieurs données en même temps Jeux d'instructions vectoriels, ex : SSE (x86) : registres 128 bits (4 float, 2 double, 4 int) AVX (x86) : registres 256 bits (8 float, 4 double, 8 int) NEON (ARM) : registres 128 bits (4 float, 4 int) * reg0 reg1 reg2
20 CPU Parallélisme 2/3 SIMD 20 Mise en oeuvre pratique, 3 possibilités : vectorisation explicite via des fonctions «intrinsics» (pour les experts) utiliser des bibliothèques tierces et optimisées believe in your compiler! Nombreuses limitations : réaliser des opérations intra-registres est difficile et très couteux les données doivent être stockées séquentiellement en mémoire (voir slide suivant)
21 CPU Parallélisme 2/3 SIMD 21 mémoire fastslower (aligned) (not aligned) don't be silly!
22 CPU Parallélisme 2/3 SIMD 22 Exemple de stockage pour des points 3D: Array of Structure (AoS) struct Vec3 { float x, y, z; } ; Vec3 points[100] ; not SIMD friendly Structure of Arrays (SoA) struct Points { float x[100]; float y[100]; float z[100]; }; Points points; [démo]
23 CPU Parallélisme 3/3 23 multi/many-cores Principe : chaque cœur exécute son propre flot d'instruction (=thread) thread = «processus léger» un thread par cœur à la fois assignation et ordonnancement par l'os les threads communiquent via la mémoire partagée mise en œuvre, ex : bibliothèques tierces via le compilateur et OpenMP (instrumentation du code) hyper-threading assigner deux threads sur un même cœur exécution alternée au niveau des instructions permet un meilleur taux d'utilisation des unitées parfois contre-productifs! PC shared memory CPU1 CPU2... CPUn
24 Peak performance 24 Example : Intel i7 Quad 2.6GHz (x86_64,avx,fma) pipelining/ooo 2 * (mul + add) / cycle (cas idéal) AVX x 8 ops simple précision à la fois multi-threading x 4 fréquence x 2.6G peak performance: GFlops
25 26 Programmation multi-thread avec mémoire partagé - OpenMP
26 Programmation multi-threads 27 Très nombreuses approches, différents paradigmes exemples de modèles : Google's «map-reduce» divide and conquer Nvidia's data parallelism big homogeneous array Erlang's fonctional programming side-effect free OpenMP intégré au compilateur instrumentation manuelle du code en C/C++ via : #pragma omp... + ensembles de fonctions... fournit différents outils et paradigmes flexibilité
27 OpenMP premier exemple 28 Exécuter un même bloc par plusieurs threads : #pragma omp parallel { // on récupère le numéro du thread // (entre 0 et nombre_total_de_thread-1) int i = omp_get_thread_num(); } cout << "Thread #" << i << " says hello!\n"; et premières difficultés! ici tous les threads accèdent de manière concurrentielle à la même ressource (la sortie standard) solution : autoriser un seul thread à la fois section critique via #pragma omp critical [démo]
28 OpenMP 2ème exemple 29 Paralléliser une boucle #pragma omp parallel for for(int i=0 ; i<m ; ++i) {... } les m itérations de la boucles sont réparties entre les N threads une itération est exécutée une seule fois et par un seul thread un thread traite une seule itération à la fois nombreuses stratégie d'affectation ex. : statique ou dynamique Exercice : comment calculer le produit scalaire en un vecteur B et tous les éléments d'un tableau ex, conversion d'une image RGB en Luminance, projection de m points sur un plan, etc. quelles taches peuvent être effectuées en parallèle? [démo]
29 OpenMP 3ème exemple 30 Exercice : comment calculer la somme des éléments d'un tableau en parallèle? quelles taches peuvent être effectuées en parallèle? Race condition race condition (résultat différent en fonction de l'ordre d'exécution) correct behavior (critical section ou atomic)
30 Atomic operations 31 Principe opération ou ensemble d'opérations s'exécutant sans pouvant être interrompues pour le reste du système : comme si son exécution était instantanée nécessitent des mécanismes de synchronisation misent en œuvre au niveau du matériel Exemples Read-Write Fetch-and-add x = x + a ; Test-and-set int test_and_set (int *val){ int old = *val; *val = 1; return old; } Compare-and-swap
31 Comment paralléliser son code et ses algorithmes? Dépend de nombreux facteurs Nature du problème Dimensions du problème Matériel visé Pas de solution universelle Pas de solution automatique (compilateur) Acquérir de l'expérience étudier des cas «simples» retrouver des motifs connus au sein d'applications complexes
32 Défis Trouver et exploiter la concurrence 1 - identifier les taches indépendantes approche hiérarchique 2 - regrouper les taches trouver la bonne granularité regarder le problème sous un autre angle Computational thinking (J. Wing) nombreuses façons de découper un même problème en taches Identifier et gérer les dépendances Dépend du découpage! Coordination entre les tâches (avoid races and deadlocks) éviter les attentes
33 Défis Autres facteurs de performance : Contrôler les surcouts limiter les échanges de données limiter les calculs supplémentaires Équilibrer la charge de chaque unité Saturation des ressources (bande-passante mémoire) Avant toute optimisation : avoir un code qui fonctionne! identifier les taches couteuses! (on peut avoir des surprises) penser à la complexité algorithmique!
34 Qques motifs de parallélisation Map & Reduce «Map» appliquer la même fonction à chacun des éléments d'un tableau parallélisme évident : chaque élément peut être traité par un thread différent surjection de l'ensemble des M éléments l'ensemble des N threads scheduling static 1 thread un bloc de M/N éléments ou 1 thread les éléments d'indices i*n scheduling dynamic dès qu'un thread est libre, l'associer au premier élément non traité «Reduce» ou «Reduction» réduire un tableau (ou sous-tableau) à une seule valeur Exemples : somme, produit, min, max, etc. (moyenne, calcul intégral,etc.) Si faible nombre de threads N : découper le problème en N sous problèmes puis réduire les N valeurs en 1 de manière séquentielle. généralisation à une approche hiérarchique
35 Exemple : sampling et histogramme Approche séquentielle CDF 2D Random Number Generator Main Thread Destination Image for i=1..m { (x,y) = cdf.inverse(random(),random()); img(x,y) += incr; }
36 ... Exemple : sampling et histogramme Multi-threading naif CDF 2D Read-only Random Number Generator #1 #2 Destination Image Read-only mais variable d'état interne RW critical section (bad) #T Read-write critical section (bad) #pragma omp parallel for for i=1..m { (x,y) = cdf.inverse(random(),random()); img(x,y) += incr; }
37 Exemple : sampling et histogramme Multi-threading V1 CDF 2D RNG[1] RNG[2] #1 #2 Destination Image RNG[T] 1 RNG/thread #T Read-write ou atomic (~OK) #pragma omp parallel for for i=1..m { (x,y)=cdf.inverse(rng[tid].val(),rng[tid].val()); #pragma omp atomic img(x,y) += incr; }
38 Exemple : sampling et histogramme Multi-threading V2 Img[1] CDF 2D RNG[1] #1 Img[2] Destination Image RNG[2] #2 RNG[T] #T Seconde passe parallel for 1 RNG/thread Img[T] O ( N 2 T T ) O ( M /T ), M N 2 Cout mémoire : N 2 T
39 Exemple : sampling et histogramme Multi-threading optimisé : CDF Y RNG[1] #1 cpt[1] Découper l'image par thread nombreuses variantes ex : remplir ligne par ligne meilleure cohérence des caches :) nombre d'échantillons par ligne variable scheduling dynamic RNG[2] #2 cpt[2] cpt CDF X Passe 3 : remplir ligne par ligne, 1 thread par ligne RNG[T] #T cpt[t] RNG[1] #1 Passe 1 : générer le nombre de samples par ligne (et par thread) O ( M /T ) Cout mémoire : Passe 2 : sommer les compteurs O (( N T )/T ) N T N 2 RNG[2] RNG[T] #2 #T Destination Image O ( M /T )
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étailArchitecture des calculateurs
Formation en Calcul Scientifique - LEM2I Architecture des calculateurs Violaine Louvet 1 1 Institut Camille jordan - CNRS 12-13/09/2011 Introduction Décoder la relation entre l architecture et les applications
Plus en détailArchitecture des ordinateurs
Décoder la relation entre l architecture et les applications Violaine Louvet, Institut Camille Jordan CNRS & Université Lyon 1 Ecole «Découverte du Calcul» 2013 1 / 61 Simulation numérique... Physique
Plus en détailIntroduction à 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étailSegmentation d'images à l'aide d'agents sociaux : applications GPU
Segmentation d'images à l'aide d'agents sociaux : applications GPU Richard MOUSSA Laboratoire Bordelais de Recherche en Informatique (LaBRI) - UMR 5800 Université de Bordeaux - France Laboratoire de recherche
Plus en détailSystèmes et traitement parallèles
Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications
Plus en détailGénération de code binaire pour application multimedia : une approche au vol
Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation
Plus en détailUne bibliothèque de templates pour CUDA
Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données
Plus en détailLimitations of the Playstation 3 for High Performance Cluster Computing
Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire
Plus en détailINF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1
INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 4 : Multiprocesseurs Sylvain Martel - INF6500 2 Multiprocesseurs Type SISD SIMD MIMD Communication Shared memory Message-passing Groupe
Plus en détailTout savoir sur le matériel informatique
Tout savoir sur le matériel informatique Thème de l exposé : Les Processeurs Date : 05 Novembre 2010 Orateurs : Hugo VIAL-JAIME Jérémy RAMBAUD Sommaire : 1. Introduction... 3 2. Historique... 4 3. Relation
Plus en détailIntroduction au calcul parallèle avec OpenCL
Introduction au calcul parallèle avec OpenCL Julien Dehos Séminaire du 05/01/2012 Sommaire Introduction Le calculateur du CGR/LISIC/LMPA Généralités sur OpenCL Modèles Programmation Optimisation Conclusion
Plus en détailM2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013
Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :
Plus en détailArchitecture des Ordinateurs. Partie II:
Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.
Plus en détail. Plan du cours. . Architecture: Fermi (2010-12), Kepler (12-?)
Plan du cours Vision mate riel: architecture cartes graphiques NVIDIA INF 560 Calcul Paralle le et Distribue Cours 3 Vision logiciel: l abstraction logique de l architecture propose e par le langage CUDA
Plus en détailContrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle
Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle 1 CEA R & D for Nuclear Energy 5 000 people Nuclear systems
Plus en détailExécution des instructions machine
Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]
Plus en détailCalcul scientifique précis et efficace sur le processeur CELL
Université P. et M. Curie Master spécialité informatique Calcul scientifique précis et efficace sur le processeur CELL NGUYEN Hong Diep Rapport de stage recherche de master 2 effectué au laboratoire LIP6
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étailEléments d architecture des machines parallèles et distribuées
M2-RISE - Systèmes distribués et grille Eléments d architecture des machines parallèles et distribuées Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Notions d architecture
Plus en détailChapitre 4 : Les mémoires
1. Introduction: Chapitre 4 : Les mémoires Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une
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étailOn distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)
Mémoire - espace destiné a recevoir, conserver et restituer des informations à traiter - tout composant électronique capable de stocker temporairement des données On distingue deux grandes catégories de
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 et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 Codage des
Plus en détailRapport 2014 et demande pour 2015. Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121
Rapport 2014 et demande pour 2015 Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121 Rappel sur Méso-NH : Modélisation à moyenne échelle de l atmosphère
Plus en détailMesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]
Mesure de performances [Architecture des ordinateurs, Hennessy & Patterson, 1996] Croissance des performances des microprocesseurs Avant le milieu des années 80, le gain dépendait de la technologie. Après,
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étailTests de performance du matériel
3 Tests de performance du matériel Après toute la théorie du dernier chapitre, vous vous demandez certainement quelles sont les performances réelles de votre propre système. En fait, il y a plusieurs raisons
Plus en détailDrupal : Optimisation des performances
Drupal : Optimisation des performances Qui? Guillaume Plessis Expert, Steady bean Mainteneur du projet Dotdeb Co-auteur «Performances PHP» Frédéric Marand Fondateur d OSInet Mainteneur Drupal Audit, conseil
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é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é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étailFonctionnement et performance des processeurs
Fonctionnement et performance des processeurs Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Fonctionnement des processeurs Unités de calcul
Plus en détailLeçon 1 : Les principaux composants d un ordinateur
Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques
Plus en détailPotentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés
Potentiels de la technologie FPGA dans la conception des systèmes Avantages des FPGAs pour la conception de systèmes optimisés Gérard FLORENCE Lotfi Guedria Agenda 1. Le CETIC en quelques mots 2. Générateur
Plus en détailChoix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E5649 2.53 GHz
Choix d'un serveur Vous êtes responsable informatique d'une entreprise. Vous devez faire un choix pour l'achat d'un nouveau serveur. Votre prestataire informatique vous propose les choix ci-dessous Vous
Plus en détailThreads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Plus en détail1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :
GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours
Plus en détailBeSpoon et l homme Connecté
BeSpoon et l homme Connecté Paris 25 et 26 Mars BeSpoon est une société «Fabless» qui a développé en collaboration avec le CEA-Leti un composant IR-UWB (Impulse Radio Ultra Wide Band) dédié à la localisation
Plus en détailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
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étailELP 304 : Électronique Numérique. Cours 1 Introduction
ELP 304 : Électronique Numérique Cours 1 Introduction Catherine Douillard Dépt Électronique Les systèmes numériques : généralités (I) En électronique numérique, le codage des informations utilise deux
Plus en détailHP 600PD TWR i34130 500G 4.0G 39 PC
HP 600PD TWR i34130 500G 4.0G 39 PC Réf : 2880117 EAN :888182161739 Réf. Fabricant :E4Z60ET#ABF Poids brut: 12 Kg Spécifications principales Description du produit Facteur de forme Localisation Processeur
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étailTraduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu
Travaux d études et de recherches Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Étudiant : Luc Michel Encadrants : Frédéric Pétrot Nicolas Fournel 23 mai 2010 TABLE DES MATIÈRES
Plus en détailPerformances de la programmation multi-thread
UFR Sciences et techniques de Franche-Comté Projet semestriel 2ème année de Master Informatique Performances de la programmation multi-thread Auteur(s) : Beuque Eric Moutenet Cyril Tuteur(s) : Philippe
Plus en détailLes technologies du Big Data
Les technologies du Big Data PRÉSENTÉ AU 40 E CONGRÈS DE L ASSOCIATION DES ÉCONOMISTES QUÉBÉCOIS PAR TOM LANDRY, CONSEILLER SENIOR LE 20 MAI 2015 WWW.CRIM.CA TECHNOLOGIES: DES DONNÉES JUSQU'À L UTILISATEUR
Plus en détailLes environnements de calcul distribué
2 e Atelier CRAG, 3 au 8 Décembre 2012 Par Blaise Omer YENKE IUT, Université de Ngaoundéré, Cameroun. 4 décembre 2012 1 / 32 Calcul haute performance (HPC) High-performance computing (HPC) : utilisation
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
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étail<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
Plus en détailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
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étailVers du matériel libre
Février 2011 La liberté du logiciel n est qu une partie du problème. Winmodems Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les
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étailDG-ADAJ: Une plateforme Desktop Grid
DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3
Plus en détailTHÈSE. Pour obtenir le grade de. Spécialité : Informatique. Arrêté ministériel : 7 août 2006. Présentée et soutenue publiquement par.
THÈSE Pour obtenir le grade de DOCTEUR DE L UNIVERSITÉ DE GRENOBLE Spécialité : Informatique Arrêté ministériel : 7 août 2006 Présentée et soutenue publiquement par Fabien GAUD le 02 Décembre 2010 ÉTUDE
Plus en détailSanity Check. bgcolor mgcolor fgcolor
Sanity Check bgcolor mgcolor fgcolor 0 1 2 3 4 5 6 7 8 9 10 Compilation pour cibles hétérogènes: automatisation des analyses, transformations et décisions nécessaires, François Irigoin et Ronan Keryell
Plus en détailUNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES. THÈSE présentée par :
UNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES Laboratoire d Informatique Fondamentale d Orléans THÈSE présentée par : Hélène COULLON
Plus en détailProgrammation d Applications Concurrentes et Distribuées (INF431)
Programmation d Applications Concurrentes et Distribuées (INF431) Julien Cervelle Albert Cohen Eric Goubault Francesco Zappa Nardelli François Pottier Samuel Mimram Benjamin Werner 1er janvier 2015 2 Table
Plus en détailInfrastructures Parallèles de Calcul
Infrastructures Parallèles de Calcul Clusters Grids Clouds Stéphane Genaud 11/02/2011 Stéphane Genaud () 11/02/2011 1 / 8 Clusters - Grids - Clouds Clusters : assemblage de PCs + interconnexion rapide
Plus en détailRetour d expérience RATP. Intégrer le test de performance au cœur du processus de développement agile. Challenges, techniques, résultats.
Retour d expérience RATP Intégrer le test de performance au cœur du processus de développement agile. Challenges, techniques, résultats. Les intervenants Alexis Bourgeois Chef de projet MOE (front web)
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étailHiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique
Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément
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étailProjet d'infrastructure de stockage mutualisée
Projet d'infrastructure de stockage mutualisée (pour la communauté scientifique régionale) - CRRI antoine.mahul@clermont-universite.fr Journée de rencontre du réseau AuDACES - 17 juin 2014 1. Contexte
Plus en détailInformatique Industrielle Année 2004-2005. Architecture des ordinateurs Note de cours T.Dumartin
Informatique Industrielle Année 2004-2005 Architecture des ordinateurs Note de cours T.Dumartin 1 GENERALITES 5 1.1 INTRODUCTION 5 1.2 QU ENTEND-T-ON PAR ARCHITECTURE? 5 1.3 QU EST CE QU UN MICROPROCESSEUR?
Plus en détailLes participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.
Big Data De la stratégie à la mise en oeuvre Description : La formation a pour objet de brosser sans concession le tableau du Big Data. Les participants repartiront de cette formation en ayant une vision
Plus en détailRelever les défis des véhicules autonomes
EMM 2014 12eme rencontre européenne de mécatronique Relever les défis des véhicules autonomes Mathias Perrollaz Ingénieur expert Inria Christian Laugier Directeur de recherche Inria E-Motion Team Annecy,
Plus en détailCompilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plus en détailT. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5
Modélisation de la performance et optimisation d un algorithme hydrodynamique de type Lagrange-Projection sur processeurs multi-cœurs T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet
Plus en détailLa mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
Plus en détailTAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES
TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2
Plus en détailSur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)
1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général
Plus en détailTHEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs
Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et
Plus en détailCAHIER DES CHARGES D IMPLANTATION
CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création
Plus en détailAnalyse de performance, monitoring
Analyse de performance, monitoring Plan Principes de profilage Projet TPTP dans Eclipse Utilisation des profiling tools de TPTP Philippe Collet Master 1 Informatique 2009-2010 http://deptinfo.unice.fr/twiki/bin/view/minfo/gl
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailPACKZ System Requirements. Version: 2015-05-27. Version: 2015-05-27 Copyright 2015, PACKZ Software GmbH. 1
PACKZ System Requirements Version: 2015-05-27 Copyright 2015, PACKZ Software GmbH. All rights reserved.this manual may not be copied, photocopied, reproduced, translated, or converted to any electronic
Plus en détailDiagrammes 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étailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailPrise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec Frederic.Guidec@univ-ubs.fr Action RASC Plan de cet exposé Contexte Motivations
Plus en détailRapport de stage Master 2
Rapport de stage Master 2 Informatique Haute Performance et Simulation, 2 ème année Ecole Centrale Paris Accélération des méthodes statistiques sur GPU Auteur : CHAI Anchen. Responsables: Joel Falcou et
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étailGuide Mémoire NETRAM
Guide Mémoire NETRAM Types de mémoires vives On distingue généralement deux grandes catégories de mémoires vives : Mémoires dynamiques (DRAM, Dynamic Random Access Module), peu coûteuses. Elles sont principalement
Plus en détailInstrumentation de code Java
Instrumentation de code Java Mickaël Delahaye mickael.delahaye@etudiant.univ-rennes1.fr Étude bibliographique Master 2 Recherche Informatique 2007 Résumé Cette étude bibliographique présente un état de
Plus en détailMAC-TC: programmation d un plate forme DSP-FPGA
MAC-TC: programmation d un plate forme DSP-FPGA Tanguy Risset avec l aide de: Nicolas Fournel, Antoine Fraboulet, Claire Goursaud, Arnaud Tisserand - p. 1/17 Plan Partie 1: le système Lyrtech Introduction
Plus en détailPrentice Hall, 2011 (ISBN 0-13-610804-0)
Prentice Hall, 2011 (ISBN 0-13-610804-0) Introduction à l architecture des ordinateurs Georges-André Silber Centre de recherche en informatique École nationale supérieure des mines de Paris octobre 2010
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailLinux embarqué: une alternative à Windows CE?
embarqué: une alternative à Windows CE? : une alternative à Windows CE Présentation Mangrove Systems Distribution embarqué Perspective WinCe / Questions Mangrove systems Créé en 2001 Soutien Soutien Ministère
Plus en détailStructure de base d un ordinateur
Structure de base d un ordinateur 1-Définition de l ordinateur L ordinateur est un appareil électronique programmable qui traite automatiquement les informations. Il est constitué de l unité centrale et
Plus en détailJava - la plateforme
Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)
Plus en détail//////////////////////////////////////////////////////////////////// Administration bases de données
////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données
Plus en détailUne méthode de conception de systèmes sur puce
École thématique ARCHI 05 Une méthode de conception de systèmes sur puce (de l intégration d applications) Frédéric PÉTROT Laboratoire TIMA Institut National Polytechnique de Grenoble Frédéric Pétrot/TIMA/INPG
Plus en détailWindows Server 2008. Chapitre 1: Découvrir Windows Server 2008
Windows Server 2008 Chapitre 1: Découvrir Windows Server 2008 Objectives Identifier les caractéristiques de chaque édition de Windows Server 2008 Identifier les caractéristiques généraux de Windows Server
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
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étailAssembleur. Faculté I&C, André Maurer, Claude Petitpierre
Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire
Plus en détailCH.3 SYSTÈMES D'EXPLOITATION
CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,
Plus en détailFonctionnalités d Acronis :
Sommaire Introduction... 2 Fonctionnalités d Acronis :... 2 Concepts de base d'acronis True Image Home... 3 Version d Acronis... 4 Configuration requise pour Acronis True Image Home 2015... 4 Systèmes
Plus en détail