Veille technologique Des cartes graphiques comme coprocesseurs algébriques

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Veille technologique Des cartes graphiques comme coprocesseurs algébriques"

Transcription

1 Veille technologique Des cartes graphiques comme coprocesseurs algébriques Philippe Estival CERFACS Centre Européen de Recherches et Formations Avancées en Calcul Scientifique Mars 2010

2 2

3 Table des matières i

4 ii

5 1 Introduction Les recherches dans l accélération des calculs de mécaniques des fluides nous ont conduit à considérer le transfert d une partie de ces codes sur des processeurs graphiques. On peut désormais les voir comme des machines vectorielles massivement parallèles. Ce domaine a été très actif depuis 2007 et l évolution technologique a poursuivi un rythme effréné. La veille technologique, l instrumentation et la mise au point d une bibliographie permettent de dresser un paysage complet du domaine pour commencer, et d assurer un projet à quatres niveaux : le suivi des travaux de recherches et des récentes publications, l évolution des processeurs, le transfert du premier à la seconde sur des codes précis Nous présentons, dans la première partie, l architecture des cartes graphiques unifiées. En deuxième partie, les outils de programmation disponibles. Les performances et les précision de la multiplication de matrices sont aux troisième chapitre. En quatrième partie nous résolvons les équations de Laplace, se plaçant dans une optique de scalabilité. De futurs axes de recherches sont évoqués en dernier lieu. 1.1 La simulation numérique «La monté en puissance des ordinateurs a introduit une rétroaction nouvelle de la technique informationnelle sur de vastes domaines des techniques de la matière et de l énergie. La simulation numérique peut être définie comme une démarche qui consiste à construire, dans la mémoire d un ordinateur, une image numérique d un système physique qui peut être par exemple, un volume de fluide. Cette image comporte schématiquement deux éléments : d une part les paramètres physiques, pression, température, vitesse, qui en chaque point définissent l état du fluide à un instant donné ce sont les conditions initiales ; d autre part l ensemble des équations qui régissent l évolution du fluide. Il s agit dans ce cas, d un ensemble d équation différentielles non linéaires, les équations de Navier Stokes. L ordinateur est programmé de façon à faire évoluer l image de l état du fluide en respectant les contraintes imposées par les équations qui régissent cette évolution. Quel sont les usages de cette technique? En premier lieu elle permet de prévoir l évolution d un système physique en l assimilant à l évolution de son image numérique. Rien ne contraint à faire évoluer l image au même rythme que l objet, et une évolution accélérée crée la possibilité de prévoir. C est ce que l on fait dans la prévision météorologique où l objet est l atmosphère terrestre. La mécanique des fluides offre un domaine de prédilection pour l usage de cette méthode : si les équations qui gouvernent le comportement des fluides sont parfaitement connues, elles ne se prêtent pas à accéder directement à la compréhension des mouvements du fluide. Le détour par la simulation numérique est le seul accès viable à cette connaissance [1].» La science moderne est faite d observation, de théories, d expériences... et de simulations numériques. 1

6 1.2 Motivations Dans les années 2000, la tendance affiché par les prédictions de la loi de Moore s est infléchie. Si les projections s était poursuivies au rythme qu elle connurent dans les années 90, nous serions équipés en 2010 de processeurs cadencés à 10 GHz. Or la réduction de la taille des transistors et l augmentation des fréquence d horloge atteint ces limites, dues aux phénomènes de transferts et de dissipations caloriques. Aux échelle nanométriques, des problèmes de nature électronique se présentent, qui poussent à explorer d autre voies. Le processeur Von Neumann n a pas été conçu pour suivre l évolution de l espace disponible. L autre difficulté surgit dans l excès de consommation électrique des puces : un processeur dont le cycle d horloge oscille à un gigahertz réclame environ 25 watts pour fonctionner, tandis qu environ 100 watts sont nécessaires pour faire fonctionner un processeur cadencé à 3 GHz. L étendue du parc informatique mondial nous amène à reconsidérer le bilan énergétique produit par les PC, les serveurs webs, les DNS, les moteurs de recherches et les centres de calculs. Selon Wire Magazine, rapportant une étude d AMD [2], l électricité totale consommée par les moteurs de recherches les plus important en 2006 avoisine 5 gigawatts. Puisque les CPUs ne peuvent être accélérés plus avant, les efforts se sont tournés sur le parallélisme des unités de traitements. C est actuellement le seul moyen dont nous disposons pour mettre à contribution davantage de puissance de calcul [3]. La distribution des calculs sur des ordinateurs massivement parallèle, l étude des machines et des algorithmes parallèle n est plus un exercice académique mais une nécessité. En l état actuel, l algèbre linéaire se manifeste comme un candidat idéal à l accélération de code de calculs à grands nombres d équations. Si le hardware évolue rapidement, mute, parfois devient obsolète, le software, lui, reste et poursuit la logique pour laquelle il a été conçu. Comme on ne peut pas réécrire tout les codes pièces par pièces, on se tourne vers des solutions d accélération intermédiaire : en remplaçant le matériel existant et les librairies logicielles par des contreparties fonctionnant sur des architectures hybrides, mais tout en conservant les codes historiques. A terme, il sera possible de mettre à la disposition des chercheurs et des ingénieurs, l équivalent de supercalculateur dans leur station de travail. Ce phénomène n est pas nouveau, l architecture des supercalculateurs inspire celle des microprocesseurs : les techniques mises en oeuvre dans les microprocesseurs sont en premier lieu des principes macroscopiques. En ce sens, Les théories de la programmation parallèles sont plus vérifiables que jamais. Les techniques de calcul parallèle existantes, dans des outils tels que MPI ou OpenMP, à l échelle des clusters pour le premier et des machines multiprocesseurs pour le second, ont été adaptées, moyennant quelques contraintes, aux GPU. En bref, nous insistons sur un fait : le matériel évolue, mais le logiciel existe pour toujours. L intrication logicielle/matérielle, telle qu elle existe dans les systèmes d exploitation par exemple, est levée dans les couches logicielles relevant de la logique métier, mais revient systématiquement dès lors qu il sera question d optimisation et d arithmétique des ordinateurs, ce qui ne manque par d arriver dans les codes de calculs. 2

7 1.3 Les processeurs graphiques Les unités de traitement graphiques (Graphical Processing Units, GPU) sont à l origine dédiés aux affichages et aux rendus de géométries et d images. Leader dans ce domaine, l industrie du jeu vidéo à guidé leur évolution. A ce titre, depuis 1992, le comité de l Architecture Review Board (ARB), réunit un consortium des principaux fabriquants de matériels. Pour que le développement logiciel puisse reposer sur des standards l ARB s est entendu afin d unifier le modèle de programmation des cartes graphiques, par un versionnage et des test de compatibilités rigoureux de ses standards. Parmis ses résultats, la spécification d OpenGL a apporté des solutions d émulations logicielles, qui, au fil des versions, ont été intégrées aux matériels. Une parité logicielle/matérielle a émergé, l amélioration du matériel permettant la mise au point de nouvelles solutions logicielles, solutions qui a leur tour s intègrent au matériel. Les GPU, présents dans chaque ordinateur, ont évolués au tournant de la décennie en co- Figure 1.1 Le comité de l ARB : émerge une parité logicielle-matérielle processeurs d arithmétiques vectorielles massivement parallèles, ce qui explique aujourd hui leur présence dans les domaines du calcul scientifique, numéro un du parallélisme de masse. 1.4 Enjeux industriels Délivré en 2006 après une longue période de gestation en bêta, CUDA a conquis de nombreux territoires dans le domaine de l ingénierie scientifique. Depuis, Nvidia a considérablement revu la conception et le positionnement de ses GPU et la désignation commune doit les reconnaître comme des appareils versatiles dont l usage dépasse celui des jeux électroniques et du graphisme. Pour Nvidia, le HPC est à la fois une opportunité de vendre plus de puces et une assurance contre le futur incertain des GPUs discrets. Bien que les les cartes graphiques de Nvidia aient longtemps été prisées par les joueurs, le marché a changé. Lorsque AMD acquis ATI en 2006, Nvidia demeura le plus gros vendeur indépendant de GPU. En réalité le géant vert est même le seul vendeur indépendant, les autres compétiteurs ayant échoué ou été racheté au cours des ans. Le statut de dernier survivant est enviable à condition que le marché pour les GPUs discrets demeure 3

8 stable [4]. AMD et Intel projettent l intégration de cores graphiques dans leur processeurs futurs ce qui pourrait considérablement réduire le marché des GPUs discrets. Annoncé pour la fin 2009, le projet Larabee d Intel a été repoussé à une date inconnue. Les différents échanges commerciaux qui ont suivis laissent supposer qu Intel ne sortira pas de cartes graphiques externes. L intérêt de Nvidia pour développer sa recherche est manifeste : une tactique de collecte des success story [5, 6] dans l accélération des codes grâce à sa technologie fait non seulement une bonne publicité, certes, la place aussi dans une situation favorable pour déterminer les projets profitables au titre du commerce par l adaptation au marché, mais aussi et surtout par l amélioration de sa propre R&D. Un exemple : le GPU permet d accélérer les codes de simulations numériques de dissipations thermiques, qui a leur tour ouvre une nouvelle perspectives dans l amélioration des chipsets. Le temps de prototyper et la boucle de rétroaction logicielle/matérielle se referme en quelques semaines pour le constructeur, en plusieurs mois pour ses clients, et l écart entre les deux demeure suffisement important pour que la logique commerciale s intègre dans le paysage de la stratégie américaine consistant à maintenir cet écart technologique avec le reste du monde. Apple est l un des premiers à proposer une gamme d ordinateurs équipés de deux processeurs graphiques, l un pour l affichage, l autre pour l accélération d OSX et de ses applications. Apple supporte vivement la spécification du standard OpenCL. Microsoft, sorti de l ARB en 2003, a fait chambre à part en poursuivant l évolution de DirectX11. Sans grande surprise, les innovations sont rares et inspirées de travaux existants. Windows demeurant la plateforme de prédilection de l industrie du jeu vidéo, les pilotes graphiques vont poursuivre encore longtemps leur interface avec le système d exploitation de Redmond. On peut supposer que les GPU seront neuf fois plus rapides dans trois ans. 4

