Veille technologique Des cartes graphiques comme coprocesseurs algébriques

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

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

Architecture des ordinateurs

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

Architecture des calculateurs

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

Une bibliothèque de templates pour CUDA

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

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

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

Systèmes et traitement parallèles

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

Quantification d incertitude et Tendances en HPC

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

en version SAN ou NAS

en version SAN ou NAS tout-en-un en version SAN ou NAS Quand avez-vous besoin de virtualisation? Les opportunités de mettre en place des solutions de virtualisation sont nombreuses, quelque soit la taille de l'entreprise. Parmi

Plus en détail

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

Tests de performance du matériel

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

Architecture des Ordinateurs. Partie II:

Architecture 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

Architecture matérielle des systèmes informatiques

Architecture matérielle des systèmes informatiques Architecture matérielle des systèmes informatiques IDEC, Renens. Version novembre 2003. Avertissement : ce support de cours n est pas destiné à l autoformation et doit impérativement être complété par

Plus en détail

Tout savoir sur le matériel informatique

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

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

Eléments d architecture des machines parallèles et distribuées

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

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche Serveurs DELL PowerEdge Tour Rack standard R310 T110II Rack de calcul Lames R815 M610 R410 R910 M620 R415 R510 T620 R620 R720/R720xd

Plus en détail

vbladecenter S! tout-en-un en version SAN ou NAS

vbladecenter S! tout-en-un en version SAN ou NAS vbladecenter S! tout-en-un en version SAN ou NAS Quand avez-vous besoin de virtualisation? Les opportunités de mettre en place des solutions de virtualisation sont nombreuses, quelque soit la taille de

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Serveur Lynx CALLEO Application 2240 Fiches Technique

Serveur Lynx CALLEO Application 2240 Fiches Technique Fiches Technique Flexible et innovant + Le serveur d application est particulièrement adapté pour les applications générales des entreprises et satisfait également les exigences les plus strictes. Grâce

Plus en détail

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est: Travaux Pratiques 3. IFT 1002/IFT 1005. Structure Interne des Ordinateurs. Département d'informatique et de génie logiciel. Université Laval. Hiver 2012. Prof : Bui Minh Duc. Tous les exercices sont indépendants.

Plus en détail

Introduction au calcul parallèle avec OpenCL

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

Serveur Lynx CALLEO Application 2240S Fiches Technique

Serveur Lynx CALLEO Application 2240S Fiches Technique Fiches Technique Flexible et innovant + Le serveur d application est particulièrement adapté pour les applications générales des entreprises et satisfait également les exigences les plus strictes. Grâce

Plus en détail

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

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

. Plan du cours. . Architecture: Fermi (2010-12), Kepler (12-?)

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

Leçon 1 : Les principaux composants d un ordinateur

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

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

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

Plus en détail

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007 Introduction à l architecture des ordinateurs Adrien Lebre Décembre 2007 Plan - partie 1 Vue d ensemble La carte mère Le processeur La mémoire principal Notion de bus Introduction à l architecture des

Plus en détail

Guide d'installation d'esprit Version 2014 R2

Guide d'installation d'esprit Version 2014 R2 Guide d'installation d'esprit Configuration recommandée Unterer Kanalweg 9 tél. +41 (0)32-332 99 20 CH-2560 Nidau BE fax +41 (0)32-333 15 45 www.icam.ch support@icam.ch DÉROULEMENT DE L INSTALLATION Guide

Plus en détail

Limitations of the Playstation 3 for High Performance Cluster Computing

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

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ MODULE I1 Plan Chapitre 1 Qu'est ce qu'un S.E? Introduction Historique Présentation d'un S.E Les principaux S.E R&T 1ère année Votre environnement Sylvain MERCHEZ Introduction Introduction Rôles et fonctions

Plus en détail

VMWare Infrastructure 3

VMWare Infrastructure 3 Ingénieurs 2000 Filière Informatique et réseaux Université de Marne-la-Vallée VMWare Infrastructure 3 Exposé système et nouvelles technologies réseau. Christophe KELLER Sommaire Sommaire... 2 Introduction...

