Programmation parallèle sur carte graphique avec OpenCL

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

Download "Programmation parallèle sur carte graphique avec OpenCL"

Transcription

1 Université de Bretagne Occidentale Lab-STICC, UMR 6285 Programmation parallèle sur carte graphique avec OpenCL Emanuel Guével Master 2 LSE Encadré par : Anne Jeannin-Girardon Catherine Dezan Programmation GPGPU avec OpenCL : méthodologie, mesures de performances et implémentation d un essaim au sein d une architecture de système multi-agent existante. 1 er mars 2013

2 Table des matières I Architectures parallèles et outils pour la programmation sur GPU 2 1 Les architectures parallèles et leur programmation Classification de Flynn Architecture des processeurs graphiques Frameworks pour la programmation parallèle Outils de profilage et de débuggage pour OpenCL GDB (GNU Debugger) graphicremedy gdebugger AMD CodeXL Outils Nvidia (CUDA-GDB et Visual Profiler) Synthèse sur les outils disponibles II Implémentation d un algorithme parallèle et mesure de ses performances 11 3 Multiplication de matrices 11 4 Les différentes versions de l algorithme Version séquentielle Version parallèle utilisant la mémoire globale uniquement Version parallèle utilisant la mémoire locale Mesures et interprétation des performances 15 6 Conclusion sur les mesures de performances 17 III Implémentation parallèle d un essaim intelligent 19 7 Systèmes multi-agents Définition Les essaims Intérêt de la programmation parallèle pour ces systèmes

3 8 Étude de l article de E. Passos et al Comportements de l essaim Architecture logicielle existante Le système proies prédateurs Mécanismes de gestion mémoire Implémentations des comportements Ajout des comportements au système proies prédateurs Validation du travail Conclusion sur l implémentation de l essaim 24

4 Introduction Jusqu à 2004, la puissance de calcul des CPU (Central Processing Unit) augmente avec leur vitesse d horloge. Mais à causes des contraintes (échauffement des puces, consommation électrique élevée ), les constructeurs commence à exploiter une voie jusque là laissée de côté (du moins pour les processeurs grand public) : la parallélisation. Les processeurs graphiques ont adopté une architecture parallèle dès le milieu des années 90 [5]. Leur évolution et celle des frameworks pour leur programmation permettent aujourd hui de réaliser des applications génériques (par opposition au rendu graphique). En particulier, la puissance de calcul offerte par les GPU se prête bien à la simulation numérique, notamment dans le cadre distribué des systèmes multi-agents. Si ces systèmes ont une capacité de prédiction faible, ils permettent néanmoins de se placer dans le cadre de l expérimentation, par exemple pour affiner un modèle, déduire des paramètres, réaliser des observations etc. Le travail réalisé lors de ce projet comporte trois axes. Le premier est une étude du matériel mis à disposition (la carte graphique Nvidia GTX 690 récemment acquise par le laboratoire) ainsi que des outils disponibles permettant de le programmer. Le second est la prise en main du framework OpenCL au travers de la programmation d un algorithme parallèle et de l évaluation de ses performances. La troisième partie est l étude et l implémentation parallèle d un système complexe de type essaim au sein d une architecture logicielle existante développée au laboratoire. La programmation sur GPU ne permettant pas l allocation dynamique de la mémoire, cette architecture définie des mécanismes pour gérer la création et la disparition d entités. L essaim implémenté est le cas pratique qui permet de tester ces mécanismes. L essaim est obtenu en définissant les comportements locaux des différentes entités d un système multi-agents. 1

5 Première partie Architectures parallèles et outils pour la programmation sur GPU 1 Les architectures parallèles et leur programmation Cette partie est une introduction à la programmation parallèle. Nous commençons d abord par introduire les différents types d architecture parallèle telles que présentés par Flynn [13], puis nous focalisons cette étude sur les cartes graphiques NVidia, avec en particulier l étude de la GTX 690. Puis des frameworks pour la programmation parallèle sont présentés, notamment pour la programmation de puces graphiques. 1.1 Classification de Flynn Dans un article paru en 1972, Michael Flynn propose une classification des architectures d ordinateurs selon leurs flux d instructions et de données. Selon ces critères, il distingue quatre catégories : SISD (Single Instruction, Single Data), MISD (Multiple Instruction, Single Data), SIMD (Single Instruction, Multiple Data) et MIMD (Multiple Instruction, Multiple Data) (figure 1). Mémoires unique Mémoires Multiples Flux d instructions unique SISD MISD Flux d instructions multiples SIMD MIMD Figure 1 Classification des architecture d ordinateurs selon Flynn La catégorie SISD regroupe les systèmes non parallèles comme ceux comprenant uniquement un processeur mono-cœur. La seconde catégorie, MISD comprend les systèmes exécutant des instructions différentes pour une seule donnée. C est par exemple le cas des architectures pipeline. Cette catégorie utilise le parallélisme uniquement au niveau des instructions. La catégorie de système SIMD utilise le parallélisme au niveau de la mémoire. La dernière catégorie, MIMD, est celle des systèmes distribués et des CPU modernes. Chaque nœud (ou cœur dans le cas des CPU) a accès à une mémoire propre et effectue son traitement de façon indépendante. Dans la suite du rapport, nous nous focalisons sur les GPU, appartenant à la catégorie des SIMD. 2

6 1.2 Architecture des processeurs graphiques Rappel historique Les processeurs graphiques (ou GPU, Graphics Processing Unit) sont des processeurs spécialisés conçus pour accélérer les opérations de rendu graphique, en 2D et en 3D. Ils ont évolué pour effectuer efficacement les opérations comportant de nombreux calculs sur des matrices et des vecteurs, calculs massivement parallèles. L apparition des langages de shaders en est un premier pas vers le GPGPU (General Purpose computing on Graphics Processing Unit). Les shaders sont des programmes prévus pour effectuer des calculs sur des surfaces et sur des pixels affichés à l écran (pour des effets comme le bump mapping ou la réflexion). En tirer parti pour accélérer des traitement calculatoires à finalité non graphique n est pas une tâche aisée, nécessitant des manipulations «de contournement», comme stocker des données dans des textures. Les langages de shaders de haut niveau (Cg, HLSL, GLSL) succèdent au langage assembleur des premiers shaders. On peut vraiment parler de GPGPU quand les notions des shaders propres au rendu graphique (vertex, pixels, textures) disparaissent. C est le cas à partir de 2006 : Nvidia permet alors de programmer sa GeForce 8 en langage C avec sa plateforme de développement Cuda [7]. La première version des spécifications d OpenCL sont publiées par le Khronos Group deux ans plus tard, en 2008 [8] Organisation des unités de calcul et de la mémoire Contrairement aux CPU modernes, dont l architecture permet un parallélisme de tâches, les GPU exploite un parallélisme de données (comme affirmé précédemment, un GPU appartient à la catégorie des SIMD). Un GPU comprend un grand nombre d unités de calcul (3072 pour la carte GTX 690 utilisée lors du projet les spécifications complètes sont disponibles en annexe p. 28). Ces unités sont regroupées en «work-groups». Au sein d un work-group, chaque unité effectue le même traitement sur des données différentes. Les threads sont programmés en groupe et la répartition du travail est effectuée par un composant matériel (il n y a pas besoin de le spécifier explicitement). La mémoire est répartie en trois niveaux : la mémoire privée, propre à une unité de calcul. Elle est de petite taille (de l ordre du kilo octet) et très rapide. la mémoire locale, commune aux unités d un même work-group. Sa 1. les premières cartes permettant l utilisation de vertex et pixel shaders sont la Ge- Force FX de Nvidia et Radeon 9700 d ATI, toutes deux mises sur le marché en 2002 [5] 3