9 2 Architecture 2.1 CPU - GPU : une comparaison D un point de vue simplifié, les processeurs multicores sont de trois types. MIMD (Multiple Instruction, Multiple Data), SIMD ou SPMD (Single Instruction/Program, Multiple Data). Un CPU multicores dispose sur le même socle de quatre cores, de un ou plusieurs caches internes, de caches externes, d un accès à la RAM par un bus. Les CPU vont par paires dans les Xeon Nehalem pour un total de huit cores. Les CPU sont optimisés pour des accès au mémoires caches à faibles latences, et la logique de contrôle autorise des exécutions spéculative ou dans le désordre. Là où un processeur générique entre dans le modèle de Von Neumann exécutant une opération à la fois plusieurs, pas plus de 4 dans les processeurs superscalaires 1, les processeurs graphiques entrent dans la classe des ordinateurs parallèles : une passe de calcul exécute un programme unique (un kernel ou shader) sur tous les éléments d un flux de données. Processeur Intel Core 2 Quad NVIDIA 8800 GTX Paradigme MIMD SPMD Cores de calculs 4 cores 128 ALUs Fréquence d horloge 2.4 GHz 1.35 GHz Gravure 65nm 90nm Millions de transistors Cache L1 8MB 16 8K Mémoire 4GB 768 MB Figure 2.1 Comparaison des transistors et des mémoires entre CPU et GPU 1. Les accès par cache du Pentium 4 lui permettent de réunir une valeur SSE de 128 bits (un paquet de 4 flottants de 32 bits) en un cycle. 5

10 En examinant de plus près la distribution des transitors d un GPU, on peut voir que beaucoup de transistors sont dédiés aux Unités Arithmétiques et Logiquess (ALU), regroupés en multiprocesseur (Streaming Multiprocessors=SM). Chaque SM possède sa propre unité de contrôle et de cache, de dimensions nettement plus réduites que sur des cores de CPU. Les données à l intérieur du cache d un SM sont exclusives à celui-ci et ne peuvent être partagées avec les autres. Autrement dit, les flux de données sont indépendants. L unité de contrôle est moins sophistiquée. En revanche l intensité de calcul est très haute ; Le flot d exécution parallèle tire parti d une bande passante élevée et les latence mémoires entre la RAM embarquée sur le GPU et les caches peuvent être masquées par du calcul, les ALU pouvant travailler pendant que la mémoire est transférée. Dans la pratique, trouver la taille optimale des flots et l équilibre entre transfert, calcul et restitution nécessiteront souvent le chronométrage des trois opérations. 2.2 La carte de calcul Tesla T10 Le carte de calcul Tesla C1060 ou T10 (photo. Figure 2.2 La carte graphique Tesla C1060. Une version modifiée de la GTX280. Processeur hétérogène (photo La vue Sa puissance crête atteint environ 400 Gflop/s en précision simple et 78 Gflop/s en double. Le paradigme d accès parallèle à sa mémoire primaire est multithread avec fusion (ou coalescence) des accès. La bande passante interne est d approximativement 73,6 Go/s. Le ratio crête flop/octet en précision double est donc proche de 1. Les bandes passantes externes sur un bus PCI express 16 pour accéder à la RAM du système hôte sont respectivement 8 Go/s et 4 Go/s, pour des zones mémoires alignées et non paginées. Elle chute à 2.5 Go/s en lecture et 2.1 Go/s en écriture sur la RAM du système hôte pour des mémoires non-alignées ou paginées. La T10 embarque 4 Go de RAM, organisées en huit banques, ces mémoires sont de catégorie GDDR3, cadencées à 1100MHz. Les accès mémoires sont uniformes, à lecture concurrente, écri- 6

11 Figure 2.3 Le processeur GTX280. ture aléatoire : plusieurs threads peuvent être ordonnancés pour lire une même zone mémoire, mais que le comportement d écritures concurrentes est imprévisible. Selon la charge et les estimations, leur puissance électrique de fonctionnement varie entre 450 (puissance crête) et 235 Watts. 7

12 Le multiprocesseur GT200 est un microprocesseur conçu avec une précision de 65nm. De type multithread SIMD. Cadencé à environ 1.3GHz, il délivre 2.6 Gflop/s et embarque 64Kb ( registres de 32 bits) de mémoire partagée entre ces 11 unités arithmétiques et logiques : les 8 unités scalaires de précisions flottantes simples (SP), l unité scalaire de précision flottante double (DP) et les deux unités de fonctions spéciales (SFU). Chaque unité scalaire exécute jusqu à 128 threads corésidents partageant un fichier de registre de 2048 entrées. Au total, ce GPU peut exécuter threads concurrents. Héritant d une architecture dédiée au traitement vidéo et le scintillement exceptionnel d un pixel isolé étant un phénomène négligeable, les mémoire GDDR2 et 3 des GPUs sont dépourvues de code correcteur d erreur (ECC), Sur la quantité totale de mémoire physique, environ 50 MB ne peuvent pas être adressés,(zone mémoire < 0x3A9FFF0), où sont stockés les registres locaux, la table d allocation des pointeurs et probablement des pilotes. Le précèdent GPU de Nvidia, GeForce 8800 GTX, dispose de 16 MPs, 128 SP, chacun pouvant gérer 96 threads concurrents 1024 registres par MP et supporte au maximum threads concurrents. Conçu à l échelle de 90nm, il possède 681 millions de transistors et embarque 768 MB de ram DDR2. Chaque processeurs de flux dans une GeForce de série 8 peut gérer 96 threads concurrents. Les GT200 sont embarqués sur les cartes GeForce GTX 260, 280, 285, 295, Quadro FX 4800 et 5800 et Tesla C

13 GPU Tesla C1060 Paradigme SPMD Socket unique Cores 30 MP GT200 Transistors 1,4 Milliards Intensité de calcul SP 400 Gflop/s DP 78 Gflop/s # Threads max Accès mémoire primaire multithread CREW + fusion Bande passante interne 73,6 Go/s externe mémoire alignée 8 Go/s mémoire paginée lecture : 2,5 Go/s écriture : 2.1 Go/s W ratio flop/octet 0.99 Mémoire 4 Go Type GDDR3 EEC non Fréquence 1100MHz Puissance électrique 450 W / 235 W SMP GT200 Gravure 65nm Fréquence d horloge 1.3GHz Intensité de calcul 2.6 Gflop/s Mémoire cache 16 Ko SP 8 DP 1 SFU 2 Mémoire constante o. # Threads max 128 fichier de registre 2048 entrées Figure 2.4 Tesla : Tableau des caractéristiques 9

14 2.3 Fermi/GT300 Les spécifications de la prochaine génération de GPU Nvidia dédiés au HPC sont déjà annoncées [7, 8, 9, 10]. Néanmoins, les informations de cette section sont à prendre avec précaution. Le GPU fermi est composé de 3 milliards de transistors gravés à une échelle de précision de 40nm, répartis en 16 SMP de classe GT300. Comparativement aux Tesla, le nombre de SMP diminue car la quantité d ALU sur chaque quadruple. Figure 2.5 Le processeur graphique Fermi La mémoire globale est de catégorie GDDR5. L espace d adressage est en 64-bits pour le système, 40-bits pour l utilisateur. L espace mémoire allouable est donc de l ordre du terabyte, organisé en 6 banques, et cadencés à 3 GHz. La bande passante interne serait de 192 GB/s, sur une interface mémoire de 512-bits. Ces mémoires posséderont des EEC par redondance des transmissions selon le modèle SECDED 2. Ce GPU possède un niveau de cache L2, de 768Ko, situé sur la partie centrale du chipset et un système d adressage et de mise en cache automatique des données de petites tailles depuis l espace mémoire hôte. Les mémoires caches embarqués par les SMP passent à 64 Ko, qui pourront être répartis entre le cache de texture et les mémoires partagées sous une configuration ou Leur fichier de registre est de 32,768 x 32 bit. 2. single (bit) error correction, double error detection 10

15 Figure 2.6 Architecture schématique du GPU Fermi : 16 SMs portant 32 cores. Figure 2.7 Schéma d organisation du SM GT300 Le multiprocesseur GT300 porte 32 unités d instructions entières et flottantes 32 bits, organisés en deux groupes de 16, plus 16 unités de lecture/écriture (LD/ST) et 4 unités de fonctions spéciales. Ils sont cadencés à 1,5GHz. L ordonnanceur global gère 1,536 threads (soit 48 par SMP, correspondants au 2x16 core + les unités LD/ST) La norme de précision flottante serait améliorée ; Ainsi le résultat intermédiaire des FMA 11

16 GPU Paradigme Socket Cores Transistors Bande passante interne Mémoire Type EEC Fréquence Fermi MPMD unique 16 MP GT300 3 Milliards 192 Go/s 6 Go GDDR5 oui 2000MHz SMP Gravure Fréquence d horloge Mémoire cache SP 16 DP 16 GT300 40nm 1.5GHz 64 Ko SFU 4 fichier de registre entrées Figure 2.8 Fermi : tableau des caractéristiques (Fused Multiply Add) aurait une mantisse de 106-bits et 161 bits pendant l addition. Les performances annoncées sont respectivement 256 et 512 FMA en précisions simples et doubles par cycle d horloge, soit 750 Gflops crête en précision double. Le bus PCIe serait aussi, transformant les modes d accès bi-directionnel en canal unique, multipliant ainsi par deux la bande passante externe. La capacité d exécution concurrente de plusieurs kernels classe ce GPU dans la catégorie MPMD. 12

17 3 De la perspective du programmeur Il y a quelques années, des programmeurs pionniers découvrirent que les GPUs pouvaient être employés pour d autres traitement que le graphique [11]. Toutefois leur modèle de programmation improvisé était bancale et le pixel shader programmable n était pas le moteur idéal pour du calcul générique du fait de la liaison avec la partie fixe sur le hardware. Nvidia a évolué ce modèle pour en proposer un meilleur. Le «streaming multiprocessor»remplace celui de «shaders», amalgame qui désignait à la fois le core graphique et le programme correspondant. La programmation des GPUs emprunte deux axes : 1) Par programmation directe en utilisant les modèles de programmation délivrés par les constructeurs ou le standard du libre. 2) Par la traduction des programmes existants au moyen de compilateurs appropriés et d annotations de codes sources par des directives. Le tableau suivant synthétise l ensemble des solutions retenues pour GPU et processeurs multicores. Solution Spécifique Multi-OS Multi-Cores Compilateur Nvidia CUDA/PTX OpenCL AMD Brook+/CAL/CTM Nvidia Cg + OpenGL GLSL / OpenGL2+ Nvidia Cg + DirectX DirectX11 Compute Lib Sh RapidMind OpenMP PGI9 Caps HMPP NV ATI NV Les modèles reposants sur des API graphiques ne sont plus considérées comme des solutions viables pour le HPC, mais leur modèle présente un intérêt certain pour les développements de langages de programmation spécialisés ; DirectX11 Compute vise l accélération des systèmes d exploitation et des stations de travail ; HMPP et PGI9 sont deux compilateurs concurrents ; OpenMP concerne ici le pilotage des configuration multi-gpu. Parmis ces solutions, nous retenons pour la suite PGI9, HMPP, CUDA et OpenMP. 13