Plus en détail

SERVEUR CALLEO APPLICATION R269M

SERVEUR CALLEO APPLICATION R269M FLEXIBLE ET INNOVANT Le serveur d application est particulièrement adapté pour les applications générales des entreprises et satisfait également les exigences les plus strictes. Grâce à la conception élaborée

Plus en détail

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

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

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

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

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

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

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

Plus en détail

Choisir le bon ordinateur. et la bonne imprimante en 2013. avec. Les prix bas, la confiance en plus

Choisir le bon ordinateur. et la bonne imprimante en 2013. avec. Les prix bas, la confiance en plus Choisir le bon ordinateur et la bonne imprimante en 2013 avec Les prix bas, la confiance en plus Comment bien choisir son laptop et son imprimante en 2013? Tour d horizon des nouveautés et des critères

Plus en détail

Exigences système Edition & Imprimeries de labeur

Exigences système Edition & Imprimeries de labeur Exigences système Edition & Imprimeries de labeur OneVision Software France Sommaire Asura 9.5, Asura Pro 9.5, Garda 5.0...2 PlugBALANCEin 6.5, PlugCROPin 6.5, PlugFITin 6.5, PlugRECOMPOSEin 6.5, PlugSPOTin

Plus en détail

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

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

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

Fonctionnement et performance des processeurs

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

CH.3 SYSTÈMES D'EXPLOITATION

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

Matériel & Logiciels (Hardware & Software)

Matériel & Logiciels (Hardware & Software) CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique

Plus en détail

GPA770 Microélectronique appliquée Exercices série A

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

Parallélisme et Répartition

Parallélisme et Répartition Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

victor Logiciel de gestion pour une sécurité unifiée

victor Logiciel de gestion pour une sécurité unifiée victor Logiciel de gestion pour une sécurité unifiée victor unifie la sécurité, la surveillance et la gestion des événements. À partir d une interface unique, vous pouvez gérer des données vidéo en direct

Plus en détail

LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR. Code DESIGNATION QTE PU HT EN EURO MONTANT TOTAL HT EN EURO MONTANT TTC EN EURO

LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR. Code DESIGNATION QTE PU HT EN EURO MONTANT TOTAL HT EN EURO MONTANT TTC EN EURO LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR Code DESIGNATION QTE PU HT EN EURO ORD1 Ordinateur de bureau 18 ORD2 Ordinateur de bureau 1 ORD3 Ordinateur portable 1 ORD 4 Unités

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

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

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Retour d expérience, portage de code Promes dans le cadre de l appel à projets CAPS-GENCI

Retour d expérience, portage de code Promes dans le cadre de l appel à projets CAPS-GENCI , portage de code Promes dans le cadre de l appel à projets CAPS-GENCI PROMES (UPR 8521 CNRS) Université de Perpignan France 29 juin 2011 1 Contexte 2 3 4 Sommaire Contexte 1 Contexte 2 3 4 Laboratoire

Plus en détail

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E5649 2.53 GHz

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

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

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

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Introduction à CUDA. gael.guennebaud@inria.fr

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

Plus en détail

Communications performantes par passage de message entre machines virtuelles co-hébergées

Communications performantes par passage de message entre machines virtuelles co-hébergées Communications performantes par passage de message entre machines virtuelles co-hébergées François Diakhaté1,2 1 CEA/DAM Île de France 2 INRIA Bordeaux Sud Ouest, équipe RUNTIME Renpar 2009 1 Plan Introduction

Plus en détail

Configuration Matérielle et Logicielle AGORA V2

Configuration Matérielle et Logicielle AGORA V2 Configuration Matérielle et Logicielle AGORA V2 Sommaire A- PREAMBULE 2 B - LE SERVEUR : 3 PLATES-FORMES SERVEURS DE DONNEES SUPPORTEES... 3 MOTEUR DE BASE DE DONNEES... 3 PROTOCOLES RESEAUX... 3 VERSION

Plus en détail

Exigences système BauBit pro

Exigences système BauBit pro INTRODUCTION Chaque installation de BauBit pro se compose d un serveur et d un ou plusieurs clients. Le serveur BauBit pro utilise Microsoft SQL Server 2014 comme système de base de données. Les exigences