7 taille est plus importante que celle de la mémoire privée mais ses performances sont aussi moins bonnes. la mémoire globale, accessible par chacune des unités. C est la plus grande des mémoires du GPU, et celle qui est la moins performante. Les frameworks de développement fournissent les mécanismes de synchronisation à utiliser pour éviter les problèmes liés à la concurrences Étude du matériel à disposition : la carte GTX 690 Différences entre les architectures Fermi et Kepler La carte mise à disposition étant de la marque Nvidia, nous comparons ici son architecture Kepler avec l architecture précédente, Fermi [3] [4]. FERMI GF100 FERMI GF104 KEPLER GK104 KEPLER GK110 Compute capability Threads per warp Max warps per multiprocessor Max threads per multiprocessor Max thread blocks per multiprocessor 32 bit registers per multiprocessor Max registers per thread Max threads per thread block Shared memory size 16/48K 16/48K 16/32/48K 16/32/48K configurations (bytes) Max X grid dimension Hyper Q No No No Yes Dynamic Parallelism No No No Yes La différence la plus notable est l augmentation générale en nombre de ressources (nombre de threads, de registres, dimensions de la grille). On remarque aussi cette différence en comparant les schémas des deux architectures (figure 2). Une autre différence entre les deux architectures est la possibilité de configurer plus finement la taille de la mémoire locale (afin d en utiliser une partie comme mémoire globale). 4

8 (a) L architecture Fermi (illustration extraite de [3]) (b) L architecture Kepler (illustration extraite de [4]) Figure 2 Schémas des architectures de GPU Nvidia 5

9 Les nouvelles fonctionnalités GPUDirect et Dynamic Parallelism disponibles avec la nouvelle architecture Kepler ne peuvent être utilisée qu avec CUDA et non avec OpenCL. GPUDirect permet les communications sans intermédiaire entre le GPU et les autres périphériques (par exemple la carte réseau). Le cas mis en avant par Nvidia est celui des programmes MPI utilisant CUDA qui pourront désormais envoyer ou recevoir des données du réseau directement dans la mémoire de la carte graphique. Le «parallélisme dynamique» (Dynamic Parallelism) permet quant à lui au GPU de créer de nouvelle tâches. La création de tâches était jusque là effectuée uniquement par le CPU. Cette fonctionnalité devrait permettre de gagner du temps en supprimant des communications entre CPU et GPU. Pour gérer les tâches crées par le CPU et le GPU, une unité matérielle est ajoutée : «l unité de contrôle de la grille» (GMU, ou Grid Management Unit). Elle est chargée de répartir les travaux et de les ordonnancer (mise en pause et reprise). Enfin, la fonctionnalité Hyper-Q rend possible la création de tâches par plusieurs cœurs de CPU sur le même GPU. Nvidia ne précise pas si ces évolutions technologiques sont utilisables avec OpenCL, mais on peut supposer que c est le cas pour Hyper-Q, qui apparaît plus comme une correction que comme une nouveauté. 1.3 Frameworks pour la programmation parallèle Threads Pour réaliser une application parallèle, il est possible d utiliser directement le mécanisme de threads fourni par le système d exploitation. Les threads natifs peuvent partager des données dans le même espace mémoire, ce qui oblige à utiliser des mécanismes de synchronisation comme les mutex ou les sémaphores. C est une solution plutôt contraignante : il faut gérer explicitement les threads pendant toute leur durée de vie. Les threads peuvent être utilisés dans des programmes «classiques» s exécutant sur un CPU MPI La bibliothèque MPI 2 (Message Passing Interface) fournit des mécanismes de communication entre processus, que ceux ci soit lancés sur la même machine ou sur des machines différentes au sein d un même réseau. Les programmes MPI sont lancés avec mpirun, permettant de choisir le nombre de processus à créer

10 1.3.3 OpenMP OpenMP 3 est une API définissant des directives de compilation ainsi qu un ensemble de fonctions pour la programmation parallèle. OpenMP est utilisé sur les systèmes à mémoire partagée. Le code 1 illustre une utilisation simple d OpenMP dans un programme C. La directive de compilation #pragma indique que la boucle for qui suit doit être exécutée en parallèle. La boucle sera divisée en tranche et le travail réparti entre différents threads. #pragma omp parallel for for (i = 0 ; i < ; i++) a[i] = 2 * i ; Code 1 Exemple d utilisation d OpenMP OpenACC et OpenHMPP OpenACC 4 et OpenHMPP 5 (Open Hybrid Multicore Parallel Programming) sont des standards ouverts pour la programmation sur systèmes hétérogènes. Tous deux ont choisi la même approche qu OpenMP, à savoir la programmation parallèle au moyen de directive de compilation incluses dans le code. Les créateurs d OpenACC ont annoncé leur intention de mettre en commun les spécifications d OpenMP avec celles d OpenACC afin qu Open- MP supporte l utilisation d accélérateurs matériels [14]. OpenHMPP est implémenté au sein de compilateurs des sociétés Caps et PathScale. OpenACC sera implémenté dans les compilateurs des sociétés Caps, PGI et Cray. Aucune implémentation gratuite n est évoquée pour le moment OpenCL OpenCL 6 est un standard pour la programmation parallèle sur systèmes hétérogènes. Son intérêt principal est qu il est indépendant de l architecture matérielle. Il est cependant particulièrement bien adapté aux GPU : on retrouve des similarités entre les architecture matérielle des GPU et l abstraction offerte par OpenCL, à la fois dans son modèle d exécution qui réparti les calculs dans une grille et dans modèle mémoire hiérarchique (mémoire globale/locale/ privée)

11 Plusieurs grands constructeurs proposent des implémentations d OpenCL pour CPU et GPU (notamment AMD, Intel, Nvidia, IBM et ARM), et des implémentations pour FPGA, DSP et autres accélérateurs matériels sont prévues 7. OpenCL est composé d une API et d un langage basé sur le C, utilisé pour programmer les opérations à réaliser sur le périphérique compatible. Cette partie du programme est compilée à l exécution pour lui permettre d être indépendante de l architecture sous-jacente et de l implémentation. La dernière version des spécifications OpenCL (version 1.2) apporte plus de flexibilité. Elle introduit notamment la possibilité de diviser un périphérique afin de répartir la charge de travail explicitement (cela permet par exemple de n utiliser qu un cœur d un CPU). Jusqu à présent, les spécifications OpenCL 1.2 ont été implémentées par Intel et AMD Autres frameworks de GPGPU Il existe d autres frameworks de programmation pour processeurs graphiques, tel que Cuda (Nvidia) et ATI Stream (AMD). Néanmoins, ils ont l inconvénient de n être utilisable qu avec le matériel d un constructeur, ce qui limite l utilisation la portabilité des programmes créés. 2 Outils de profilage et de débuggage pour OpenCL Dans cette partie, nous étudions les outils disponibles pour débugger les programmes OpenCL et les profiler. Les outils présentés ont tous été testés lors du projet. 2.1 GDB (GNU Debugger) Le support de GDB pour débugger les kernels OpenCL a été annoncé par Intel [1] et AMD [2] concernant leurs implémentations respectives pour CPU. Toutefois, avec l implémentation d Intel, je n ai pu ni exécuter un kernel pas à pas ni y placer un point d arrêt ou encore lister ses variables. Le débuggage avec GDB sur CPU n a pas pu être testé car je n ai pas de matériel AMD à disposition. 2.2 graphicremedy gdebugger GDEBugger 8 est un outil de débuggage et d analyse des programmes OpenCL aussi bien qu OpenGL. 7. la société Altera a annoncé une implémentation pour FPGA [9], actuellement en cours de développement