18 3.1 Shaders programmables Avant l apparition du modèle d architecture unifiée (programmable par CUDA et OpenCL), le GPGPU a été limité au domaine des API graphiques. Le mode d adressage était limité aux tailles et aux dimensions des textures, les shaders avaient une capacité de sortie limitée, il n y avait pas de set d instruction pour des opérations atomiques entières ou binaires, les échanges d information restaient limités entre les pixels. L opération directe de diffusion (scatter) ne peut pas être réalisées avec un processeur de fragment du fait de la localisation fixe de chaque fragment sur la grille lors de sa création. Une opération de diffusion logique implique alors une opération de collecte (gather) additionnelle sur l intégralité de ensemble. Toutefois, les langages de shaders tels que GLSL et Cg présentent les avantage d être simples, compacts, dans un style proche du C++, ils proposent des fonctions intrinsèques de manipulation de matrices et de vecteurs et la composition fonctionnelle. Une série de registres fixes sont préalablement définis, qui correspondent à des zones mémoires segmentées et aux registres qui les accompagnent : tampons de géométrie, tampons de couleurs et d images, matrices de transformations. Suivant le modèle classique de programmation des GPUs avant unification, et conçus pour le rendu d images, les langages de shaders se composent en règle générale de deux programmes ; un programme de traitement des sommets et un programme de traitement des fragments de pixels. Ceux-ci doivent gérer la liaison avec le pipeline fixe en déclarant quelles sont les variables locales au shader, et quelles sont celles transmisess sur le pipeline. Le programme final compilé, composé des deux, reçoit en entrée les données qui alimentent les tampons : des géométries structurées par sommets indicés, des matrices de transformations, des coordonnées de textures affectées aux sommets, et des couleurs ou des textures associées. Les deux premières servent à composer la géométrie projective perçue sur un écran, tandis que les suivantes travaillent sur la rasterization de l image pixélisée. L ensemble des coordonnées ainsi traité est homogène. Le shader étant séparé du programme hôte et du pipeline fixe, il peut être recompilé entre deux passes de rendu. La limitation historique de ce modèle tient au fait que la composition finale est placée dans un tampon d image en écriture exclusive pour être restitué à l écran uniquement, et dont la relecture est coûteuse. De la même façon, les données placées dans les tampons prédéfinis sont en écriture seule. L évolution des matériels a permis progressivement de dépasser cette limite en réservant des buffers dans la mémoire du GPU sur lesquels il devient possible de lire et d écrire. Les shaders présentent un sujet d étude très intéressants du fait de la présence d assembleur, de la liaison fixe avec le matériel et d un compilateur. Les questions pour mener l étude à leur sujets sont nombreuses : où réside le programme final? Quel est ce compilateur et où se trouvet-il? Peut-on le reproduire? L évolution des GPUs permet-elle d élaborer un nouveau langage dans un style proche de celui des shaders? Pour une programmation GPGPU rendue encore plus accessible aux scientifiques, on peut imaginer un langage de programmation simple, disposant d une interface avec les langages existants, permettant de déclarer les liaisons à l intérieur d un programme classique, liaisons attribuées par la suite à un programme écrit dans un paradigme SPMD. C est ce que font les shaders, mais avec des registres fixes. C est aussi ce que fait CUDA, mais avec une large mesure de complexité supplémentaire. 14

19 Figure 3.1 Schéma synthétique du pipeline de rendu graphique. 3.2 CUDA Nvidia CUDA (Compute Unified Device Architecture) est un framework logiciel adapté aux architectures que nous avons présenté en section Figure 3.2 La plateforme logicielle CUDA : des librairies, un mécanisme d abstraction matérielle et un branchement de compilateurs. CUDA est une abstraction matérielle : NVidia a toujours masqué l architecture de ces GPU derrière des interfaces de programmation et le programmeur n écrit jamais directement dans le métal. L abstraction offre deux avantages : 1) un modèle de programmation de haut niveau 15

20 qui isole des aspects difficile de la programmation des GPUs, et 2) l architecture matérielle peut changer, mais l API demeure en place, ce qui permettra de conserver les codes préalablement écrits. Nous n entrerons pas dans les détails de CUDA et insistons pour renvoyer le lecteur aux travaux de Jimmy Petterson et Ian Wainwright ([12]). Leur thèse constitue la pièce manquante dans la documentation pour parvenir à l écriture de kernels optimisés. Cette lecture est recommandée en priorité avant même les guides de programmation CUDA [13] et [14]. 3.3 OpenCL OpenCL est un framework pour écrire des programmes tournant sur des machines hétérogènes : multiprocesseurs, GPUs, Cell BE, processeur Fusion et autres. CUDA et OpenCL se ressemblent par bien des aspects. Un retour d expérience détaillé se trouve dans [12]. 3.4 CAPS HMPP et PGI9 HMPP (Hybrid Manycore Parallel Programming) de CAPS Entreprise [15] et PGI9 de Portland Group prennent une autre approche axée compilateur. La solution existe avant l avènement des GPUs à l origine pour faciliter la programmation de machines vectorielles telles que des générations de NEC et de systèmes Cray. Un programme séquentiel classique est annoté de directives en respectant un placement et une syntaxe qui indiquent où et quand les transferts mémoires surviennent, et quelles fonctions traduire dans un langage SIMD cible avec les données d entrées-sorties correspondantes. L avantage de cette approche est que le code n est pas modifié mais seulement annoté. Compilé avec un compilateur standard, ces directives sont ignorées au même titre que des commentaires. Compilée avec le compilateur désigné, une portion de code, ou codelet, est généré par le compilateur pour la région à accélérer, produite dans un code source qui peut être ensuite modifiée et dans une librairie partagée appelée à l exécution. Bien entendu certains algorithmes n ont pas de propriétés concurrentes parallèles et ceux-ci ne devraient pas être candidats au chargement sur un accélérateur vectoriel. Le choix de la librairie dynamique permet également de porter le code sur différente architecture. HMPP compile des codelets pour les GPUs d ATI/AMD, Nvidia CUDA et les processeurs avec des SSE activées. PGI9 ne le fait que pour les machines supportant les drivers CUDA, mais offre la possibilité d écrire des Kernels CUDA directement en Fortran, rendant le code plus homogène. Quelques aspects difficiles de la programmation GPU sont pris en charge par ces compilateurs, tels que les padding mémoires et les recouvrements. Dans le contexte de code industriel existant, l emploi de ces directives donne une image plus claire des choix de transferts mémoires à réaliser et permettent d estimer d un premier jet si le programme est effectivement accéléré, tout en restant portable sur les différentes architectures. Les kernels critiques peuvent ensuite être modifiés ou réécrits pour gagner davantage en vitesse. Selon la complexité de l algorithme, le code généré demeure relativement bien inteprétable. Le processus de compilation passe du simple au double, et il peut arriver que parfois de légères modifications du code existant soient nécessaires pour que le compilateur gère correctement l économie des registres et de mouvements dans les caches. 16

21 Au demeurant, les défauts d HMPP sont nombreux et l intérêt personnel de maintenir un code historique par l adjonction de directives nous semble un exercice à l intérêt si limité que nous avons préféront l éviter. Les licences payantes encouragent les programmeurs à s orienter vers des solutions qui garantissent leur indépendance technologique. Un exemple de code annoté se trouve en section 3.5 Autres solutions Les travaux qui suivent ont aboutis à un compilateur qu il est intéressant de noter. L accélération d un solveur de chimie cinétique : une intégration numérique calculatoirement intensive de l évolution d espèces chimiques et de leur réactions par [16]. Et [17], le modèle d advection de traceur qui modélise le transport de constituants atmosphériques sous le forçage des champs des prévisions de vents par le modèle Runge-Kutta du WRF. Le benchmark, employé pour valider le hardware, est un schéma d advection positif-défini de 5ème ordre. L advection est appelée une fois par itération de Runge-Kutta dans le solveur. Chaque dimension est advectée séparément et ajustée par une approximation en différence-finie. Les codes des deux projets sont distribués sous leurs versions parallèles (OpenMP) originales et accélérées [18, 19]. Les travaux de [20], également sponsorisé par NCAR (National Center for Atmospheric Research) sont axés sur le modèle de résolution de la couche nuageuse sur GPU, par sous mailles en volumes finis. Le modèle historique comporte 8K lignes de Fortran, calcule en précision double. Le problème est petit, mais présente une grande intensité de calcul. Le portage de ce code a suivi la démarche adoptée par le groupe cité au-dessus. Tout ces travaux menés conjointement par NOAA et le WRF ont aboutis à un compilateur Fortran à C à Cuda (F2C), puis Fortran à Cuda (F2ACC) [21]. Il a été laissé supposé qu ils soient complétés par l écriture de kernels Cuda en Fortran compilés via PGI9. Le premier compilateur, F2C, exige des modifications du source existant. Le deuxième non, mais il produit parfois des kernels incorrects. Dans tout les cas, le code généré est passé en revue. D autre interfaces semblables à CUDA existent telles que RapidMind [22] et Peakstream [23] (acquis et absorbé par Google en 2008). RapidMind est même allé encore plus loin en adaptant sa plate-forme virtuelle sur Cell, ATI et Nvidia, sans utiliser la plate-forme de ce dernier. Citons enfin GPUocelot, un framework de compilation dynamique pour systèmes hétérogènes, dont un backend CUDA. Licence BSD. 17

22 18

23 4 Précision numérique 4.1 Introduction Avant de calculer vite, il faut calculer juste. Si on ne rencontre pas un critère d exactitude, et c est le cas dans les standards à virgule flottante, alors il nous faut connaître le degré de précision de nos calculs. Le calcul scientifique est très demandeur en précision double de 64 bits, en particulier lorsque sont appliquées des techniques itératives sujettes à la propagation d erreurs d arrondis ou des modèles à hautes échelles d amplitudes. Le calcul généraliste sur GPU est devenu un exercice très attractif en physique, mais dans ces processeurs et jusqu à présent, la vitesse a grignoté sur la précision. Introduire davantage d erreur de calcul en échange de vitesse nous mène à cette question [24] : «Puisque la plupart des calculs en virgule flottante ont de toute façon des erreurs d arrondis, est-ce important si les opérations arithmétique basiques introduisent un tout petit plus d erreur d arrondis que nécessaire?». Si on considère le cas de rendu d images en temps réel, la réponse est non, le matériel spécialisé calculant dans l espace discret. En élargissant le spectre dans le domaine de la simulation, nous essayons de donner un début de réponse pour une classe de matériel et une opération par l étude des performances et des précisions numériques obtenues par la série des GPU Nvidia T10, en précisions simples et doubles, sur la multiplication de matrices par CUBLAS, l implémentation CUDA du BLAS. La régularité et la prédictabilité des accès de données, le requis hautement parallèle et la réutilisation des données en cache, placent cette fonction comme un bon candidat à l évaluation des performances crêtes des GPUs. Les résultats sont comparés à deux implémentation de référence du BLAS, largement distribuées : ATLAS et MKL. Ils montrent que les précisions sont plus basses, d un ordre variant entre un et deux, en comparaison avec un calcul sur CPU en simple (32 bits) et double (extension à 80-bits) précisions flottantes. 19