Plus en détail

Journée Utiliateurs 2015. Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS

Journée Utiliateurs 2015. Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS Journée Utiliateurs 2015 Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS 1 Pôle ID, Grid'5000 Ciment Une proximité des platesformes Autres sites G5K Grenoble + CIMENT Pôle ID = «Digitalis»

Plus en détail

Rappels d architecture

Rappels 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

Exigences système Edition & Imprimeries de labeur

Exigences système Edition & Imprimeries de labeur Exigences système Edition & Imprimeries de labeur OneVision Software France Sommaire Asura 10.2, Asura Pro 10.2, Garda 10.2...2 PlugBALANCEin10.2, PlugCROPin 10.2, PlugFITin 10.2, PlugRECOMPOSEin 10.2,

Plus en détail

Introduction à la programmation des GPUs

Introduction à la programmation des GPUs Introduction à la programmation des GPUs Anne-Sophie Mouronval Mesocentre de calcul de l Ecole Centrale Paris Laboratoire MSSMat Avril 2013 Anne-Sophie Mouronval Introduction à la programmation des GPUs

Plus en détail

Intel Corporation Nicolas Biguet Business Development Manager Intel France

Intel Corporation Nicolas Biguet Business Development Manager Intel France Les serveurs pour l Entreprise Intel Corporation Nicolas Biguet Business Development Manager Intel France 1 Les orientations stratégiques Clients Réseaux Serveurs Fournir les les éléments de de base des

Plus en détail

Réseau Global MIDI Note applicative

Réseau Global MIDI Note applicative Réseau Global MIDI Note applicative 1 But du manuel Le but de cette note applicative est de démystifié l utilisation du MIDI transporté dans un Réseau Global MIDI. Ce réseau virtuel offre sans aucune restriction,

Plus en détail

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée Son PC portable 1 2 Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée Analysons d abord vos besoins Ensuite on n y reviendra 3

Plus en détail

Calcul scientifique précis et efficace sur le processeur CELL

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

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie 1 Professeur : Haouati Abdelali CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie I : Généralités et algorithmique de base 1. Environnement matériel et logiciel

Plus en détail

& collaborative workspace. the new multitouch CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER CREATE & INNOVATE SAVE & TAKE THE DATA WITH YOU

& collaborative workspace. the new multitouch CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER CREATE & INNOVATE SAVE & TAKE THE DATA WITH YOU CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER SAVE & TAKE THE DATA WITH YOU CREATE & INNOVATE the new multitouch & collaborative workspace O1 Connect & Share O2 Create & Innovate O3 Collaborate better

Plus en détail

Architecture des ordinateurs

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

Exécution des instructions machine

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

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1 Pourquoi aller vers les processeurs standard? Considérations

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Préparé par : George Crump, analyste senior Préparé le : 03/10/2012 L investissement qu une entreprise fait dans le domaine de

Plus en détail

Compilation (INF 564)

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

Spécifications détaillées

Spécifications détaillées Hewlett Packard HP ProLiant ML110 G5 Serveur micro tour 4U 1 voie 1 x Xeon E3110 / 3 GHz RAM 1 Go Disque dur 1 x 250 Go DVD RW Gigabit Ethernet Moniteur : aucun(e) Le serveur HP ProLiant ML110 G5 offre

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Informations générales par rapport au système d'exploitation

Informations générales par rapport au système d'exploitation Informations générales par rapport au système d'exploitation Les systèmes d exploitation suivants sont recommandés pour l installation de WinCan8 sur des ordinateurs utilisés à bord de véhicules et au

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

SERVEUR LYNX CALLEO DATACENTER 2460

SERVEUR LYNX CALLEO DATACENTER 2460 PUISSANT ET SOUVERAIN Le serveur de centre de données est un serveur haute performance particulièrement adapté à une utilisation dans les centres de calcul. Les grands compute workloads peuvent être effectués

Plus en détail

Segmentation d'images à l'aide d'agents sociaux : applications GPU

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