12 2.3 AMD CodeXL CodeXL 9 est la suite d outils d AMD pour le développement OpenCL. Il fournit un éditeur de texte ainsi qu un debugger reprenant l interface de gdebugger. Débugger un programme OpenCL avec cet outil n est possible que sur une carte AMD. 2.4 Outils Nvidia (CUDA-GDB et Visual Profiler) Nvidia fournit dans son SDK 10 des programmes pour le débuggage et le profilage des programmes conçus pour ses cartes graphiques. Favorisant en premier lieu leur propre framework de programmation GPGPU, CUDA, les dernières versions de ces outils ne fonctionnent plus avec les applications OpenCL, contrairement à celles des SDK plus anciens. CUDA-GDB Cette version modifiée de GDB permet de débugger les programmes CUDA exécuté sur le GPU. Il permet aussi de consulter des informations sur l état du périphérique, comme par exemple l occupation mémoire. Visual Profiler Cet outil de profilage relève les opérations effectuées sur la carte graphique (transfert mémoire par exemple), et affiche des conseils pour l amélioration des performances. L ancienne version de cet outil fonctionne avec OpenCL mais n affiche pas de piste d amélioration. Il faut interpréter les informations relevées pour en déduire les les optimisations à réaliser

13 Figure 3 Capture d écran de Nvidia Visual Profiler 2.5 Synthèse sur les outils disponibles Peu d outils sont disponibles pour le développement OpenCL. Les outils fournis par les constructeurs sont souvent conçus spécifiquement pour leur matériel. Il reste néanmoins quelques pistes à explorer. GPU Ocelot 11 permet une approche intéressante, bien qu il ne soit pas conçu spécifiquement pour la programmation OpenCL. Cet outil permet d interpréter du code PTX (Parallel Thread Execution), un code assembleur utilisé par les cartes graphiques Nvidia. Ce code PTX est produit par le compilateur Cuda ou à l exécution d un programme OpenCL. Pour récupérer le code PTX à partir d un code OpenCL, on peut le compiler avec clcc 12. Clcc fait appel aux bibliothèques OpenCL fournis par Nvidia. GPU Ocelot peut émuler et débugger le code ainsi généré

14 Deuxième partie Implémentation d un algorithme parallèle et mesure de ses performances Dans cette partie, nous étudions une implémentation d une multiplication de matrices utilisant OpenCL. Ce n est pas tant l aspect algorithmique qui nous intéresse ici mais plutôt le degré de parallélisme que permet le produit de matrices. Nous faisons varier divers paramètres afin d apprécier leur incidence sur les performances de cette implémentation. Les mesures sont effectuées sur un ordinateur doté d un processeur Intel Core i cadencé à 3,40 GHz et de la carte graphique Nvidia GTX 690. Les paramètres qui seront modifiés sont : le périphérique utilisé (CPU ou GPU) ; la stratégie d utilisation de la mémoire (utilisation de mémoire globale uniquement, partitionnement des matrices pour utiliser de la mémoire locale) ; l utilisation du déroulage de boucle. 3 Multiplication de matrices La multiplication de matrices s opère sur deux matrices et ne peut s effectuer que si le nombre de ligne de la première matrice est égal au nombre de colonnes de la seconde nb lignes A = nb colonnes B = n. La valeur de chaque case de la matrice C est calculée en fonction des valeurs de la ligne i correspondante dans la matrice A et de la colonne j de la matrice B tel que C ij = n k=0 A ik B kj (figure 4). 11