24 4.2 Produit matriciel parallèle Soit le produit matriciel C = A B de dimensions N N. Le produit calculé parallèlement sans bloc requiert un thread par élément du résultat final. A et B sont chargés N fois depuis la mémoire globale. La réutilisation de donnée de ce calcul est en O(n). Sur la base d un calcul par bloc, un bloc de thread de taille b gère une sub-matrice C sub de C de dimensions b b. A et B ne sont chargés que N/b fois depuis la mémoire globale, ce qui représente l équivalent en terme de bande passante économisée. Les blocs résident dans les caches de mémoires partagés. Le kernel, implémenté dans CUBLAS 2.1, écrit par [25], est une stratégie de mise en cache avec une définition explicite de la dimension des caches optimale pour un GPU GTX280. Les spécifications techniques des Tesla sont fermées par le constructeur, mais les informations données par le driver CUDA indique que le nombre de cores et d unités de caches est équivalent sur une Tesla T10. Ce ne sera toutefois pas le cas sur les architectures futures. La dimension de C sub est bornée par le nombre de threads par bloc. En conservant les blocs carrés, et le nombre maximum de threads par blocs étant 512, la taille des blocs est en conséquence Chaque thread porte un identificateur unique sous la combinaison de l identificateur du bloc et de celui du thread à l intérieur du bloc, identifiant quelle donnée calculer. Avec A, B et C respectivement de dimensions (m, k), (k, n) et (m, n). C sub est égal au produit de deux matrices rectangulaires : la sub-matrice A de dimension (b, m) qui porte les mêmes indices de lignes que C sub et la sub-matrice de B de dimension (n, b) qui a les mêmes indices de colonne que C sub. Ces deux matrices rectangulaires sont divisées en autant de matrices carrées de dimension b nécessaires et C sub est calculée comme la somme des produits de ces matrices carrées. Chacun de ces produits est réalisé en chargeant d abord les deux matrices correspondantes en cache, chaque thread gérant un élément de la matrice, puis chaque thread calcule un élément du produit. Plus précisément, ce ne sont pas deux sub-matrices qui sont chargés, mais des couple matrice et vecteur variant. Les données du vecteur sont conservées dans les registres. Chaque thread accumule ensuite le résultat de ces produits dans un registre puis le résultat est retourné en mémoire globale. Une première proposition d une telle répartition de charge apparaît dans [26]. Figure 4.1 Produit matriciel micro-parallèle par bloc Calculé de cette façon, en utilisant le maximum de registres et de cache peut être vu comme une stratégie plus générale pour diviser le nombre de relectures. L idée est applicable en dehors 20

25 d une unité graphique isolée : en divisant de très grande matrices entre plusieurs Tesla connectées par PCIe16, voire à un cluster hybride. Toutes les unités effectuent leur part du calcul et produisent une matrice m n. C est coûteux en mémoire et cela conduit à collecter autant de sub-matrices qu il y a de charge distribuées. Le calcul peut être asynchrone et recouvert, mais ne passe pas à l échelle. Figure 4.2 A une échelle à gros grain, une distribution du calcul impliquant O(n u) de surplus mémoire où n est la dimension de la matrice et u le nombre d unités. L autre façon de mettre à contributions plusieurs GPU est par la mise en oeuvre d une couche de librairie, ainsi le CUDA Wrapper [27], implémentée en pré-chargement forcé, de telle sorte que les appels à CUDA aux allocations matérielles soient interceptés par elle pour avoir quelques avantages. 1) Virtualiser les GPU physiques par un mappage dynamique. Le matériel visible à l utilisateur est un ensemble consistant de matériel physique et une barrière intrinsèque sur le système partagé prévient les saut accidentels d un appareil à l autre. 2) Une affinité NUMA, peut être établies entre cores CPU and GPU, pour une économie de bande passante. 4.3 Spécification de la norme flottante Selon [13], l arithmétique binaire flottante des T10 est compatible avec la norme [24]IEEE- 754, avec plusieurs déviations. Les modes arrondis ne sont pas dynamiquement configurables et doivent explicitement définis. Pas de mécanisme pour détecter une exception. Les opérations se comportent en masquant les exceptions et retournent la réponse masquée telle que définie dans l IEEE-754 en cas d exception. Pour les mêmes raisons, l encodage des SNaN est supporté, mais il n est pas signalé. La valeur absolue et la négation ne sont pas compatible avec l IEEE-754 au regard des NaNs. Conclusion : pas conforme à l IEEE

26 4.4 CUBLAS Dans sa version 2.1, CUBLAS peut substituer toute autre implémentation du BLAS moyennant quelques modifications mineures et avec cependant plusieurs limitations. Cependant, le comportement par défaut de la librairie est insuffisant : il réalise les allocations, les transferts et les désallocations mémoires sur GPU à chaque appel de fonction d une routine depuis l hôte. En général, pour une utilisation efficace, seuls les transferts ou une partie des transferts doivent être effectifs. De plus, la mémoire sur l hôte doit être alignée et non paginée pour atteindre les performances maximales [14]. Ceci conduit à introduire du code dans un programme existant. Ainsi les transferts de bandes de matrices peuvent survenir plusieurs instructions avant l appel proprement dit au kernel, et les allocations et désallocations mémoires peuvent avoir lieu une seule fois dans un cycle d initialisation et de finalisation, et gardées réservées. Ceci est renforcé si le calcul a un comportement redondant. L autre phénomène remarqué est le temps d initialisation du GPU, qui a un effet particulièrement notable sur les performances. L exécution au préalable d un kernel quelconque y remédie. Si le programme est écrit en Fortran, les appels de requête d allocation à de la mémoire alignée et non-paginées passe par des liaisons en C pour la manipulation de pointeurs. La comparaison des performances entre une liaison directe de CUBLAS et son usage optimal se voit sur les graphes La distribution de CUBLAS en version 2.1 est incomplète, dépourvue de toute fonctions complexe de niveau 3. Elles se trouvent en partie dans la version Beta

27 Listing 4.1 Code de liaison pour les requêtes d allocation de mémoire non paginées sur l hôte module cuda use iso_c_binding interface! cudamallochost integer(c_int) function cudamallochost(buffer, size) bind(c,name="cudamallochost") use iso_c_binding implicit none type (C_PTR) :: buffer integer (C_SIZE_T), value :: size end function cudamallochost end interface! alloue dans la RAM hote m*m elements de p octets dans le tableau A! de memoire alignees sur 64 bits, non paginees pour garantir! la bande passante maximale entre hote<->gpu subroutine allocateforgpu( A, m, p, cptr )! les zones de memoires constante, pile ou tas allant! dans le gpu requierent la reference d un pointeur real, dimension(:,:), pointer :: A integer :: m integer :: r type(c_ptr) :: cptr integer(c_size_t) :: p r = cudamallochost (cptr, m*m*p)! bind the C pointer call c_f_pointer (cptr, A, (/ m, m /)) end subroutine allocateforgpu 4.5 Précision numérique Pour deviner la précision numérique de CUBLAS sur T10, nous calculons la fonction GEMM C = αab + βc, de matrices carrées de dimensions m, avec B et C égaux à un entier λ positif. Les colonnes impaires de A sont égales à λ et les colonnes paires de A égales à une valeur flottante ε comprise entre 0 et 1. Le résultat est une matrice C constante. A = λ ε... λ ε λ ε... λ ε B = λ, C = λ Résultant en C = α(λ 2 + ελ) k 2 + βλ Nous calculons depuis l espace réel vers l espace flottant, avec une approximation δ, donnant le résultat ā. 23

28 R F a ā ā = a(1 + δ) Ψ où δ est l epsilon machine. Sur un CPU Intel Xeon Nehalem ou un Core 2 Duo : epsilon(double précision) = E 16 epsilon(simple précision) = E Résultats Nous prenons λ = 2 et ε = 10 n avec n = 1..N. Nous avons B = C = 2. Comme résultat C = 4m + 2εm + 4. La dimension m de la matrice varie entre 256 et La précision est la mesure de la différence relative entre le résultat exact calculé sur le CPU en précision double et le résultat fourni par le GPU. Les graphes La variabilité et l annulation des précisions est soit due au mode d arrondis, à la dénormalisation des nombres ou un calcul exact. Le dernier cas ne survient qu avec ATLAS pour ε = GEMM avec MKL montre une grande stabilité dans la précision. ATLAS n est exécuté que sur un seul core de CPU et minimse davantage l erreur relative. Toutefois la fluctuation de la précision est en elle-même un facteur d imprédictabilité, donc d imprécisions. 4.6 Performances En 32-bits la fonction SGEMM atteint 370 Gflops de performances crêtes. Ceci survient pour des matrices à partir de carré 12K. A partir de carré 4K, le calcul atteint 300 Gflops. C est un fait connu en GPGPU : l efficacité est atteinte avec des matrices suffisamment grandes. En dessous de carré 2K éléments, la latence mémoire à plus d impact sur le calcul et en dessous d une certaine dimension, des ALUs sont laissées inactives. L augmentation de la taille des matrices à moins d impact sur l exécution du kernel que sur le transfert des données. L utilisation de flots, de copie et d exécution concurrente permet de diviser les matrices A et C en entrée en bande par lignes et de les transférer en asynchrone, tandis que le kernel calcule une autre bande de données. Le facteur de gain au regard de la comparaison des deux librairies survient en précision simple pour des matrices supérieures à , atteignant 2.6 à En double précision, MKL gagne, et les deux solutions convergent vers une puissance maximale de 67 Gflops. 24

