Veille technologique Des cartes graphiques comme coprocesseurs algébriques
|
|
- Camille Pruneau
- il y a 8 ans
- Total affichages :
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 Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours
Plus en détailArchitecture des 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étailArchitecture des calculateurs
Formation en Calcul Scientifique - LEM2I Architecture des calculateurs Violaine Louvet 1 1 Institut Camille jordan - CNRS 12-13/09/2011 Introduction Décoder la relation entre l architecture et les applications
Plus en détailUne bibliothèque de templates pour CUDA
Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données
Plus en détailHiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique
Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément
Plus en détailSystèmes et traitement parallèles
Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications
Plus en détailQuantification d incertitude et Tendances en HPC
Quantification d incertitude et Tendances en HPC Laurence Viry E cole de Physique des Houches 7 Mai 2014 Laurence Viry Tendances en HPC 7 Mai 2014 1 / 47 Contents 1 Mode lisation, simulation et quantification
Plus en détailen 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étailContrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle
Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle 1 CEA R & D for Nuclear Energy 5 000 people Nuclear systems
Plus en détailTests de performance du matériel
3 Tests de performance du matériel Après toute la théorie du dernier chapitre, vous vous demandez certainement quelles sont les performances réelles de votre propre système. En fait, il y a plusieurs raisons
Plus en détailArchitecture des Ordinateurs. Partie II:
Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.
Plus en détailArchitecture 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étailTout savoir sur le matériel informatique
Tout savoir sur le matériel informatique Thème de l exposé : Les Processeurs Date : 05 Novembre 2010 Orateurs : Hugo VIAL-JAIME Jérémy RAMBAUD Sommaire : 1. Introduction... 3 2. Historique... 4 3. Relation
Plus en détail1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :
GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours
Plus en détailEléments d architecture des machines parallèles et distribuées
M2-RISE - Systèmes distribués et grille Eléments d architecture des machines parallèles et distribuées Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Notions d architecture
Plus en détailOutil 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étailvbladecenter 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étailTHEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs
Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et
Plus en détailCours 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 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étailServeur 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étailComme 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étailIntroduction au calcul parallèle avec OpenCL
Introduction au calcul parallèle avec OpenCL Julien Dehos Séminaire du 05/01/2012 Sommaire Introduction Le calculateur du CGR/LISIC/LMPA Généralités sur OpenCL Modèles Programmation Optimisation Conclusion
Plus en détailServeur 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étailINF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1
INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 4 : Multiprocesseurs Sylvain Martel - INF6500 2 Multiprocesseurs Type SISD SIMD MIMD Communication Shared memory Message-passing Groupe
Plus en détail. Plan du cours. . Architecture: Fermi (2010-12), Kepler (12-?)
Plan du cours Vision mate riel: architecture cartes graphiques NVIDIA INF 560 Calcul Paralle le et Distribue Cours 3 Vision logiciel: l abstraction logique de l architecture propose e par le langage CUDA
Plus en détailLeçon 1 : Les principaux composants d un ordinateur
Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques
Plus en détailM2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013
Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :
Plus en détailIntroduction à 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étailGuide 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étailLimitations of the Playstation 3 for High Performance Cluster Computing
Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire
Plus en détailMODULE 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étailVMWare 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étailSERVEUR 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étailSur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)
1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général
Plus en détailMé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étailPartie 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étailInfo0804. 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étailChoisir 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étailExigences 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étailRapport 2014 et demande pour 2015. Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121
Rapport 2014 et demande pour 2015 Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121 Rappel sur Méso-NH : Modélisation à moyenne échelle de l atmosphère
Plus en détailT. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5
Modélisation de la performance et optimisation d un algorithme hydrodynamique de type Lagrange-Projection sur processeurs multi-cœurs T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet
Plus en détailFonctionnement et performance des processeurs
Fonctionnement et performance des processeurs Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Fonctionnement des processeurs Unités de calcul
Plus en détailCH.3 SYSTÈMES D'EXPLOITATION
CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,
Plus en détailMaté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étailGPA770 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étailParallélisme et Répartition
Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre
Plus en détailPlan 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étailvictor 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étailLOT 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étailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailIntroduction à 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étailRetour 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étailChoix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E5649 2.53 GHz
Choix d'un serveur Vous êtes responsable informatique d'une entreprise. Vous devez faire un choix pour l'achat d'un nouveau serveur. Votre prestataire informatique vous propose les choix ci-dessous Vous
Plus en détailIntroduction à 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étailChapitre 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étailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailIntroduction à CUDA. gael.guennebaud@inria.fr
36 Introduction à CUDA gael.guennebaud@inria.fr 38 Comment programmer les GPU? Notion de kernel exemple (n produits scalaires): T ci =ai b ( ai, b : vecteurs 3D, ci for(int i=0;i
Plus en détailCommunications 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étailConfiguration 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étailExigences 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étailJourné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étailRappels d architecture
Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée
Plus en détailExigences 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étailIntroduction à 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étailIntel 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étailRé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étailEternelle 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étailCalcul scientifique précis et efficace sur le processeur CELL
Université P. et M. Curie Master spécialité informatique Calcul scientifique précis et efficace sur le processeur CELL NGUYEN Hong Diep Rapport de stage recherche de master 2 effectué au laboratoire LIP6
Plus en détailPartie 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
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étailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailExécution des instructions machine
Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]
Plus en détailGCOS 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étailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailNe 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étailCompilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plus en détailSpé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étailMachines 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étailInformations 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étailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailSERVEUR 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étailSegmentation d'images à l'aide d'agents sociaux : applications GPU
Segmentation d'images à l'aide d'agents sociaux : applications GPU Richard MOUSSA Laboratoire Bordelais de Recherche en Informatique (LaBRI) - UMR 5800 Université de Bordeaux - France Laboratoire de recherche
Plus en détailHappy 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étailRapport de stage Master 2
Rapport de stage Master 2 Informatique Haute Performance et Simulation, 2 ème année Ecole Centrale Paris Accélération des méthodes statistiques sur GPU Auteur : CHAI Anchen. Responsables: Joel Falcou et
Plus en détailRapport 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étailLe 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!» 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étailCours 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étailCLIENTS 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étailCes 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étailStructure de base d un ordinateur
Structure de base d un ordinateur 1-Définition de l ordinateur L ordinateur est un appareil électronique programmable qui traite automatiquement les informations. Il est constitué de l unité centrale et
Plus en détailTAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES
TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2
Plus en détailHPC 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étailGestion 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étailTVTools 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étailSommaire. 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étailUNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES. THÈSE présentée par :
UNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES Laboratoire d Informatique Fondamentale d Orléans THÈSE présentée par : Hélène COULLON
Plus en détailSystè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étail1. 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