15 Wb B Hb col A row C Ha Ha Wa Wb Figure 4 Multiplication de matrices (illustration extraite de [11]) 4 Les différentes versions de l algorithme 4.1 Version séquentielle Dans un premier temps, on implémente une version séquentielle de la multiplication de matrices. Dans cette version, on calcule séquentiellement chaque case de la matrice résultante. Pour calculer une case, on parcourt à la fois la ligne correspondante dans la matrice A et la colonne correspondante dans la matrice B (code 2). for (int i = 0 ; i < Ha ; i++) { // parcours des lignes de A for (int j = 0 ; j < Wb ; j++) { // parcours des colonnes de B } } // calcul de la valeur de la case C ij for (int k = 0 ; k < n ; k++) { C[i][j] += A[i][k] * B[k][j]; } Code 2 Version séquentielle de la multiplication de matrices 12

16 4.2 Version parallèle utilisant la mémoire globale uniquement Pour la version parallèle utilisant OpenCL, chaque case de la matrice résultante est calculée par un work-item. On a donc l équivalent d un thread par case de la matrice d arrivée. Le code 3 est celui du kernel OpenCL de cette version. kernel void matrixmultiply( global float *ina, global float *inb, global float *outc, uint widtha, uint widthb) { // récupération des coordonnées de la case à calculer uint i = get_global_id(1); uint j = get_global_id(0); // calcul de la valeur de la case C ij float cell_value =.0f ; for (uint k = 0 ; k < widtha ; k++) { cell_value += ina[i*widtha + k] * inb[k*widthb + j]; } } // écriture de la valeur de la case en mémoire globale outc[i*widthb + j] = cell_value ; Code 3 Kernel OpenCL pour la multiplication de matrices utilisant la mémoire globale uniquement 4.3 Version parallèle utilisant la mémoire locale Afin d améliorer les performances de l algorithme, il peut être intéressant de faire diminuer le nombre d accès à la mémoire globale en utilisant la mémoire locale, qui est plus rapide. Pour ce faire, on divise la matrice en blocs, comme l illustre la figure 5. Le calcul se fait de manière similaire à la version précédente, sauf qu ici la somme de produits se fait sur les blocs là où elle était faite sur les cases. À la place d itérer sur les cases de la ligne de la première matrice et celles de la colonne de la seconde, on itère sur les blocs. Ces blocs sont des sous-matrices 13

17 blockrow BLOCK_SIZE-1 BLOCK_SIZE qui seront multipliées et additionnées pour donner la valeur du bloc résultat de la matrice d arrivée. Nous avons donc divisé la multiplication de matrices en plusieurs multiplication de matrices plus petites. Chaque multiplication Chapter 3. Programming Interface de blocs utilise de la mémoire locale qui est copiée depuis la mémoire globale. blockcol A B C 0 row BLOCK_SIZE-1 0 col C sub BLOCK_SIZE BLOCK_SIZE A.height B.height BLOCK_SIZE BLOCK_SIZE BLOCK_SIZE A.width B.width Figure 3-2. Matrix Multiplication with Shared Memory Figure 5 Division des matrices en blocs (illustration extraite de [12]) Page-Locked Host Memory The runtime provides functions to allow the use of page-locked (also known as pinned) host memory (as opposed to regular pageable host memory allocated by malloc()): cudahostalloc() and cudafreehost() allocate and free page-locked host memory; cudahostregister() page-locks a range of memory allocated by malloc() (see reference manual for limitations). Using page-locked host memory has several benefits: Le code de cette version est disponible en annexe p.30. Copies between page-locked host memory and device memory can be performed concurrently with kernel execution 14 for some devices as mentioned in Section 3.2.5; On some devices, page-locked host memory can be mapped into the address space of the device, eliminating the need to copy it to or from device memory as detailed in Section ;

18 5 Mesures et interprétation des performances Temps d'exécution de la multiplication de matrices (s) cpu_global cpu_local2 cpu_local8 gpu_global gpu_local2 gpu_local Côté des matrices carrées multipliées (cases) seq Figure 6 Temps d exécution des différentes versions de la multiplication de matrices Le graphique de la figure 6 illustre les temps d exécution de la multiplication de matrices obtenus avec différents paramètres : matériel utilisé (CPU ou GPU), version séquentielle ou parallèle avec OpenCL et utilisation de mémoire locale. La figure 7 montre les accélérations obtenues avec les versions utilisant OpenCL. Fréquence d horloge Nombre de threads CPU Intel Core i GHz 8 Bi-GPU Nvidia GTX GHz Figure 8 Matériel utilisé pour les mesures Le matériel utilisé pour effectuer ces mesures est présenté sur la figure 6. Bien que la carte graphique dispose de deux GPU, un seul est utilisé pour les mesures. La première courbe (seq, en pointillés) présente le temps d exécution pour une version séquentielle du programme. Les autres courbes sont issues 15

19 45 Accélération par rapport à la version séquentielle cpu_global cpu_local2 cpu_local4 cpu_local8 cpu_local16 cpu_local Côté des matrices carrées multipliées (cases) (a) Accélérations sur le CPU 3500 Accélération par rapport à la version séquentielle gpu_global gpu_local2 gpu_local4 gpu_local8 gpu_local16 gpu_local Côté des matrices carrées multipliées (cases) (b) Accélérations sur le GPU Figure 7 Accélérations des versions OpenCL par rapport à la version séquentielle 16

20 des exécutions de la version OpenCL du programme. Les trois courbes suivantes montrent les exécutions sur CPU et les trois dernières courbes celles sur GPU. L activation du déroulage de boucle n apparaît pas dans ce graphique car je n ai pas relevé d impact significatif de cette option sur les temps d exécution lors de mes tests. On peut distinguer deux types d exécutions parmi celles utilisant OpenCL : l un avec utilisation de mémoire locale, l autre sans. On remarquera que la version séquentielle est celle qui prend le plus de temps. Elle est 7,76 fois plus longue pour multiplier deux matrices de taille que la version qui la suit (cpu_local2). Dans le cas des versions OpenCL, le GPU est toujours plus performant que le CPU (entre 7 et 60 fois plus rapide pour multiplier des matrices de ). La mémoire locale permet ne permet pas d augmenter les performances lorsqu elle est mal utilisée. Si elle est sous-dimensionnée, comme ici avec les versions cpu_local2 et gpu_local2 (utilisant un bloc de mémoire locale de taille 2 2), les performances peuvent être moins bonnes que celles de la version utilisant de la mémoire globale uniquement (2 fois moins bonnes pour le CPU, 15 fois moins bonnes pour le GPU pour des matrices ). À l inverse, un gain est visible lorsque la mémoire locale est utilisée à bon escient. Ainsi, pour des matrices , cpu_local8 est 1,5 fois plus rapide que cpu_simple et gpu_local32 est 3,8 fois plus rapide que gpu_simple. Les courbes des accélérations nous apprennent que les versions OpenCL sont plus performantes que la version séquentielle lorsque la taille de matrices à multiplier est supérieure à Sur le graphique décrivant les accélérations obtenues sur CPU, on voit que la courbe cpu_local8 est au-dessus des autres courbes des versions utilisant la mémoire locale : les meilleures performances sont atteintes avec des blocs de 8 8 et sont légèrement inférieures avec des blocs de taille ou La version utilisant la mémoire globale semble tirer parti de l absence de transfert vers la mémoire locale : la RAM étant la mémoire globale du CPU, aucun transfert supplémentaire n est nécessaire. Il semble délicat de tirer des conclusions sans une étude plus approfondie de la façon dont est exécutée le programme OpenCL sur le CPU. Les courbes décrivant l accélération GPU sont par contre surprenantes : l accélération est élevée et augmente avec les matrices plus grandes (elle atteint une valeur de 3012,67 pour la version avec bloc de mémoire locale de pour le produit de matrices de taille ). 6 Conclusion sur les mesures de performances Nous avons pu voir dans cette première partie que l utilisation du GPU pour réaliser des calculs fortement parallèles permettait d améliorer les per- 17

21 formances de façon drastique. Toutefois, il ne faut pas perdre de vue l architecture matérielle utilisée : une tentative d optimisation peut en définitive dégrader les performances d un programme. De façon générale (cela ne s applique pas qu aux seuls processeurs graphiques), une bonne connaissance de l architecture est requise afin de programmer pour la performance. 18

22 Troisième partie Implémentation parallèle d un essaim intelligent Cette partie décrit l implémentation des comportements d un essaim au sein de l architecture logicielle développée au laboratoire. Dans un premier temps, nous donnons une définition des systèmes multi-agents. Ensuite, nous étudions un article de E. Passos décrivant la réalisation d un essaim sur GPU. Après une description de l architecture logicielle existante, nous abordons la mise en place de l essaim. Enfin, nous verrons des éléments permettant de valider le programme obtenu. 7 Systèmes multi-agents 7.1 Définition Un système multi-agents (abrégé SMA) est un système distribué composé d agents indépendants. Un agent est un élément de programme qui exécute des tâches. Chaque agent peut effectuer des actions en fonction de ses objectifs et de la perception limitée qu il a de son environnement. Le but de cette approche est d obtenir un comportement global complexe en modélisant un ensemble de comportements locaux simples. Selon les systèmes mis en place, les agents peuvent interagir avec leur environnement et communiquer entre eux, afin de se coordonner et de coopérer. Les systèmes multi-agents sont utilisés à la fois pour la simulation de l interaction d entités autonomes et pour le développement de systèmes distribués complexes. 7.2 Les essaims Ce que nous appelons ici essaim est un type particulier de système multiagents au sein duquel les entités effectuent des déplacements en groupes similaires à ceux que l on peut observer dans la nature, chez une grande variété d espèces animales. Une implémentation d essaim a été produite par Craig Reynolds en 1987 [16]. Le matériel qu il a utilisé à l époque (une machine Lisp), mettait 95 secondes à calculer une image pour un groupe de 80 individus. 19

23 7.3 Intérêt de la programmation parallèle pour ces systèmes Comme les agents d un système multi-agents sont autonomes, ils effectuent la plupart de leurs traitements de façon indépendante des autres agents. Implémenter un tel système en parallèle est donc une idée assez naturelle. De plus, le modèle d architecture SIMD des GPU convient bien à ces systèmes car ils comportent un grand nombre d agents qui réagissent de la même façon. 8 Étude de l article de E. Passos et al. Cet article [15], écrit par Erick Baptista Passos et sept autres personnes, décrit l implémentation d un essaim parallèle en deux dimensions sur GPU avec le framework CUDA. Dans cet essaim, les agents sont différenciés par un type qui représente une espèce d animal. La description de l implémentation comporte deux partie. La première est celle des mécanismes utilisés pour atteindre des performances permettant au système de gérer un million d agents tout en gardant un rendu graphique fluide. Cette partie est mise de côté car on souhaite conserver les mécanismes de l architecture existante. Une seconde partie de l article traite des comportements donnés aux agents. Nous portons plus d intérêt à celle-ci car ces comportements sont repris pour implémenter un essaim dans l architecture de SMA développée au laboratoire. 8.1 Comportements de l essaim Parmi les comportements implémentés dans l essaim de l article, il y a d abord le regroupement. Ce comportement fait qu un agent va se diriger vers les autres agents du même type. Il est mis en place en faisant une moyenne des positions des agents voisins détectés. Le regroupement est multiplié par un facteur défini pour le type d agent et par la distance à la position calculée, afin d influencer plus fortement les agents éloignés du groupe. Le second comportement évoqué est la répulsion. Elle permet d éviter les collisions trop fréquentes entre agents en contrebalançant la tendance au regroupement. Pour ce faire, La distance entre un agent et ses voisins est calculée, puis multipliée par un facteur de répulsion, là aussi défini selon le type. Le vecteur obtenu est ajouté au vecteur mouvement de l agent. Les deux autres comportements sont le suivi de la direction des voisins et le suivi de leader. Pour le premier, un agent est influencé par la direction des voisins du même type qu il tente de copier. Pour le dernier comportement, un leader est désigné par type d agent. Ce leader n est pas influencé par 20

24 le regroupement : il se déplace dans l environnement en ayant une position à atteindre. Le leader attire le agents du même type avec un facteur plus important que celui du regroupement. Chaque agent a un champ de vision, caractérisé par un angle, une direction et un distance. Seul les voisins présents dans le cône de vision ainsi formé sont considérés comme détectés et pris en compte lors du calcul des déplacements. 9 Architecture logicielle existante L application développée au laboratoire a servi de base au travail réalisé lors du projet. C est une architecture de SMA parallèle utilisant OpenCL. Elle gère des entités dans un environnement en deux dimensions. Chaque agent est géré par un work-item OpenCL. Chacun a donc un thread séparé. L architecture dispose aussi de fonctions de rendu graphique (utilisant OpenGL), ce qui permet de visualiser les positions des agents dans l environnement. 9.1 Le système proies prédateurs Un système proies/prédateurs est déjà en place dans cette architecture. Dans ce système, il y a deux types d entités : les proies et les prédateurs. Elles ont un comportement différents : les proies se reproduisent de façon continue alors que les prédateurs ne peuvent se reproduire que s ils ont préalablement absorbé une proie en entrant en contact avec elle. Toutes les entités se déplacent en suivant une marche aléatoire. Chacun des agents à une durée de vie limitée. On cherche à modifier ce système en y ajoutant les comportements d un essaim pour permettre de valider les mécanismes de gestion mémoire de l architecture. 9.2 Mécanismes de gestion mémoire OpenCL ne permet pas l allocation dynamique de la mémoire. Le nombre d agents en mémoire est fixe, ainsi que l espace occupé par les données associées, alors que la simulation requiert de gérer un nombre d entités variable au cours du temps. Les structures de données sont dimensionnées pour un nombre fixe d agents (c est le nombre maximal d agents présents simultanément dans le système). Pour permettre la création et la disparition des entités, l état de chaque agent est stocké : il peut ainsi être désactivés, auquel cas l entité n est pas prise en compte lors de la simulation. À la création d une nouvelle entité, un agent précédemment désactivé est réactivé. La recherche d un agent désactivé est problématique ici car elle ne se fait pas en 21

25 un temps constant. Le système a deux méthodes pour gérer la création d entités : une méthode stochastique et une méthode effectuant au préalable un tri afin de défragmenter l espace mémoire des données associées aux agents. Pour tester ces mécanismes, l essaim implémenté doit permettre une grande variation dans le nombre d entités, comme le système proies prédateurs existant, et doit demander plus de temps de calcul que celui-ci car on ne veut pas que la gestion de la mémoire soit le traitement qui prenne le plus de temps au système. 10 Implémentations des comportements Cette partie traite des modifications apportées au système proies prédateurs pour y mettre en place un essaim. Comme nous l avons vu, cet essaim doit respecter des contraintes pour permettre de tester les mécanismes de gestion mémoire de l architecture logicielle Ajout des comportements au système proies prédateurs Figure 9 Capture d écran de l essaim implémenté Les comportements ajoutés au système proies prédateurs sont le regroupement par type d entité et la répulsion. Les facteurs de regroupement sont défini par type d agents. Le regroupement est obtenu comme dans l article de E. Passos en calculant une position moyenne des voisins d un agent et en orientant cet agent vers la position obtenue. Un coefficient de regroupement négatif permet d indiquer la répulsion. La position moyenne est calculée en faisant la moyenne des positions des voisins avec pour chacun d eux le facteur de regroupement en coefficient. Si la somme des coefficients est positive, l agent est attiré par la position obtenue. Si la somme est négative, l agent va au contraire fuir cette position. La répulsion implémentée diffère de celle de l article car elle ne garantie pas une distance minimale entre les agents. 22

26 On peut voir les entités groupées sur la figure 9. C est une capture d écran de l application. Chaque point de couleur est un agent : les points verts sont les proies et les points rouges les prédateurs Validation du travail Proies Predateurs 4000 nb entités pas de simulation Figure 10 Évolution des populations des proies et des prédateurs au cours du temps Afin de confirmer que le système mis en place répond bien au critères attendus en terme d évolution des populations d entités, nous procédons à des mesures, dont le résultat est visible à la figure 10. Les courbes de ce graphique représentent l évolution du nombre d entités (proies et prédateurs). On remarque tout d abord que les tailles des populations sont plutôt stables malgré des oscillations importantes, avec les proies 4 à 5 fois plus nombreuses que les prédateurs. De plus, on voit que les populations sont liées : lorsqu il y a une baisse du nombre de proies, le nombre de prédateurs augmente. Cela s explique par le fait que les entités évoluent en vase clos : les prédateurs ne peuvent se reproduire qu en absorbant des proies, ce qui a un impact sur les deux populations. Ces courbes sont un élément de validation du système : on peut voir que nous avons une grande fluctuation dans les tailles des populations. Ces variations permettront de tester les mécanismes de gestion mémoire de l architecture. 23

27 11 Conclusion sur l implémentation de l essaim Il était demandé d implémenter un essaim tout en conservant l allure de l évolution des populations du système proies prédateurs existant. L essaim mis en place répond au objectifs. On a bien observé des variations importantes qui devraient permettre de valider les mécanismes de gestion mémoire de l architecture. De futurs travaux sont envisageables. On peut d abord imaginer ajuster les paramètres de simulation afin d obtenir une évolution des populations différente (durée de vie, reproduction, coefficient de regroupement). On peut aussi envisager de mettre en place d autre comportements, à commencer par le champ de vision et le suivi de leader, ce qui permettrait de rendre la simulation plus intéressante. Enfin, il serait intéressant d évaluer les performances du système et celles de la carte GTX 690. Nous pourrions examiner le comportement du système à forte charge en simulant des populations de taille plus importantes, de l ordre du million d entités. Nous pourrions également observer l impact des mécanismes de gestion mémoire sur les performances, lors de l utilisation d un seul des mécanismes comme lors de leur utilisation conjointe, ce qui donnerai le moyen de procéder à des ajustements. J ai pu constater un temps d exécution du système multi-agents diminué lors de l utilisation de la carte GTX 690 par rapport à une carte de milieu de gamme (une Nvidia GT 6950) ; effectuer des mesures permettrait d estimer plus formellement l attrait de la carte GTX 690 pour ce type de système gourmand en ressources et en temps de calcul. 24

28 Table des figures 1 Classification des architecture d ordinateurs selon Flynn Schémas des architectures de GPU Nvidia Capture d écran de Nvidia Visual Profiler Multiplication de matrices Division des matrices en blocs Temps d exécution des différentes versions de la multiplication de matrices Matériel utilisé pour les mesures Accélérations des versions OpenCL par rapport à la version séquentielle Capture d écran de l essaim implémenté Évolution des populations des proies et des prédateurs au cours du temps Table des codes 1 Exemple d utilisation d OpenMP Version séquentielle de la multiplication de matrices Kernel OpenCL pour la multiplication de matrices utilisant la mémoire globale uniquement Kernel OpenCL pour la multiplication de matrices utilisant la mémoire locale

29 Références [1] «Intel SDK for OpenCL Applications 2013 Beta Release Notes». Intel Software. [En ligne]. (consultée le 4 février 2013) intel-sdk-for-opencl-applications-2013-beta-release-notes [2] «Debugging Applications». AMD Developper Central. [En ligne]. (consultée le 4 février 2013) opencl-zone/programming-in-opencl/debugging-applications [3] «Fermi Compute Architecture White Paper». Nvidia Developer Center. [En ligne] (consulté le 22 janvier 2013) NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf [4] «Kepler Compute Architecture White Paper». Nvidia Developer Center. [En ligne] (consulté le 22 janvier 2013) NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf [5] McClanahan, Chris. «History and Evolution of GPU Architecture». [En ligne] (consulté le 13 février 2013) gpu-hist-paper.pdf [6] Rege, Ashu. «An Introduction to Modern GPU Architecture» [En ligne] (consulté le 13 février 2013) TDCI_Arch.pdf [7] Buck, Ian. «The Evolution of GPU for General Purpose Computing». [En ligne] (consulté le 13 février 2013) pdf [8] «The Khronos Group Releases OpenCL 1.0 Specification». [En ligne]. 9 décembre (consulté le 13 février 2013) [9] «Altera Announces Industry s First OpenCL Program for FPGAs» [En ligne] (consulté le 14 février 2013) products/nr-opencl.html [10] «GeForce GTX 690 Specifications» [En ligne]. (consulté le 14 février 2013). geforce-gtx-690/specifications 26

30 [11] Gaster B., Howes L., Kaeli D., Mistry P. et Schaa D., «Heterogeneous Computing with OpenCL», Elsevier Science, ISBN , [12] «Cuda C Programming Guide» [En ligne] (consulté le 14 février 2013). pdf [13] Flynn, Michael. «Some Computer Organizations and Their Effectiveness». IEEE Transactions on Computers, Vol. C [14] «How does the OpenACC API relate to OpenMP API?». OpenACC FAQ. [En ligne]. (consulté le 18 février 2013). [15] Passos E., Joselli M., Zamith M., Rocha J., Montenegro A., Clua E., Conci A., Feiji B., «Supermassive crowd simulation on GPU based on emergent behavior», dans Proceeding of the VII Brazilian Symposium on Computer Games and Digital Entertainement, p , [16] Reynolds C., «Flocks, Herds, and Schools : A Distributed Behavioral Model»

31 Annexes Spécifications de la carte GTX 690 de Nvidia [10] GTX 690 GPU Engine Specs CUDA Cores 3072 Base Clock (MHz) 915 Boost Clock (MHz) 1019 Texture Fill Rate (billion/sec) 234 GTX 690 Memory Specs Memory Speed (Gbps) 6.0 Standard Memory Config 4096 MB (2048 MB per GPU) GDDR5 Memory Interface Width 512-bit (256-bit per GPU) Memory Bandwidth (GB/sec) 384 GTX 690 Support OpenGL 4.2 Bus Support PCI Express 3.0 Certified for Windows 7 Yes Supported Technologies 3D Vision, 3D Vision Surround, CUDA, DirectX 11, PhysX, SLI, TXAA, Adaptive VSync, GPU Boost, FXAA SLI Options Quad Display Support Multi Monitor Maximum Digital Resolution Maximum VGA Resolution HDCP HDMI Standard Display Connectors Audio Input for HDMI 4 displays 4096x x1536 Yes Yes (via dongle) Two Dual Link DVI-I. One Dual link DVI-D. One Mini-Displayport 1.2 Internal 28

32 GTX 690 Graphics Card Dimensions Length Height Width 11.0 inches inches Dual-slot Thermal and Power Specs Maximum GPU Tempurature (in C) Maximum Graphics Card Power (W) Minimum System Power Requirement (W) Supplementary Power Connectors 98 C 300 W 650 W Two 8-pin 3D Vision Ready 3D Blu-Ray 3D Gaming 3D Vision Live (Photos and Videos) Yes Yes Yes 29

33 Code de la multiplication avec OpenCL utilisant la mémoire locale kernel void matrixmultiplysh( const global float *ina, const global float *inb, global float *outc, const uint widtha, const uint widthb) { // Coordonnées globales uint gidx = get_global_id(0); uint gidy = get_global_id(1); // Coordonnées du workgroup uint gpidx = get_group_id(0); uint gpidy = get_group_id(1); // Coordonnées locales uint lidx = get_local_id(0); uint lidy = get_local_id(1); uint n = get_num_groups(0); // Espace utilisé en mémoire locale local float suba[blocksize * BLOCKSIZE]; local float subb[blocksize * BLOCKSIZE]; float sum = 0 ; // Pour chaque groupe de l'espace d'index for (int k = 0 ; k < n ; k++) { // Copie des données dans la mémoire locale suba[lidy*blocksize + lidx] = ina[widtha*(blocksize*k + lidy) + BLOCKSIZE*gpIdX + lidx]; subb[lidy*blocksize + lidx] = inb[widthb*(blocksize*gpidy + lidy) + BLOCKSIZE*k + lidx]; // Synchronisation: toutes les données doivent avoir été copiées // avant de continuer barrier(clk_local_mem_fence); // Multiplication des sous matrices for (int i = 0 ; i < BLOCKSIZE ; i++) { sum += suba[blocksize*i + lidx] * subb[blocksize*lidy + i]; } } // Copie du résultat dans outc outc[widthb*gidy + gidx] = sum ; } Code 4 Kernel OpenCL pour la multiplication de matrices utilisant la mémoire locale 30

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

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

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

. 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

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 à 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

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

Options indispensables, fortement conseillées pour démarrer sans soucis

Options indispensables, fortement conseillées pour démarrer sans soucis Boitier Medion Akoya Processeur Intel Core I3-4160 3.6Ghz 4 Go DDR3 SDRAM Graveur DVD DL x16, Lecteur de carte 4 en 1 4xUSB 2.0 / 2xUSB 3.0 / HDMI VGA-DVI Nvidia GeForce GTX750 1Go DDR5 HDD 1 To SATA Offre

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

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

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

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

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

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

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel Software and Hardware Datasheet / Fiche technique du logiciel et du matériel 1 System requirements Windows Windows 98, ME, 2000, XP, Vista 32/64, Seven 1 Ghz CPU 512 MB RAM 150 MB free disk space 1 CD

Plus en détail

Génération de code binaire pour application multimedia : une approche au vol

Génération de code binaire pour application multimedia : une approche au vol Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation

Plus en détail

État de l art des simulations multi-agents sur GPU

État de l art des simulations multi-agents sur GPU État de l art des simulations multi-agents sur GPU Emmanuel Hermellin Fabien Michel Jacques Ferber emmanuel.hermellin@lirmm.fr fmichel@lirmm.fr ferber@lirmm.fr LIRMM - Laboratoire Informatique Robotique

Plus en détail

Vers du matériel libre

Vers du matériel libre Février 2011 La liberté du logiciel n est qu une partie du problème. Winmodems Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les

Plus en détail

Caractéristiques principales:

Caractéristiques principales: Powered by AndoridTM4.1 Jelly Bean Archos introduit sa nouvelle tablette ChildPad: l ARCHOS 80 CHILDPAD. Equipée de la dernière version d Android Jelly Bean, cette tablette de 8 a spécialement été conçue

Plus en détail

Découvrez les Nouveautés Février 2010 du Catalogue PC Pack PRO

Découvrez les Nouveautés Février 2010 du Catalogue PC Pack PRO Découvrez les Nouveautés Février 2010 du Catalogue PC Pack PRO PC Acer Mini : 990 DH TTC Processeur Intel Core ATOM N270 Mémoire Vive 512Mo Disque Dur 8 Go Lecteur de cartes MEMOIRE 5-IN-1 Webcam intégré

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

Portable Dell Alienware M18X

Portable Dell Alienware M18X Portable Dell Alienware M18X La meilleure expérience de jeu mobile de l univers Prenez le dessus sur vos ennemis grâce aux cartes graphiques mobiles les plus puissantes d Alienware. Des graphismes époustouflants

Plus en détail

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés Potentiels de la technologie FPGA dans la conception des systèmes Avantages des FPGAs pour la conception de systèmes optimisés Gérard FLORENCE Lotfi Guedria Agenda 1. Le CETIC en quelques mots 2. Générateur

Plus en détail

PACKZ System Requirements. Version: 2015-05-27. Version: 2015-05-27 Copyright 2015, PACKZ Software GmbH. 1

PACKZ System Requirements. Version: 2015-05-27. Version: 2015-05-27 Copyright 2015, PACKZ Software GmbH. 1 PACKZ System Requirements Version: 2015-05-27 Copyright 2015, PACKZ Software GmbH. All rights reserved.this manual may not be copied, photocopied, reproduced, translated, or converted to any electronic

Plus en détail

StruxureWare Power Monitoring v7.0. La nouvelle génération en matière de logiciel de gestion complète d énergie

StruxureWare Power Monitoring v7.0. La nouvelle génération en matière de logiciel de gestion complète d énergie StruxureWare Power Monitoring v7.0 La nouvelle génération en matière de logiciel de gestion complète d énergie Évolution des deux plate-formes originales Power Monitoring v7.0 SMS ION Enterprise 2012 Struxureware

Plus en détail

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour

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

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans

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

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

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

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

& 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

Diffusez et enregistrez vos réunions en direct Richmedia SYSTEM

Diffusez et enregistrez vos réunions en direct Richmedia SYSTEM Diffusez et enregistrez vos réunions en direct Richmedia SYSTEM empreinte.com info@empreinte.com 8, passage brulon 75012 Paris - Tél Tel : 01 : 58 +33 700 700 (0) Siret 158 : 398700 478 941700 1/8 La solution

Plus en détail

Systèmes Multi-Agents et GPGPU : état des lieux et directions pour l avenir

Systèmes Multi-Agents et GPGPU : état des lieux et directions pour l avenir Systèmes Multi-Agents et GPGPU : état des lieux et directions pour l avenir Emmanuel Hermellin a emmanuel.hermellin@lirmm.fr Fabien Michel a fmichel@lirmm.fr Jacques Ferber a ferber@lirmm.fr a LIRMM -

Plus en détail

Ordinateur portable GAMER - GE620DX

Ordinateur portable GAMER - GE620DX GAMER GE620DX ESATA Intel Core I72670QM 640 Go Nvidia GE Force GT555 2Go dédiés En 3.0 1x VGA HDMI ce GAMER GE60 ESATA Intel Core I53210M 640 Go Nvidia GE Force GT555 2Go dédiés 3.0 1x VGA HDMI GAMER GT60

Plus en détail

Robot WIFIBOT Lab V3. 4 roues motrices

Robot WIFIBOT Lab V3. 4 roues motrices 4 roues motrices Lab V3 Robot WIFIBOT Lab V3 Architecture modulaire et ouverte Contrôlable en RS232 ou en Wifi PC x86 embarqué avec une image Xpe ou Linux Ubuntu Le Wifibot Lab est une plate forme robotique

Plus en détail

Windows Server 2008. Chapitre 1: Découvrir Windows Server 2008

Windows Server 2008. Chapitre 1: Découvrir Windows Server 2008 Windows Server 2008 Chapitre 1: Découvrir Windows Server 2008 Objectives Identifier les caractéristiques de chaque édition de Windows Server 2008 Identifier les caractéristiques généraux de Windows Server

Plus en détail

Logiciel Libre & qualité. Présentation

Logiciel Libre & qualité. Présentation Logiciel Libre & qualité Alain RENAULT Grégory SERONT Présentation Alain RENAULT Cetic (2001) Responsable des projets Qualité micro-évaluation évaluations OWPL accompagnements en entreprise FUNDP (1998-2001)

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 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

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

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image IN52-IN54 A2008 Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image Etudiants : Nicolas MONNERET Alexandre HAFFNER Sébastien DE MELO Responsable : Franck GECHTER Sommaire

Plus en détail

Calcul multi GPU et optimisation combinatoire

Calcul multi GPU et optimisation combinatoire Année universitaire 2010 2011 Master recherche EEA Spécialité : SAID Systèmes Automatiques, Informatiques et Décisionnels Parcours : Systèmes Automatiques Calcul multi GPU et optimisation combinatoire

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

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par. École Doctorale d Informatique, Télécommunications et Électronique de Paris THÈSE présentée à TÉLÉCOM PARISTECH pour obtenir le grade de DOCTEUR de TÉLÉCOM PARISTECH Mention Informatique et Réseaux par

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

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

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

Catalogue des stages Ercom 2013

Catalogue des stages Ercom 2013 Catalogue des stages Ercom 2013 Optimisations sur Modem LTE Poste basé à : Caen (14) Analyse et optimisation des performances des traitements réalisés dans un modem LTE. - Profiling et détermination des

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

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

Prérequis réseau constructeurs

Prérequis réseau constructeurs Prérequis réseau constructeurs - Guide de configuration du réseau Page 2 - Ports utilisés - Configuration requise - OS et navigateurs supportés Page 4 Page 7 Page 8 Guide de configuration du réseau NB:

Plus en détail

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud Grid and Cloud Computing Problématique Besoins de calcul croissants Simulations d'expériences coûteuses ou dangereuses Résolution de

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

La Forge INRIA : bilan et perspectives. Hervé MATHIEU - 11 mai 2010

La Forge INRIA : bilan et perspectives. Hervé MATHIEU - 11 mai 2010 1 La Forge INRIA : bilan et perspectives Hervé MATHIEU - 11 mai 2010 Le plan 2 La Forge (Quoi, Quand, Comment) Les chiffres de la Forge INRIA Un exemple de projet Bilan/Perspectives Conclusion Qu'est ce

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

Une méthode de conception de systèmes sur puce

Une méthode de conception de systèmes sur puce École thématique ARCHI 05 Une méthode de conception de systèmes sur puce (de l intégration d applications) Frédéric PÉTROT Laboratoire TIMA Institut National Polytechnique de Grenoble Frédéric Pétrot/TIMA/INPG

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

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

Perspectives en matière de portails géographiques et de 3D

Perspectives en matière de portails géographiques et de 3D Perspectives en matière de portails géographiques et de 3D version du Géoportail de l IGN Aurélien Barbier-Accary (Atos Worldline) et Frédéric Rouas (Diginext) Un groupement d expertises Depuis 2006 et

Plus en détail

CONTEC CO., LTD. Novembre 2010

CONTEC CO., LTD. Novembre 2010 La gamme CONTEC CONTEC CO., LTD. Novembre 2010 1 Agenda Introduction Data acquisition and control Data Communication Expansion chassis and accessory Distributed I/O and media converter Stainless steel

Plus en détail

Ordinateur Génération

Ordinateur Génération Ns faisons le montage d ordinateurs avec des pièces de qualité selon vos besoins. Voici quelques suggestions. Ordinateur Génération Carte mère Asus H61M-E, 2X DDR3, USB 2.0, PCIE16X, PCIE, VGA Mémoire

Plus en détail

Exigences système Commercial & Digital Printing

Exigences système Commercial & Digital Printing Exigences système OneVision Software AG Sommaire Speedflow Check 10.0, Speedflow Check Plus 10.0, Speedflow Edit 10.0 (Windows),... 2 Speedflow Recompose 10.0...2 Speedflow Edit 10.0 (Macintosh OSX)...2

Plus en détail

NOVLAND. production. Présente TMC. transmedia catalogue air / touch

NOVLAND. production. Présente TMC. transmedia catalogue air / touch NOVLAND production Présente TMC transmedia catalogue air / touch Novland Sàrl est une société de production active dans la création de contenu audiovisuel multiplateforme pour l'ensemble des canaux de

Plus en détail

*Offre limitée au stock disponible - Prix affichés basés sur une TVA française de 19.6%.

*Offre limitée au stock disponible - Prix affichés basés sur une TVA française de 19.6%. ASUS X54L-SX021V - Intel Pentium Dual-Core B940 4 Go 320 Go 15.6" LED Graveur DVD Wi-Fi N Webcam Windows 7 Premium 64 bits (garantie constructeur 1 ans) 499 TTC Le meilleur d'asus à prix optimisé! Choisissez

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

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi Thèse High Performance by Exploiting Information Locality through Reverse Computing Présentée et soutenue publiquement le 21 décembre 2011 par Mouad Bahi pour l obtention du Doctorat de l université Paris-Sud

Plus en détail

Les mésocentres HPC àportée de clic des utilisateurs industriels

Les mésocentres HPC àportée de clic des utilisateurs industriels Les mésocentres HPC àportée de clic des utilisateurs industriels Université de Reims Champagne-Ardenne (URCA) Centre de Calcul ROMEO Multidisciplinary university more than 22 000 students a wide initial

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

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution @promt Office 8.0 Description abrégée Spécifiquement conçu pour la maison et les petites entreprises Traduction de documents, de courriers électroniques et de messages instantanés ICQ Traduction de pages

Plus en détail

Solutions de Virtualisation du poste de travail. ViewSonic vous présente le poste de travail virtuel du futur

Solutions de Virtualisation du poste de travail. ViewSonic vous présente le poste de travail virtuel du futur Solutions de Virtualisation du poste de travail ViewSonic vous présente le poste de travail virtuel du futur Une gamme complète pour la Virtualisation du poste de travail Fort de 25 ans d'expérience en

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

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en dé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

Rendu temps réel de mer et de nuages

Rendu temps réel de mer et de nuages Rendu temps réel de mer et de nuages Linares Antonin, Boyer Julien 17 décembre 2008 1 Résumé Nous allons traiter dans ce document les différentes méthodes explorées afin de parvenir à un rendu en temps

Plus en détail

Acer Aspire 7520G-402G32Mi Turion TL58 17"

Acer Aspire 7520G-402G32Mi Turion TL58 17 Acer Aspire 7520G-402G32Mi Turion TL58 17" Système d'exploitation Windows authentique est un logiciel original faisant l'objet d'une licence valide et installé de manière légale. Pour en savoir plus sur

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

PDF created with pdffactory Pro trial version www.pdffactory.com

PDF created with pdffactory Pro trial version www.pdffactory.com BORDEREAU DES PRIX DETAIL ESTIMATIF Appel d'offre n 05/204 Lot n : Achat de matériel Informatique Prix Unitaires en dhs (Hors T.V.A.) Prix total N ART. Désignation des prestations Quantité En chiffres

Plus en détail

LA MISSION D'AMD 2 L'HISTOIRE D'AMD 2014

LA MISSION D'AMD 2 L'HISTOIRE D'AMD 2014 LA MISSION D'AMD Être le meilleur concepteur et intégrateur de solutions technologiques personnalisées et innovantes permettant aux utilisateurs de repousser les limites du possible 2 L'HISTOIRE D'AMD

Plus en détail

Module.NET 3 Les Assemblys.NET

Module.NET 3 Les Assemblys.NET Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly

Plus en détail

Les Bonnes Affaires de Juillet / Aout 2015

Les Bonnes Affaires de Juillet / Aout 2015 Offres valables jusqu au samedi 29/08/2015 Les Bonnes Affaires de Juillet / Aout 2015 Les Bonnes Affaires de juillet/aout 2015 - ACTUAL COMPUTER 73 Portable Lenovo B50-30 MCA 3WFR Lenovo B50-30 MCA 3WFR

Plus en détail

Application de K-means à la définition du nombre de VM optimal dans un cloud

Application de K-means à la définition du nombre de VM optimal dans un cloud Application de K-means à la définition du nombre de VM optimal dans un cloud EGC 2012 : Atelier Fouille de données complexes : complexité liée aux données multiples et massives (31 janvier - 3 février

Plus en détail

Pré-requis installation

Pré-requis installation Pré-requis installation Version 2.5 TELELOGOS - 3, Avenue du Bois l'abbé - Angers Technopole - 49070 Beaucouzé - France Tel. +33 (0)2 4 22 70 00 - Fax. +33 (0)2 4 22 70 22 Web. www.telelogos.com - Email.

Plus en détail

Diagrammes de Package, de déploiement et de composants UML

Diagrammes de Package, de déploiement et de composants UML labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description

Plus en détail

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI. Facultés Universitaires Notre-Dame de la Paix, Namur Institut d Informatique Année académique 2003-2004 Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de

Plus en détail

Représenté par Eric Mamy A22 www.a22.fr présenté par CFR & CGL Consulting www.cgl-consulting.com

Représenté par Eric Mamy A22 www.a22.fr présenté par CFR & CGL Consulting www.cgl-consulting.com Représenté par Eric Mamy A22 www.a22.fr présenté par CFR & CGL Consulting www.cgl-consulting.com La Suite LOGIX La Suite LOGIX est un ensemble de produits pour le calcul et l optimisation complète des

Plus en détail

Dell Vostro 3350/3450/3550/3750

Dell Vostro 3350/3450/3550/3750 Dell Vostro 3350/3450/3550/3750 Installation et caractéristiques À propos des avertissements AVERTISSEMENT-test: un AVERTISSEMENT indique un risque d'endommagement du matériel, de blessure corporelle ou

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

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services 69 Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services M. Bakhouya, J. Gaber et A. Koukam Laboratoire Systèmes et Transports SeT Université de Technologie de Belfort-Montbéliard

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

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

Pré-requis installation

Pré-requis installation Pré-requis installation Version 3.5.0 TELELOGOS - 3, Avenue du Bois l'abbé - Angers Technopole - 49070 Beaucouzé - France Tel. +33 (0)2 4 22 70 00 - Fax. +33 (0)2 4 22 70 22 Web. www.telelogos.com - Email.

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

LOGICIEL DE SURVEILLANCE NUUO NOTICE

LOGICIEL DE SURVEILLANCE NUUO NOTICE LOGICIEL DE SURVEILLANCE NUUO NOTICE Sommaire A Installation... 2 B Console principale... 4 C Ecran... D Configuration... E Programmation... F Système Smart Guide... G Playback... Cette notice est un guide

Plus en détail

Ordonnancement sous contraintes de Qualité de Service dans les Clouds

Ordonnancement sous contraintes de Qualité de Service dans les Clouds Ordonnancement sous contraintes de Qualité de Service dans les Clouds GUÉROUT Tom DA COSTA Georges (SEPIA) MONTEIL Thierry (SARA) 05/12/2014 1 Contexte CLOUD COMPUTING Contexte : Environnement de Cloud

Plus en détail

INSTRUMENTS DE MESURE SOFTWARE. Management software for remote and/or local monitoring networks

INSTRUMENTS DE MESURE SOFTWARE. Management software for remote and/or local monitoring networks INSTRUMENTS DE MESURE SOFTWARE SOFTWARE Logiciel de supervision des réseaux locaux et/ou distants Management software for remote and/or local monitoring networks MIDAs EVO 4 niveaux de fonctionnalités

Plus en détail