29 400 Computationnal Power GFLOPS CUBLAS dll CUBLAS pinned memory MKL ATLAS Matrix dimension Figure 4.3 Puissance de calcul de la fonction GEMM en simple précision Sur des mémoires dépourvues d EEC, le calcul répété de grande matrices constantes peut fournir, moyennant l ajout d un algorithme de scan parallèle, une détection des occurrences de fautes mémoires et donner une estimation du Temps Moyen Entre Défaillance (TMED). Par exemple, si le TMED pour un core isolé est de 6 mois, sur des unités de 240 cores, il ne serait que de 16 heures et 48 minutes (en établissant une distribution indépendante du temps). Au regard des performances, une image plus précise des mécanismes de synchronisation et de transferts mémoires s avère nécessaire pour les kernels critiques, à travers l examen de l assembleur PTX et l usage de désassembleurs, tels que Decuda [28]. Celui-ci peut fournir davantage d information pour l optimisation des mouvements de caches, comprendre les cycles d horloge et de manière générale une meilleure compréhension du hardware. Pour finir, il faut considérer ces architectures multicoeurs sous leur aspect hybride et dans leur ensemble pour obtenir le meilleur entre les deux mondes. Les techniques d autotuning [29] qui ont déjà inspirées les développement d ATLAS en sont le meilleur exemple. Sur de vrais problèmes, il est crucial d obtenir la contribution de toutes les unités de calculs, fonctionnants de concerts lorsque c est possible, ou d utiliser les plus adaptées aux problèmes à résoudre. 25

30 70 Computationnal Power 60 GFLOPS CUBLAS dll CUBLAS pinned memory MKL ATLAS Matrix dimension Figure 4.4 Puissance de calcul de la fonction GEMM en double précision 3 Speedup Cublas / MKL speedup single precision double precision Matrix dimension Figure 4.5 CUBLAS vs MKL : facteur d accélération fonction de la dimension de la matrice. Figure 4.6 CUBLAS GEMM Performance 26

31 SGEMM - accuracy : relative difference ɛ = SGEMM - accuracy : relative difference ɛ = e-05 1e-05 Relative difference 1e-06 1e-07 1e-08 CUBLAS MKL ATLAS/xeon ATLAS/core Relative difference 1e-06 1e-07 1e-08 CUBLAS MKL ATLAS/xeon ATLAS/core Matrix dimension Matrix dimension SGEMM - accuracy : relative difference ɛ = SGEMM - accuracy : relative difference ɛ = e-05 1e-05 Relative difference 1e-06 1e-07 1e-08 CUBLAS MKL ATLAS/xeon ATLAS/core Relative difference 1e-06 1e-07 1e-08 CUBLAS MKL ATLAS/xeon ATLAS/core Matrix dimension Matrix dimension 1e-05 SGEMM - accuracy : relative difference ɛ = e-06 SGEMM - accuracy : relative difference ɛ = 10 6 Relative difference 1e-06 1e-07 1e Matrix dimension CUBLAS MKL ATLAS/xeon ATLAS/core2 Relative difference 1e-07 1e Matrix dimension CUBLAS MKL ATLAS/xeon ATLAS/core2 Figure 4.7 Précisions de SGEMM : différences relatives, epsilon variant entre 10 1 to 10 6 : CUBLAS 2.1 sur Nvidia GT200, ATLAS et MKL 10.0 sur CPU Xeon Nehalem 8 cores 2.93GHz 27

32 1e-12 DGEMM - accuracy : relative difference ɛ = e-13 DGEMM - accuracy : relative difference ɛ = 10 2 Relative difference 1e-13 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS 1e e Matrix dimension Matrix dimension 1e-13 DGEMM - accuracy : relative difference ɛ = e-13 DGEMM - accuracy : relative difference ɛ = 10 4 Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS 1e e Matrix dimension Matrix dimension 1e-13 DGEMM - accuracy : relative difference ɛ = e-12 DGEMM - accuracy : relative difference ɛ = 10 6 Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-13 1e-14 1e-15 CUBLAS MKL ATLAS 1e Matrix dimension 1e Matrix dimension Figure 4.8 Précisions de DGEMM : différences relatives, epsilon variant entre 10 1 to 10 6 : CUBLAS 2.1 sur Nvidia GT200, ATLAS et MKL 10.0 sur CPU Xeon Nehalem 8 cores 2.93GHz 28

33 1e-13 DGEMM - accuracy : relative difference ɛ = e-13 DGEMM - accuracy : relative difference ɛ = 10 8 Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS 1e e Matrix dimension Matrix dimension 1e-12 DGEMM - accuracy : relative difference ɛ = e-13 DGEMM - accuracy : relative difference ɛ = Relative difference 1e-13 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS 1e e Matrix dimension Matrix dimension 1e-12 DGEMM - accuracy : relative difference ɛ = e-13 DGEMM - accuracy : relative difference ɛ = Relative difference 1e-13 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS 1e e Matrix dimension Matrix dimension 1e-13 DGEMM - accuracy : relative difference ɛ = e-14 DGEMM - accuracy : relative difference ɛ = Relative difference 1e-14 1e-15 CUBLAS MKL ATLAS Relative difference 1e-15 CUBLAS MKL ATLAS 1e Matrix dimension 1e Matrix dimension Figure 4.9 Précisions de DGEMM : différences relatives, epsilon variant entre 10 7 to : CUBLAS 2.1 sur Nvidia GT200, ATLAS et MKL 10.0 sur CPU Xeon Nehalem 8 cores 2.93GHz 29

34 30

35 5 Cas test Figure 5.1 Inscription de la méthode dans la CFD Le calcul selon une méthode aux différence finies, de stencil ou d interpolations linéaires sur des matrices de l ordre du teraoctet ne tient pas à l intérieur de la mémoire d un ordinateur isolé. Ce traitement, parfaitement parallèle, avec une forte localité des données, nous oblige à utiliser un cluster où les noeuds portent plusieurs coprocesseurs algébriques. Le seul moyen de dépasser les hautes latences de bandes passante entre les unités est de recouvrir les calcul par le transferts asynchrones de fragments de données. Selon un modèle similaire à celui qui se trouve dans une architecture CUDA, avec des blocs de threads calculant pendant que d autres stockent les données, nous montrons que les délais de synchronisation peuvent être réduits en calculant d abord les cellules aux interfaces. Nous allons détailler ceci étape par étape. 31

Programmation multigpu OpenMP versus MPI

Programmation multigpu OpenMP versus MPI 17 février 2011 Gabriel Noaje Programmation multigpu OpenMP versus OpenMP 1 Programmation multigpu OpenMP versus MPI Gabriel Noaje, Michaël Krajecki, Christophe Jaillet gabriel.noaje@univ-reims.fr Équipe

Plus en détail

Introduction à la programmation GPU. P. Fortin UPMC / LIP6 ANR TaMaDi 27/10/2010

Introduction à la programmation GPU. P. Fortin UPMC / LIP6 ANR TaMaDi 27/10/2010 Introduction à la programmation GPU P. Fortin UPMC / LIP6 ANR TaMaDi 27/10/2010 Les processeurs graphiques (GPU) GPU : Graphics Processing Unit GPGPU : General Purpose computation on Graphics Processing

Plus en détail

NVIDIA CUDA. Compute Unified Device Architecture. Sylvain Jubertie. Laboratoire d Informatique Fondamentale d Orléans 2011-2012

NVIDIA CUDA. Compute Unified Device Architecture. Sylvain Jubertie. Laboratoire d Informatique Fondamentale d Orléans 2011-2012 NVIDIA CUDA Compute Unified Device Architecture Sylvain Jubertie Laboratoire d Informatique Fondamentale d Orléans 2011-2012 Sylvain Jubertie (LIFO) NVIDIA CUDA 2011-2012 1 / 58 1 Introduction 2 Architecture

Plus en détail

MICROPROCESSEUR. Nous prendrons comme exemple les processeurs Intel (qui sont le plus souvent utilisés dans les machines actuelles).

MICROPROCESSEUR. Nous prendrons comme exemple les processeurs Intel (qui sont le plus souvent utilisés dans les machines actuelles). MICROPROCESSEUR Le cerveau d un ordinateur est le microprocesseur, parfois appelé CPU ou tout simplement processeur. Le processeur effectue les calculs nécessaires au fonctionnement de l ordinateur et

Plus en détail

Cours 1 Microprocesseurs