Happy birthday ZSet High performance computing dans ZSet

Happy birthday ZSet High performance computing dans ZSet Happy birthday ZSet High performance computing dans ZSet F. Feyel & P. Gosselet Architectures SMP NUMA memory memory memory Distribué memory memory 2 memory memory Hybride memory memory memory memory memory

Plus en détail

Rapport de stage Master 2

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

Rapport d activité. Mathieu Souchaud Juin 2007

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

Plus en détail

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7 CONFÉRENCE DES NATIONS UNIES SUR LE COMMERCE ET LE DÉVELOPPEMENT UNITED NATIONS CONFERENCE ON TRADE AND DEVELOPMENT Le Programme SYGADE SYGADE 5.2 Besoins en équipement, logiciels et formation UNCTAD/GID/DMFAS/Misc.6/Rev.7

Plus en détail

«Connais toi toi-même comme l as dit Socrate!»

«Connais toi toi-même comme l as dit Socrate!» «Connais toi toi-même comme l as dit Socrate!» Avant toute chose, il faut savoir pour quel usage, vous désirez acquérir un ordinateur. En effet la configuration de votre ordinateur ne sera pas la même

Plus en détail

Cours 3 : L'ordinateur

Cours 3 : L'ordinateur Cours 3 : L'ordinateur Abdelkrim Zehioua 2éme année Licence Gestion Faculté des sciences Économiques et sciences de Gestion Université A, Mehri - Constantine 2 Plan du cours 1.Définitions de l'ordinateur

Plus en détail

CLIENTS LÉGERS. Remote Desktop Services Linux Terminal Server Project

CLIENTS LÉGERS. Remote Desktop Services Linux Terminal Server Project CLIENTS LÉGERS Remote Desktop Services Linux Terminal Server Project Description CS Côte du Sud Besoin Analyse et tests Architecture retenue Déploiement 1. Description CS de la Côte-du-Sud Centre administratif

Plus en détail

Ces exigences s appliquent à la version 2014 de Sage 200 ERP Extra au 01.12.2014.

Ces exigences s appliquent à la version 2014 de Sage 200 ERP Extra au 01.12.2014. système et logicielssupportés 1. système pour serveur Ces exigences s appliquent à la version 2014 de Sage 200 ERP Extra au 01.12.2014. L aperçu décrit l environnement système recommandé pour travailler

Plus en détail

Structure de base d un ordinateur

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

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

HPC by OVH.COM. Le bon calcul pour l innovation OVH.COM

HPC by OVH.COM. Le bon calcul pour l innovation OVH.COM 4 HPC by OVH.COM Le bon calcul pour l innovation 2 6 5 6 2 8 6 2 OVH.COM 5 2 HPC by OVH.COM 6 HPC pour High Performance Computing Utilisation de serveurs et de grappes de serveurs (clusters), configurés

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

TVTools Cloud Edition

TVTools Cloud Edition NOS PACKS TVTOOLS CLOUD ÉDITION CONDITIONS TARIFAIRES TVTools Cloud Edition AU 1 ER NOVEMBRE 2014 Fourniture d un Pack TVTools Cloud Edition pour intégration dans un environnement informatique : Accès

Plus en détail

Sommaire. Systèmes d Exploitation... 3. Intégration Sage 100 Sage CRM... 3. Disponibilité Client... 3. Bases de données... 3

Sommaire. Systèmes d Exploitation... 3. Intégration Sage 100 Sage CRM... 3. Disponibilité Client... 3. Bases de données... 3 Communiqué de Lancement Sage CRM v. 6.5 Editions Standard et Avancée Sommaire Systèmes d Exploitation... 3 Intégration Sage 100 Sage CRM... 3 Disponibilité Client... 3 Bases de données... 3 Nouveautés

Plus en détail

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

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation

Plus en détail

1. Installation standard sur un serveur dédié

1. Installation standard sur un serveur dédié Fiche de présentation service Page 1/6 Hestia Système Plus : Pré-requis techniques Le progiciel HESTIA se compose d une base de données, d un certain nombre de modules en client/serveur (exécutables) et

Plus en détail