Cours 1 Microprocesseurs Cours 1 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73 Jalil Boukhobza 1 But de ce cours Comprendre le fonctionnement de base d un microprocesseur séquentiel simple (non

Plus en détail

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,...

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,... Rappels, SISD, SIMD Calculateurs hybrides (GPU-OpenCL) Rappels... SISD,... SIMD Formation d Ingénieurs de l Institut Galiléee MACS 3 Philippe d Anfray Philippe.d-Anfray@cea.fr CEA DSM 2013-2014 SISD :

Plus en détail

Architecture des GPU (GPU=Graphics Processing Unit) gael.guennebaud@inria.fr

Architecture des GPU (GPU=Graphics Processing Unit) gael.guennebaud@inria.fr Architecture des GPU (GPU=Graphics Processing Unit) gael.guennebaud@inria.fr Plan du cours 2 Motivations pour les GPUs single core multi-core many-core Architecture des GPUs CPU versus GPU Programmation

Plus en détail

Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT,

Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

Parallélisation. Parallélisation. 1 Applications. 2 Historique. 3 Parallélisme au niveau du circuit. 4 Coprocesseur.

Parallélisation. Parallélisation. 1 Applications. 2 Historique. 3 Parallélisme au niveau du circuit. 4 Coprocesseur. Parallélisation 1 Applications 2 Historique 3 Parallélisme au niveau du circuit 4 Coprocesseur 5 Multiprocesseur 6 Multi-ordinateur 7 grille (Université Bordeaux 1) Architecture de l Ordinateur 2007-2008

Plus en détail

Examen 2. Q1 (3 points) : Quel mot ou concept relié aux ordinateurs correspond à la définition suivante :

Examen 2. Q1 (3 points) : Quel mot ou concept relié aux ordinateurs correspond à la définition suivante : GI-1001, 24 avril 2012 Nom/Matricule : Examen 2 Cet examen vaut 40% de la note totale du cours. Les questions seront corrigées sur un total de 40 points. La valeur de chaque question est indiquée avec

Plus en détail

Calculs parallèles et Distribués. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com

Calculs parallèles et Distribués. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com Calculs parallèles et Distribués Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com Calculs parallèles et Distribués Introduction Parallélisation sur mémoire distribuée.

Plus en détail

Electronique des composants et systèmes

Electronique des composants et systèmes Université Constantine II Electronique des composants et systèmes Cours de L1 -TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE Université Constantine 2 Le../01/2013 Les Microprocesseurs-partie2 8. Amélioration

Plus en détail

M1 MIAGE Option IFD Data Mining et Parallélisme

M1 MIAGE Option IFD Data Mining et Parallélisme M1 MIAGE Option IFD Data Mining et Parallélisme Alexandre Termier 2011-2012 S2 1 / 24 Besoin ˆ Data Mining doit... traiter de gros volumes de données pouvoir eectuer des analyses complexes (gros calculs)

Plus en détail

Résumé du chapitre 8 Ressources et interblocage

Résumé du chapitre 8 Ressources et interblocage Résumé du chapitre 8 Ressources et interblocage Jacques Mossière 12 août 2004 1 Introduction Ce chapitre est consacré à l étude d un problème classique dans les systèmes, l interblocage, c est à dire l

Plus en détail

CHAPITRE VI : SYSTEME DE GESTION DE FICHIERS

CHAPITRE VI : SYSTEME DE GESTION DE FICHIERS 56 CHAPITRE VI : SYSTEME DE GESTION DE FICHIERS 6.1 INTRODUCTION : Afin de fournir un accès efficace et pratique au disque, le SE impose un système de gestion de fichiers (SGF) pour permettre de stocker,

Plus en détail

Plan : Master IM2P2 - Calcul Scientifique

Plan : Master IM2P2 - Calcul Scientifique Plan : Les systèmes HPC Typologie des systèmes : Machines Mémoire partagée Machines à Mémoire Distribuées Machine NUMA Exemples Architectures Processeurs HPC Processeurs scalaires, superscalaires, vectoriels

Plus en détail

Travaux pratiques MPI Liste des exercices

Travaux pratiques MPI Liste des exercices Travaux pratiques MPI Liste des exercices 1 T.P. MPI Exercice 1 : Environnement MPI... 2 2 T.P. MPI Exercice 2 : Ping-pong... 3 3 T.P. MPI Exercice 3 : Communications collectives et réductions... 5 4 T.P.

Plus en détail

Ordinateur, programme et langage

Ordinateur, programme et langage 1 Ordinateur, programme et langage Ce chapitre expose tout d abord les notions de programme et de traitement de l information. Nous examinerons ensuite le rôle de l ordinateur et ses différents constituants.

Plus en détail

L'évolution des processeurs

L'évolution des processeurs L'évolution des processeurs Historique 1968 Création d'intel Corporation par Gordon Moore et Robert Noyce. 1971 Intel 4004, premier microprocesseur de l'histoire, 4 bits plutôt pour calculatrices. 60.000

Plus en détail

Cours de. Algorithmique. et langages du Web. Jean-Yves Ramel. Licence 1 PeipBiologie Groupe 7 & 8. ramel@univ-tours.fr Bureau 206 DI PolytechTours

Cours de. Algorithmique. et langages du Web. Jean-Yves Ramel. Licence 1 PeipBiologie Groupe 7 & 8. ramel@univ-tours.fr Bureau 206 DI PolytechTours Cours de Algorithmique et langages du Web Jean-Yves Ramel Licence 1 PeipBiologie Groupe 7 & 8 ramel@univ-tours.fr Bureau 206 DI PolytechTours Organisation de la partie Algorithmique 17 séances de 2 heures

Plus en détail

Introduction à l architecture des calculateurs

Introduction à l architecture des calculateurs Formation en Calcul Scientifique - LEM2I Introduction à l architecture des calculateurs Violaine Louvet 1 1 Institut Camille jordan - CNRS 12-13/09/2011 Simulation numérique... Physique Chimie... Algorithme

Plus en détail

Reprise en main du programme d Affectation de transport en commun

Reprise en main du programme d Affectation de transport en commun Reprise en main du programme d Affectation de transport en commun Modifications indispensables pour bonne compilation : Utilisation de visual C++ express pour avoir accès à un débuggeur et un compilateur

Plus en détail

THEME 2 : L ARCHITECTURE D UN ORDINATEUR. Dossier 1. Objectifs

THEME 2 : L ARCHITECTURE D UN ORDINATEUR. Dossier 1. Objectifs Architecture Matérielle des Systèmes informatiques. S1S1 BTS Informatique de Gestion 1 ère année THEME 2 : L ARCHITECTURE D UN ORDINATEUR Dossier 1 Les différentes formes de mémoire. Objectifs Connaître

Plus en détail

Adaptateur de réseau convergent de choix pour le FCoE dans les centres de données virtualisés

Adaptateur de réseau convergent de choix pour le FCoE dans les centres de données virtualisés Adaptateur de réseau convergent de choix pour le FCoE dans les centres de données virtualisés L'adaptateur QLogic est plus performant que le modèle Emulex UCNA Principaux résultats L'adaptateur de réseau

Plus en détail

De l idée au produit

De l idée au produit Chapitre 1 De l idée au produit 1.1. Introduction La conjonction de l évolution des technologies de fabrication des circuits intégrés et de la nature du marché des systèmes électroniques fait que l on

Plus en détail

CONCOURS INTERNE POUR LE RECRUTEMENT D INGENIEUR(E)S DES TRAVAUX DE LA METEOROLOGIE SESSION 2015

CONCOURS INTERNE POUR LE RECRUTEMENT D INGENIEUR(E)S DES TRAVAUX DE LA METEOROLOGIE SESSION 2015 CONCOURS INTERNE POUR LE RECRUTEMENT D INGENIEUR(E)S DES TRAVAUX DE LA METEOROLOGIE SESSION 2015 ************************************************************************************************* EPREUVE

Plus en détail

Portage, optimisation et développement de logiciels de calcul sur architectures GPU et hybrides PSA PEUGEOT CITROËN

Portage, optimisation et développement de logiciels de calcul sur architectures GPU et hybrides PSA PEUGEOT CITROËN Portage, optimisation et développement de logiciels de calcul sur architectures GPU et hybrides PSA PEUGEOT CITROËN Benoît DESCHAMPS PSA Peugeot Citroën 29/06/11 INDEX Présentations activités Réalité Virtuelle

Plus en détail

Bilan du concours pilote de bourses de recherche du printemps 2013 tenu dans le cadre de la réforme des programmes ouverts

Bilan du concours pilote de bourses de recherche du printemps 2013 tenu dans le cadre de la réforme des programmes ouverts Bilan du concours pilote de bourses de recherche du printemps 2013 tenu dans le cadre de la réforme des programmes ouverts Table des matières Introduction... 3 Méthodes... 4 Résumé des résultats... 5 Conclusion

Plus en détail

Jeu d instruction et Pipeline NSY 104

Jeu d instruction et Pipeline NSY 104 Jeu d instruction et Pipeline NSY 104 Les jeux d instructions Définitions Partie de l architecture avec laquelle le programmeur ou le concepteur de compilateur est en contact. Ensemble des instructions

Plus en détail

Primary Test Manager (PTM) Logiciel de gestion de tests pour équipements primaires

Primary Test Manager (PTM) Logiciel de gestion de tests pour équipements primaires Primary Test Manager (PTM) Logiciel de gestion de tests pour équipements primaires L outil idéal pour les tests de diagnostic Primary Test ManagerTM (PTM) est l outil logiciel idéal pour les tests de diagnostic

Plus en détail

Circuits séquentiels. Chapitre 6. 6.1 Circuits séquentiels

Circuits séquentiels. Chapitre 6. 6.1 Circuits séquentiels Chapitre 6 Circuits séquentiels Plusieurs circuits utilisés dans la vie courante ont besoin de mémoire. Ce chapitre présente les méthodes de base de stockage d information. Les circuits combinatoires présentés

Plus en détail

Analyse des textures en temps réel exploitant une architecture parallèle multi-coeurs et GPU

Analyse des textures en temps réel exploitant une architecture parallèle multi-coeurs et GPU Analyse des textures en temps réel exploitant une architecture parallèle multi-coeurs et GPU Moulay Akhloufi, MScA, MBA (moulay.akhloufi@crvi.ca ) Gilles Champagne (gilles.champagne@crvi.ca) Mario Jr Laframboise

Plus en détail

Plan de la présentation

Plan de la présentation Thomas Quang Khoi TA Équipe ETSN, Supélec, campus de Rennes Mitsubishi -TCL, Rennes 08 décembre 2003 1 Plan de la présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en

Plus en détail

Génie Logiciel. Hassan El Mansouri

Génie Logiciel. Hassan El Mansouri Hassan El Mansouri 1 Plan du cours Problématique et naissance du génie logiciel Cycle de développement, cycle de vie, cahier des charges Patrons de conception Programmation par composants, réutilisation

Plus en détail

Amélioration de la scalabilité en mémoire de la dynamique de LMDZ

Amélioration de la scalabilité en mémoire de la dynamique de LMDZ Amélioration de la scalabilité en mémoire de la dynamique de LMDZ Contexte... (Milestone CONVERGENCE MS 2.1a) La dynamique de LMDZ résout les équations de Naviers-Stoke sur la sphère en milieu tournant

Plus en détail

Conclusions et Perspectives

Conclusions et Perspectives 8 Conclusions et Perspectives Ce chapitre conclut la thèse en donnant un bilan du travail effectué et les perspectives envisageables au terme de cette recherche. Nous rappelons tout d abord les principales

Plus en détail

INFO4008 Programmation Unix Systèmes de Gestion de Fichiers

INFO4008 Programmation Unix Systèmes de Gestion de Fichiers I. Système de Gestion de Fichiers Un SGF est la partie d un système d exploitation chargée de : Établir la correspondance entre l organisation logique (vue utilisateur) et l organisation physique. Fournir

Plus en détail

Le matériel : architecture des ordinateurs

Le matériel : architecture des ordinateurs Chapitre 6 Le matériel : architecture des ordinateurs Von Neumann rédige en 1945 un texte d une dizaine de pages dans lequel il décrit les plans d une nouvelle machine, l EDVAC (Electronic Discrete Variable

Plus en détail

Génie Logiciel. Hassan El Mansouri. Plan du cours. Problématique du Génie Logiciel

Génie Logiciel. Hassan El Mansouri. Plan du cours. Problématique du Génie Logiciel Hassan El Mansouri 1 Plan du cours Cycle de développement, cycle de vie, cahier des charges Patrons de conception Programmation par composants, réutilisation de composants Gestion des exceptions Stratégies

Plus en détail

Parallélisme ou multitâche?

Parallélisme ou multitâche? Parallélisme ou multitâche? Ce texte est extrait d'un cours de L3 MIASHS. Vous pouvez en retrouver l'intégralité à cette adresse : http://grappa.univ-lille3.fr/~gonzalez/enseignement/2015-2016/l3miashs/calendrier.php?x=cm-5.php.

Plus en détail

Programmation des systèmes réparties

Programmation des systèmes réparties Programmation des systèmes réparties Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex

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

MATÉRIEL GRAPHIQUE POUR LE CALCUL SCIENTIFIQUE. François Rousselle LISIC Image et Apprentissage OASIS

MATÉRIEL GRAPHIQUE POUR LE CALCUL SCIENTIFIQUE. François Rousselle LISIC Image et Apprentissage OASIS MATÉRIEL GRAPHIQUE POUR LE CALCUL SCIENTIFIQUE François Rousselle LISIC Image et Apprentissage OASIS Cadre BQR 2010 CGR LISIC LMPA : Réalisation d'une plateforme générique de calcul intensif pour cartes

Plus en détail

Rapport final : Projet NETG

Rapport final : Projet NETG Rapport final : Projet NETG Génie Logiciel Introduction Il nous été demandé de réaliser une librairie permettant de manipuler des nombres entiers très grands dont les capacités dépassent les représentations

Plus en détail

Résolution de systèmes linéaires creux par des méthodes directes

Résolution de systèmes linéaires creux par des méthodes directes Résolution de systèmes linéaires creux par des méthodes directes J. Erhel Janvier 2014 1 Stockage des matrices creuses Dans de nombreuses simulations numériques, la discrétisation du problème aboutit à

Plus en détail

Rapidité d accès - + Capacité + - Prix + - Divers / Silencieux

Rapidité d accès - + Capacité + - Prix + - Divers / Silencieux Corrigé des exposés sur les composants internes Sources : www.commentcamarche.net www.lesnumeriques.com www.hardwareversand.de www.configspc.com Ce corrigé répond à cette question : Il existe différents

Plus en détail

COTATION BANQUE DE FRANCE UNE ÉVALUATION DES PERFORMANCES

COTATION BANQUE DE FRANCE UNE ÉVALUATION DES PERFORMANCES COTATION BANQUE DE FRANCE UNE ÉVALUATION DES PERFORMANCES Juin 2015 SOMMAIRE 1. Précisions sur la cotation Banque de France et les statistiques présentées... 4 2. Statistiques 2015... 6 2.1. Discrimination

Plus en détail

Bibliothèque de Traitement d Images en Niveaux de Gris

Bibliothèque de Traitement d Images en Niveaux de Gris TP Bibliothèque de Traitement d Images en Niveaux de Gris Étudiants : Besnier Alexandre Taforeau Julien Version 1.2 Janvier 2008 2008 Rapport TP - Version 1.2 i Table des matières Introduction 1 1 Objectif

Plus en détail

FILIÈRE MP - OPTION SCIENCES INDUSTRIELLES

FILIÈRE MP - OPTION SCIENCES INDUSTRIELLES ÉCOLE POLYTECHNIQUE ÉCOLE SUPÉRIEURE DE PHYSIQUE ETCHIMIEINDUSTRIELLES CONCOURS 2002 FILIÈRE MP - OPTION SCIENCES INDUSTRIELLES FILIÈRE PC ÉPREUVE FACULTATIVE D INFORMATIQUE (Durée : 2 heures) L utilisation

Plus en détail

5.2. Introduction à la programmation en assembleur et en langage machine

5.2. Introduction à la programmation en assembleur et en langage machine 5. Couche conventionnelle. Introduction à la programmation en assembleur et en langage machine. Instructions - types, formats, champs; types d'adressage et utilisation des registres. Branchements, sauts

Plus en détail

Jérôme Clet-Ortega. Modèles hybrides de programmation pour architectures parallèles

Jérôme Clet-Ortega. Modèles hybrides de programmation pour architectures parallèles + Jérôme Clet-Ortega Modèles hybrides de programmation pour architectures parallèles + Présentation 2 Équipe projet RUNTIME Dirigée par Raymond Namyst Supports exécutifs pour le calcul hautes performances

Plus en détail

Xeon Phi au CRIHAN. Patrick BOUSQUET-MÉLOU (pbm@crihan.fr) 16 Juin 2015

Xeon Phi au CRIHAN. Patrick BOUSQUET-MÉLOU (pbm@crihan.fr) 16 Juin 2015 Xeon Phi au CRIHAN Patrick BOUSQUET-MÉLOU (pbm@crihan.fr) 16 Juin 2015 Objectifs Veille technologique architecture many-core Se former pour préparer les utilisateurs au Xeon Phi «Knights Landing» (2016)

Plus en détail

2 ème partie : Programmation concurrente multi-thread

2 ème partie : Programmation concurrente multi-thread 2 ème partie : Programmation concurrente multi-thread TC-INFO-ASR4 Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : www-mips.unice.fr/~baude

Plus en détail

Comparatif Vista / Ubuntu / Fedora

Comparatif Vista / Ubuntu / Fedora Comparatif Vista / Ubuntu / Fedora On entend souvent dire que Linux n est pas fait pour le jeu, alors à Jeuvinux on a voulu en avoir le coeur net! C est pourquoi nous vous proposons un comparatif qui permettra

Plus en détail

NOUVEAUTÉS DE LA VERSION

NOUVEAUTÉS DE LA VERSION 5.8 NOUVEAUTÉS DE LA VERSION 5. Deux axes d orientation Ergonomie Richesse fonctionnelle Installation Une nouvelle procédure d installation du logiciel est mise en service. Elle distingue deux fichiers

Plus en détail

L unité centrale. Michel Futtersack, Faculté de Droit, Université Paris Descartes

L unité centrale. Michel Futtersack, Faculté de Droit, Université Paris Descartes L unité centrale Michel Futtersack, Faculté de Droit, Université Paris Descartes L écriture hexadécimale des nombres entiers 16 symboles pour écrire les nombres : 0 1 2 3 4 5 6 7 8 9 A B C D E F dix onze

Plus en détail

Comment un ordinateur fonctionne Processeur

Comment un ordinateur fonctionne Processeur Comment un ordinateur fonctionne Processeur Les processeurs Cerveau de l ordinateur Règle flux d information par intermédiaire du bus Détermine puissance de l ordi (486, Pentium, ) Vitesse définit par

Plus en détail

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N.

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N. Abstraction et liaison dans les langages de programmation LIN2: Paradigmes de programmation N. Hameurlain Abstraction: introduction L'importance de l abstraction découle de sa capacité de cacher les détails

Plus en détail

Logiciel PATROL. Notice d utilisation. Page 1 sur 25. Version 6.x. Dernières modifications 14-06-2006

Logiciel PATROL. Notice d utilisation. Page 1 sur 25. Version 6.x. Dernières modifications 14-06-2006 Version 6.x Logiciel PATROL Notice d utilisation Dernières modifications 14-06-2006 Page 1 sur 25 Table des matières I. Introduction 3 II. Installation du logiciel 3 III. Utilisation du lecteur Easy Rondes

Plus en détail

INTRODUCTION Structure de base de l ordinateur. Rôle de l ordinateur Eléments de l ordinateur. Joëlle Delacroix - NFA004 1

INTRODUCTION Structure de base de l ordinateur. Rôle de l ordinateur Eléments de l ordinateur. Joëlle Delacroix - NFA004 1 INTRODUCTION Structure de base de l ordinateur Rôle de l ordinateur Eléments de l ordinateur Joëlle Delacroix - NFA004 1 Les différents niveaux de la machine informatique On distingue généralement trois

Plus en détail

Logiciel de statistiques pour le Volley-ball

Logiciel de statistiques pour le Volley-ball Lucas society Logiciel de statistiques pour le Volley-ball Partie Modèle Anthony 13 Table des matières I) Préambule...2 1) Motivation...2 2) Contrainte...2 II) Introduction...3 1) Le travail en équipe...3

Plus en détail

La Grille, moyen fondamental de l analyse

La Grille, moyen fondamental de l analyse Fiche méthodologie #1 La Grille, moyen fondamental de l analyse Cette rubrique présente des notes et documents publiés par Philippe Latour, enseignant au Master Géomarketing et stratégies territoriales

Plus en détail

Hotline: +49-6103/9308-355 ou hotline-fr@carat-online.com (Autilisateurs) Vente: +49-6103/9308-360 oder info-intl@carat-online.com (nouveaux clients)

Hotline: +49-6103/9308-355 ou hotline-fr@carat-online.com (Autilisateurs) Vente: +49-6103/9308-360 oder info-intl@carat-online.com (nouveaux clients) CONDITIONS SYSTEME CARAT GENERALITES Avec ces informations techniques, nous voulons aider nos clients-carat et les marchandsmatériel lors de l assemblage du nouveau matériel. Il est par contre recommandable

Plus en détail

INSPECTEUR DES DOUANES ET DES DROITS INDIRECTS «SPECIALITE TRAITEMENT AUTOMATISE DE L'INFORMATION PROGRAMMEUR SYSTEME D'INFORMATION (PSE)» EXTERNE

INSPECTEUR DES DOUANES ET DES DROITS INDIRECTS «SPECIALITE TRAITEMENT AUTOMATISE DE L'INFORMATION PROGRAMMEUR SYSTEME D'INFORMATION (PSE)» EXTERNE INSPECTEUR DES DOUANES ET DES DROITS INDIRECTS «SPECIALITE TRAITEMENT AUTOMATISE DE L'INFORMATION PROGRAMMEUR SYSTEME D'INFORMATION (PSE)» EXTERNE I Épreuves écrites d admissibilité PROGRAMME DES EPREUVES

Plus en détail

Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur

Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Jean Privat Université du Québec à Montréal INF217 Organisation des ordinateurs et assembleur Automne 21 Jean Privat (UQAM) 1

Plus en détail

Analyse de la complexité algorithmique (1)

Analyse de la complexité algorithmique (1) Analyse de la complexité algorithmique (1) L analyse de la complexité telle que nous l avons vue jusqu à présent nous a essentiellement servi à déterminer si un problème est ou non facile (i.e. soluble

Plus en détail

b-swiss entreprise La solution la plus simple et intelligente pour communiquer en entreprise

b-swiss entreprise La solution la plus simple et intelligente pour communiquer en entreprise b-swiss La solution la plus simple et intelligente pour communiquer en b-swiss est la solution de communication par écran pour l de la gamme b-swiss spécialisé dans la communication intelligente par écran

Plus en détail

Calcul Haute Performance et Parallélisme Historique et exemples

Calcul Haute Performance et Parallélisme Historique et exemples Calcul Haute Performance et Parallélisme Historique et exemples Emmanuel Hermellin LIRMM Janvier 2014 Sommaire 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs

Plus en détail

b-swiss entreprise La solution la plus simple et intelligente pour communiquer par écrans

b-swiss entreprise La solution la plus simple et intelligente pour communiquer par écrans entreprise La solution la plus simple et intelligente pour communiquer par écrans Conçu pour les entreprises de toute taille, le pack entreprise de la gamme constitue la solution économique permettant

Plus en détail

Préparer un logiciel à sa diffusion (Libres conseils 29/42) Packager : la voie royale du logiciel libre

Préparer un logiciel à sa diffusion (Libres conseils 29/42) Packager : la voie royale du logiciel libre Préparer un logiciel à sa diffusion (Libres conseils 29/42) Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même. Traduction Framalang : merlin8282,

Plus en détail

Installer des applications Office 2003

Installer des applications Office 2003 ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Installer des applications Office 2003 DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire Introduction...

Plus en détail

Unité 9: Unité centrale de traitement. Unité 9: Unité centrale de traitement

Unité 9: Unité centrale de traitement. Unité 9: Unité centrale de traitement Objectifs : À la fin de cette unité, vous connaîtrez le fonctionnement de l'unité centrale de traitement d'un ordinateur. Pour y arriver, vous devrez atteindre les objectifs suivants : - décrire les différentes

Plus en détail

La Photographie Principes G.Loichot

La Photographie Principes G.Loichot La Photographie Principes G.Loichot Introduction La principale chose à laquelle il faut penser en photographie, c est à la lumière. C est elle qui traverse l objectif et qui vient «s écraser» sur le capteur

Plus en détail

TP de programmation OpenMP

TP de programmation OpenMP TP-OpenMP Page 1 of 2 Objectifs du TP : Les processeurs d'aujourd'hui sont tous "multi-coeurs", et certaines architectures possèdent plusieurs centaines de processeurs coopérant à travers une mémoire partagée.

Plus en détail

Table des matières. Principes fondamentaux de conception des ordinateurs. Avant-propos Préface Remerciements XXI XXVII XXXV

Table des matières. Principes fondamentaux de conception des ordinateurs. Avant-propos Préface Remerciements XXI XXVII XXXV Table des matières Avant-propos Préface Remerciements XXI XXVII XXXV Chapitre 1 Principes fondamentaux de conception des ordinateurs 1.1 Introduction 2 1.2 L évolution de l informatique et la tâche du

Plus en détail

Prendre un bon départ

Prendre un bon départ Chapitre A Prendre un bon départ 1 - Avant-propos Un ordinateur sait très bien faire deux choses : Calculer, d oùle nomcomputer en anglais que l on pourrait traduire par calculateur. Placer des données

Plus en détail

Connexion des systèmes SLC en tant qu E/S décentralisées aux processeurs PLC-5

Connexion des systèmes SLC en tant qu E/S décentralisées aux processeurs PLC-5 Guide de référence Ce document associe la documentation existante des PLC et SLC pour expliquer la communication entre ces deux types de systèmes sur une liaison RIO. Ces informations sont complémentaires

Plus en détail

Rapport sur le développement d une application de saisie de séquences vidéo à l aide de la carte d acquisition Bandit de Coreco

Rapport sur le développement d une application de saisie de séquences vidéo à l aide de la carte d acquisition Bandit de Coreco 550, rue Sherbrooke Ouest, bureau 100 Montréal (Québec) H3A 1B9 Téléphone : (514) 840-1234 Télécopieur : (514) 840-1244 http://www.crim.ca CRIM - Documentation/Communications Rapport sur le développement

Plus en détail

Organisation des études conduisant au DUT, spécialité «Génie Électrique et Informatique Industrielle»

Organisation des études conduisant au DUT, spécialité «Génie Électrique et Informatique Industrielle» Organisation des études conduisant au DUT, spécialité «Génie Électrique et Informatique Industrielle» Programme Pédagogique National s du Cœur de Compétence 3 Sommaire 1s de l 3 : Informatique des Systèmes

Plus en détail

P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S

P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S MP deuxième années PREAMBULE Sommaire I. Contexte de la réforme de l informatique en C.P.G.E II. Objectifs de la formation III. Moyens

Plus en détail

Gestion des processus / Gestion de la mémoire

Gestion des processus / Gestion de la mémoire Gestion des processus / Gestion de la mémoire Alexis Lechervy d après un cours de Jacques Madelaine Université de Caen A. Lechervy (Université de Caen) Gestion des processus / Gestion de la mémoire 1 /

Plus en détail

Rapport IN52. Sujet : Résolution d un puzzle

Rapport IN52. Sujet : Résolution d un puzzle CARRE Julien PIERNOT Jérôme Rapport IN52 Sujet : Résolution d un puzzle Responsable : M. Ruicheck Y. Automne 2007 1 SOMMAIRE INTRODUCTION...3 I. Description et approche du sujet...4 1. Description 2. Outils

Plus en détail

Systèmes à processeurs

Systèmes à processeurs Systèmes à processeurs II2 - Cours : Systèmes à processeurs J. Villemejane - julien.villemejane@u-pec.fr IUT Créteil-Vitry Département GEII Université Paris-Est Créteil Année universitaire 2012-2013 1/31

Plus en détail

Architecture des ordinateurs Bus de communication, carte mère, processeur et mémoire

Architecture des ordinateurs Bus de communication, carte mère, processeur et mémoire Architecture des ordinateurs Bus de communication, carte mère, processeur et mémoire Michel Salomon IUT de Belfort-Montbéliard Département d informatique Michel Salomon Architecture des ordinateurs 1 /

Plus en détail

Ordinateur, système d exploitation

Ordinateur, système d exploitation Ordinateur, système d exploitation Skander Zannad et Judicaël Courant 2013-09-02 1 Ordinateur 1.1 Qu est-ce qu un ordinateur? C est une machine Servant à traiter de l information Programmable Universelle

Plus en détail

Architectures parallèles

Architectures parallèles Architectures parallèles GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Image: Michael Thompsett Merci à Étienne Tremblay Architecture parallèle Architecture parallèle:

Plus en détail

MÉRÉ Aurélien FIIFO1. Pathfinder

MÉRÉ Aurélien FIIFO1. Pathfinder MÉRÉ Aurélien FIIFO1 AMC Pathfinder 1 Sommaire Préambule... 3 Modélisation de l espace... 4 Modélisation des cases δ, α... 4 Interface en mode texte... 5 Modélisation du robot... 8 1 ) Le type Robot...

Plus en détail

LA SIMPLICITÉ L EFFICACITÉ

LA SIMPLICITÉ L EFFICACITÉ LA SIMPLICITÉ L EFFICACITÉ INFORMATIONS SUR LE LOGICIEL Tirage simple est un logiciel capable d effectuer le tirage au sort des quatre premières parties de votre concours et même le cadrage s il y a lieu.

Plus en détail

Architecture (2) - PROCESSEUR -

Architecture (2) - PROCESSEUR - 1/19 Architecture générale Processeur Evolution des processeurs Architecture (2) - PROCESSEUR - Pierre Gançarski Université de Strasbourg IUT Robert Schuman DUT Informatique 2011-2012 2/19 Architecture

Plus en détail

007537/EU XXIII.GP Eingelangt am 14/02/07

007537/EU XXIII.GP Eingelangt am 14/02/07 007537/EU XXIII.GP Eingelangt am 14/02/07 COMMISSION DES COMMUNAUTÉS EUROPÉENNES Bruxelles, le 14.2.2007 SEC(2007) 113 DOCUMENT DE TRAVAIL DES SERVICES DE LA COMMISSION Document accompagnant la proposition

Plus en détail

Informatique éducative

Informatique éducative Généralisation de la technologie de l information et de la communication dans l enseignement Délégation de Khouribga Lycée Othmane Ben Affane Collégial Matière Informatique éducative Inspecteur pédagogique

Plus en détail

Cartographie de compétences : conception d un plan d affaire

Cartographie de compétences : conception d un plan d affaire Cartographie de compétences : conception d un plan d affaire Processus Activité Attitudes / comportements Capacités Connaissances Définition de l idée Utilise des méthodes et des techniques d évaluation

Plus en détail

Systèmes d'exploitation Chapitre 3: Gestion de fichiers

Systèmes d'exploitation Chapitre 3: Gestion de fichiers Université Cadi Ayyad Faculté Polydisciplinaire de Safi Département sciences mathématiques et informatique Systèmes d'exploitation Chapitre 3: Gestion de fichiers Le stockage fiable, rapide de grandes

Plus en détail

Tableaux et manipulation d images «bitmap»

Tableaux et manipulation d images «bitmap» T.P. numéro VII Tableaux et manipulation d images «bitmap» Ce T.P. va faire intervenir les notions suivantes : lecture/écriture de fichiers binaires ; images bitmap ; tableaux de données. 1 Fichiers binaires

Plus en détail

MATINFO 3. xxxxxxxxxx Responsable de Comptes xxxxxxxx

MATINFO 3. xxxxxxxxxx Responsable de Comptes xxxxxxxx MATINFO 3 xxxxxxxxxx Responsable de Comptes xxxxxxxx Catégorie 1 : Poste Bureautique Optiplex 7010 Dédié aux principales applications bureautiques 4 châssis différents : MT, DT, SF, USFF Large choix de

Plus en détail

Sujet Projet Informatique: Circuit électrique 3D

Sujet Projet Informatique: Circuit électrique 3D Sujet Projet Informatique: Circuit électrique 3D 2011 FIGURE 1 Principe du projet. Gauche : Schéma à modéliser. Milieu : Description formelle analysable. Droite: Visualisation 3D correspondante au schéma

Plus en détail

Commandité par : VMware. Brett Waldman May 2013

Commandité par : VMware. Brett Waldman May 2013 Siège social : 5 Speen Street Framingham, MA 01701 États-Unis Tél : 508.872.8200 Fax : 508.935.4015 www.idc.com W H I T E P A P E R E x t e n s i o n d e l a g e s t i o n d u c y c l e d e v i e d e s

Plus en détail

Algorithmes évolutionnaires sur. et GPU. Introduction : GPU et puissance calculatoire Principe du GPU : le pipeline

Algorithmes évolutionnaires sur. et GPU. Introduction : GPU et puissance calculatoire Principe du GPU : le pipeline Algorithmes évolutionnaires et GPU Introduction : GPU et puissance calculatoire Principe du GPU : le pipeline graphique Introduction au parallélisme de données Exemple de simulation Les langages de haut-niveau

Plus en détail

La stratégie de la relation client

La stratégie de la relation client La stratégie de la relation client Auteur(s) Ingénieur ESIM et MBA, spécialiste du CRM en France et chez Ernst&Young Conseil MBA, spécialiste de l application de nouvelles technologies au marketing. Directeur

Plus en détail

Intégration de polynômes Points de Gauss

Intégration de polynômes Points de Gauss Intégration de polynômes Points de Gauss Commençons par un exercice classique de premier cycle. Problème 1 Trouver trois réels α, β et γ tels que, pour tout polynôme P de degré au plus 2, on ait : ( )

Plus en détail