Programmation parallèle et mise en œuvre des GPU
|
|
- Ange Brisson
- il y a 8 ans
- Total affichages :
Transcription
1 Programmation parallèle et mise en œuvre des GPU Jean-Ferdy Susini! Maître de Conférences - CNAM! Département Informatique Paris, 21/10/14
2 Plan du cours 2 Objectif : sensibiliser à la programmation parallèle des GPU Rappel sur la programmation concurrente et le parallèle Présentation des GPU et ouverture de ces «coprocesseurs» à la programmation Définition du modèle de calcul d OpenCL Mise en œuvre d OpenCL Démo en Java TP
3 Présentation du cours 3
4 Programmation parallèle Paris, 21/10/14
5 Concurrence et/ou parallélisme 5 La concurrence est un problème ancien en informatique et en particulier dans les systèmes d exploitation : la mise à disposition d un nombre limité de ressources à un nombre arbitraire de tâches utilisatrices conduit à des situations de concurrence. Plusieurs solutions existent, à commencer par la possibilité de simuler des exécutions parallèles à travers de l interleaving."! Ordonnancement de tâches
6 Ordonnancement dans un SE 6 Objectif : gestion des ressources matérielles, dont la ressource processeur Architecture Monoprocesseur" optimiser l utilisation de la ressource processeur" améliorer la réactivité du système Architecture Multiprocesseur" profiter des ressources CPU supplémentaires" équilibrer la charge Au sein d un même processus, les threads satisfont ces mêmes besoins
7 Ordonnancement dans un SE 7 Les processus sont des tâches lourdes qui communiquent peu entre elles (à travers certains services du système)" L ordonnancement défini les règles d accès à la ressource processeur" Les communications inter-processus doivent guider la politique d ordonnancement" Définir les règles d ordonnancement est difficile en particulier dans un OS déjà existant, qui requiert la connaissance de nombreux mécanismes sous-jacents de l OS
8 Programmation 8 Au niveau des langages de programmation, la problématique de la concurrence et du parallélisme a été finalement peu considérée" Pourtant de nos jours le parallélisme est omniprésent" Mis à part quelques langages assez confidentiels, l essentiel des langages ont introduit la notion de parallélisme à travers les outils fournis par les SE, zn particulier les threads
9 Les threads 9 Un exemple : le langage Java"! Chaque thread exécute un code séquentiel! Modèle de programmation hérité de la programmation système : processus légers (partage de l'espace d'adressage, pile et registres séparés)! S appuie sur un service d ordonnancement! Correspondances ("Mapping") avec les processus légers : un à un, plusieurs à un, plusieurs à plusieurs
10 Les threads 10 Issus des systèmes d exploitation => on retrouve des stratégies d'ordonnancement :" Ordonnancement coopératif : le fil d'exécution "qui a" le processeur doit le relâcher explicitement. La stratégie d'ordonnancement diffère dans l'élection du processus auquel le processeur doit-être alloué! Ordonnancement préemptif: l'ordonnanceur du système peut contraindre un fil d'exécution à relâcher le processeur qui lui a été alloué en fonction de critères (quota, priorité, interruption,... ) qui constituent une part de la politique d'ordonnancement
11 L ordonnancement coopératif 11 Simple à programmer (coroutines)! Efficacité : maîtrise des "context switchs", -verrous, - changements de mode de protection! Pb avec les mauvais citoyens (threads non coopérative)! Discipline de programmation => transformation du "legacy software
12 L ordonnancement préemptif 12 pas de discipline de programmation (mais subsiste problèmes de réentrance,...)! Service d ordonnancement plus riche! Mieux adapté aux systèmes multiprocesseurs et/ou distribués! plus difficile à implanter (politiques plus complexes)! problème d'efficacité "context switchs" forcés arbitrairement, protection des données partagées nécessaires
13 Les threads 13 En Java :" API standardisée : Thread, chaque objet possède un verrou, mot clés synchronized et volatile! sémantique faible (ouverture, portabilité,...)! omniprésence : AWT, GC,...! contrôle fin problématique (les méthodes stop, suspend, resume sont étiquetées "deprecated" à partir de Java 1.2)! Mais les choses changent car enjeux majeur! plusieurs refontes du modèle de gestion mémoire et des threads de la JVM depuis Java 5.0
14 Le parallélisme 14 De nos jours, le parallélisme des ressources de calcul est partout :" pipelining, exécution out of order, architecture superscalaire : pose des problèmes de parallélisme et de concurrence que la plupart des compilateurs modernes arrivent à masquer" architectures distribuées, ont vu émerger des architectures logiciels de haut niveau, permettant de profiter de ce parallélisme souvent sur un modèle de tâches faiblement couplées." architectures multi-processeurs et multi-cœurs et de nos jours les architectures GPU, font émerger de nouveaux besoins pour la prise en compte efficace du parallélisme.
15 Le parallélisme 15 Les threads constituent une réponse bas niveau (empruntée au SE) qui reste une affaire de spécialistes" La sémantique est souvent faible voir trop sous spécifiée pour des raisons de portabilité pour être utilisées de façon fiable" Les threads ne permettent généralement pas le contrôle de la politique d ordonnancement qui les gère." Les threads dans un langage de programmation interfèrent souvent avec les principes de structuration mis en avant par le langage (fonctionnel, objet ) de nouveaux modèles font leur apparition
16 Modèles de programmation parallèle 16 De nombreuses solutions apparaissent, proposant de nouveaux modèles de structuration du code parallèle au dessus des solutions bas niveaux :" Task/Workers" MapReduce" Open MP" MPI" Cuda" OpenCL"
17 Principe généraux autour de la programmation des GPU Paris, 21/10/14
18 Qu est-ce qu un GPU 18 Graphics Processing Unit est un (co-)processeur graphique capable d effectuer très efficacement des calculs sur des images (2D, 3D, vidéos )
19 Qu est-ce qu un GPU 18 Graphics Processing Unit est un (co-)processeur graphique capable d effectuer très efficacement des calculs sur des images (2D, 3D, vidéos ) Caractéristiques :" un nb d unités de calcul vertigineux, souvent > 1000" dédiés au calcul, ils sont peu performants en cas de traitements conditionnels (pipeline très long)" chaque coeur accède efficacement à une quantité relativement faible de données correctement localisée et applique une série de traitement répétitif sur ces données
20 Qu est-ce qu un GPU 19 Traite principalement 2 pipelines :" Le traitement des vertex :"! Infographie 2D-3D tesselation vertices pipeline clipping culling! rotation échelle translation réflexion réfraction Le traitement des pixels : Passage progressif de pipelines! statiques aux shaders! programmables alpha test blending Z buffer pixel treatments trammage texture light mapping composition
21 Qu est-ce qu un GPU 20 Un exemple : Kepler GK110" > 7 milliard de transistor" 15 unités SMX de :" 192 cœurs opérant en float" 64 cœurs en double" 32 cœurs pour des fonctions particulières" 32 unités de transferts mémoire" registres de 32 bits
22 Peut-on exploiter cette puissance de calcul? 21 Calcul répétitif sur de grandes quantités de données : un problème bien connu dans le HPC : SIMD-SPMD" Évolution des shaders vers le GP-GPU (OpenCL-Cuda)" Modèle de programmation parallèle" Indépendamment chaque cœur est beaucoup plus lent qu un CPU (peu de cache, peu de mémoire, fréquence relativement faible ). C est le parallélisme massif qui fait la différence.
23 Petite histoire du GP-GPU : Nvidia lance Cuda, ATI lance close to Metal" 2008 : Apple propose OpenCL au Kronos Group, constitue un groupe de travail avec AMD/ATI et Nvidia : le Khronos Compute Working Group" dec 2008 OpenCL 1.0" août 2009 SnowLeopard implantation complète" sept 2009 Nvidia sort son implantation OpenCL 1.0" juin 2010 : OpenCL 1.1" juin 2011 : Intel SDK OpenCL 1.1 GPU/CPU" novembre 2011 : OpenCL 1.2" juillet 2013 : OpenCL 2.0" sept 2013 : Mavericks Open CL 1.2
24 Programmation complexe 23 La programmation GP-GPU reste quelque chose de complexe à maitriser, qui nécessite une transformation des algorithmes pour tenir compte des spécificités matérielles" En particulier le paramétrage du matériel constitue souvent la plus grosse partie du travail. Peu d heuristiques existent pour guider le développeur dans cette tâche" Le débugging et le profiling restent encore limités
25 Le modèles de programmation 24 OpenMP : API multi plate-forme pour les langages Fortran, C et C++ pour programmer des architectures parallèles à mémoire partagée. Elle consiste en en certain nombre de directives de compilation (pragma), des bibliothèques additionnelles et des variables d environnement (AMD, IBM, Intel, Cray, HP, Nvidia )" Cuda : modèle de programmation propriétaire des cartes Nvidia, propose des directives de compilation (pragma OpenACC), des librairies de fonctions optimisées, des extensions de C, C++ et Fortran, utilisant un compilateur dédié mvcc basé sur LLVM" DirectCompute : solution propriétaire de Microsoft associé à DirectX 11. Partage de nombreux points commun avec ses concurrents." Enzo : de PathScale qui génère du code Cuda optimisé à partir de C C++ ou Fortran annoté par des directives de compilations (pragma)." OpenCL : langage dérivé de C99 et des APIs pour contrôler la plate-form, plus général que Cuda les deux outils sont cependant très proches dans l esprit orienté parallélisme de tâche ou parallélisme de donnés. Comme les modèles sont proches et les performances voisines, nous n étudierons qu OpenCL.
26 Le modèle OpenCL Paris, 21/10/14
27 Modélisation d une application Open CL 26 On superpose 4 modèles pour appréhender une application OpenCL :" Le modèle matériel qui abstrait la plateforme et organise les ressources." Le modèle d exécution qui définit l organisation des traitements et leur répartition sur les ressources de calcul matériel" Le modèle mémoire qui définit la hiérarchisation d accès aux éléments de mémoire traités" Le modèle de programmation qui décrit comment les programmes sont spécifiés
28 Une plateforme OpenCL 27 L organisation d une plateforme OpenCL, suppose l existence d un processus hôte qui se connecte à un ensemble de périphériques OpenCL (devices). Par exemple une carte graphique." Un périphérique OpenCL peut être divisé en une ou plusieurs unités de calcul (Computing Units - CU)" Les CU se divisent en cœurs (Processing Elements - PE)" L objectif pour l hôte est d envoyer des traitements s exécuter sur les PE qui permettent des calculs selon un paradigme SIMD/SPMD.
29 Une plateforme OpenCL plateforme OpenCL 28 device OpenCL CU CU CU PEs device OpenCL processus" hôte CU CU CU CU device OpenCL CU CU
30 Modèle d exécution 29 Le programme hôte est le programme du processus hôte et ne s exécute pas sur les devices OpenCL" Un traitement sur un élément de donné est appelé un Work-Item (Exécution d un kernel - programme à exécuter - sur un cœur et sur un élément de donné)" Pour un même kernel, les WorkItems sont organisés dans un espace à N dimensions ND-Range (1D, 2D, 3D). Chaque WorkItem est repéré par des index dans cet espace à N dimension" Pour un même kernel, les WorkItems sont regroupés en Workgroups
31 Modèle d exécution Exemple en 2D 30 WorkGroup WorkGroup G MAX y WorkGroup G MAX x L MAX x WorkGroup L MAX y Nb total de WorkItem :" G MAX x * L MAX x" + G MAXy * L MAXy "! Chaque WorkItem a un" index local" 0 lx < L MAX x" 0 ly < L MAX y" Chaque Work Group à un" index de groupe" 0 Gx < G MAX x" 0 Gy < G MAX y
32 Modèle mémoire Une mémoire globale partagée entre tous les WorkItems et les WorkGroups et accessible en lecture et en écriture" 31 Des constantes globale partagées entre tous les WorkItems et les WorkGroups et accessible en lecture seule" Une mémoire locale partagée entre tous les WorkItems d un même WorkGroup et accessible en lecture et en écriture" Une mémoire privée accessible à un seul WorkItem" Les échanges mémoires suivent le chemin suivant :" hôte -> globale -> locale -> privée et retour
33 Modèle mémoire 32 device WorkGroup WorkGroup Privée Privée Privée Privée Privée Privée Privée Privée WorkItem WorkItem WorkItem WorkItem WorkItem WorkItem WorkItem WorkItem Locale Locale Globale Constantes hôte Mémoire hôte
34 Modèle de programmation 33 Kernel : élément de base d exécution : programme court similaire à une fonction en langage C," Program : une ensemble de fonctions C. Certaines seront éligibles pour constituer un kernel (point d entrée d un programme à exécuter sur un PE)." Application : un processus qui compile des programmes et place dans des files d exécutions des kernels et leur données pour être traités par le GPU. Les files d attente peuvent-être traitées dans l ordre ou bien explicitement sans respecter l ordre
35 Les kernels Création de programmes portables :" 34 Définition d un programme sous la forme d une chaine de caractères représentant le texte du programme en langage OpenCL C (source). Ou un binaire précompilé pour faciliter la compilation finale" Le programme représente un petit ensemble de fonctions et de kernels organisés comme une bibliothèque" Compilation à la volée à travers une API en spécifiant le périphérique cible de la compilation et des paramètres de compilation" Création d un kernel par sélection d une fonction et la spécification des arguments et donc des éléments de donnés sur lesquels le kernel va opérer
36 Le files de commandes 35 Le processus hôte soumet les kernels et les données à la plateforme OpenCL (program objects -> kernel objects et memory objects)" Des files de commandes sont associées aux devices OpenCL, permettant de soumettre un à un les kernels, des objets mémoire et des commandes de synchronisation (attente de la fin d exécution d une tâche )" Le contenu des files de commandes peut être traité dans l ordre ou dans un ordre privilégié par la plateforme (out of order), les événements de synchronisation permettent alors de remettre les choses en ordre
37 Cohérence mémoire et synchronisation C est un problème critique de la programmation parallèle, comment est-il traité dans le cas d OpenCL?" 36 Ne devrait pas être nécessaire entre les WorkItems (chaque WorkItem travaille sur sa part de données)." A sein d un WorkItem les opérations de lecture et d écriture en mémoire sont atomiques" Entre différentes tâches OpenCL la cohérence est obtenue par l utilisation des événements de synchronisation" Les WorkGroups permettent à des WorkItems de coordonner leurs accès mémoire et à partager de la mémoire entre eux par synchronisation de leur exécution
38 Mise en œuvre d OpenCL Paris, 21/10/14
39 Anatomie d une application OpenCL 38 Récupération des informations sur la plateforme Construction du Context OpenCL et selection des devices à utiliser Chargement et compilation des programmes Création des objets mémoires Création des files de commandes et transfert des données et des programmes sur la plate-forme Exécution des kernels, synchronisation et lecture des résultats
40 Récupération des infos 39 cl_int oclgetplatformid (cl_platform_id *platforms) cl_int clgetdeviceids (cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices)
41 Création du context 40 cl_context clcreatecontext (const cl_context_properties *properties, cl_uint num_devices, const cl_device_id *devices, void (*pfn_notify)(const char *errinfo, const void *private_info, size_t cb, void *user_data), void *user_data, cl_int *errcode_ret)
42 Création des files de commandes 41 cl_command_queue clcreatecommandqueue (cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int *errcode_ret)
43 Création des objets mémoire 42 cl_mem clcreatebuffer (cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret) cl_int clsetkernelarg (cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void *arg_value)
44 Kernels OpenCL 43 cl_program clcreateprogramwithsource (cl_context context, cl_uint count, const char **strings, const size_t *lengths, cl_int *errcode_ret) cl_int clbuildprogram (cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void (*pfn_notify)(cl_program, void *user_data), void *user_data) cl_kernel clcreatekernel (cl_program program, const char *kernel_name, cl_int *errcode_ret)
45 Exécution 44 cl_int clenqueuendrangekernel (cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, const size_t *global_work_offset, const size_t *global_work_size, const size_t *local_work_size, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) cl_int clenqueuereadbuffer (cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t cb, void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
46 OpenCL en Java Paris, 21/10/14
47 JOCL 46 Plusieurs «bindings» non officiels existent. Nous allons utiliser un binding strict appelé JOCL :" Offre une interface à travers des méthodes native (s appuie sur JNA) vers des fonctions en C reprenant l ensemble des spécifications OpenCL 1.2
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é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é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é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étailInitiation 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é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 à 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étailChapitre 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é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é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é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é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é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é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é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étailRuntime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I
Runtime Gestion de la réactivité des communications réseau François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I 1 Le calcul hautes performances La tendance actuelle
Plus en détailSugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009
SugarCubes Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués Paris, le 9 janvier, 2009 Plan 2 Les SugarCubes au dessus de J2ME Quelques résultats expérimentaux Les
Plus en détailLa technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailCatalogue 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É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étailLinux embarqué: une alternative à Windows CE?
embarqué: une alternative à Windows CE? : une alternative à Windows CE Présentation Mangrove Systems Distribution embarqué Perspective WinCe / Questions Mangrove systems Créé en 2001 Soutien Soutien Ministère
Plus en détailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
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é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étailConcept de machine virtuelle
Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
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étailÉléments de programmation et introduction à Java
Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détail<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
Plus en dé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étailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
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étailInitiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr
Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
Plus en détailIRL : 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étailLes environnements de calcul distribué
2 e Atelier CRAG, 3 au 8 Décembre 2012 Par Blaise Omer YENKE IUT, Université de Ngaoundéré, Cameroun. 4 décembre 2012 1 / 32 Calcul haute performance (HPC) High-performance computing (HPC) : utilisation
Plus en détailNFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007
NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation
Plus en détailIntroduction 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étailJava et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
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étailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailNFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
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étailContribution à la conception à base de composants logiciels d applications scientifiques parallèles.
- École Normale Supérieure de LYON - Laboratoire de l Informatique du Parallélisme THÈSE en vue d obtenir le grade de Docteur de l École Normale Supérieure de Lyon - Université de Lyon Discipline : Informatique
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étailUne 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é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étailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Plus en détailPerformances de la programmation multi-thread
UFR Sciences et techniques de Franche-Comté Projet semestriel 2ème année de Master Informatique Performances de la programmation multi-thread Auteur(s) : Beuque Eric Moutenet Cyril Tuteur(s) : Philippe
Plus en détailJava c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java
1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit
Plus en détailJ2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Plus en détailProjet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Plus en détailPrise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec Frederic.Guidec@univ-ubs.fr Action RASC Plan de cet exposé Contexte Motivations
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
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é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é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étailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détailPROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
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étailVérifier la qualité de vos applications logicielle de manière continue
IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailVulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Plus en détailArchitecture ordinateur. Organisation mémoire et Entrées/Sorties
Architecture ordinateur Organisation mémoire et Entrées/Sorties 243 Plages mémoire et E/S Dans une architecture à bus partagé, seule une partie des adresses active le contrôleur mémoire. Il reste des adresses
Plus en détailVers du matériel libre
Février 2011 La liberté du logiciel n est qu une partie du problème. Winmodems Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les
Plus en dé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é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étailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en dé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étailRemise à niveau d un programme JAVA du domaine public
Jean-Baptiste VIGUIER 12 septembre 2002 DCEM 2 jb.viguier@free.fr Remise à niveau d un programme JAVA du domaine public Dossier réalisé pour le laboratoire d oncogénétique Docteur P.GORRY MCU-PH institut
Plus en détailContexte et motivations Les techniques envisagées Evolution des processus Conclusion
Vérification de logiciels par analyse statique Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Contexte et motivations Specification Design architecture Revues and
Plus en détailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailSQL Server 2012 et SQL Server 2014
SQL Server 2012 et SQL Server 2014 Principales fonctions SQL Server 2012 est le système de gestion de base de données de Microsoft. Il intègre un moteur relationnel, un outil d extraction et de transformation
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étailPoint sur les solutions de développement d apps pour les périphériques mobiles
Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailInformatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année
UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ UFR Sciences et Techniques
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étailVirtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.
2013 Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D. Table des matières 1 Introduction (Historique / définition)... 3 2 But de la virtualisation... 4 3 Théorie : bases et typologie des solutions techniques...
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é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étailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailWEA Un Gérant d'objets Persistants pour des environnements distribués
Thèse de Doctorat de l'université P & M Curie WEA Un Gérant d'objets Persistants pour des environnements distribués Didier Donsez Université Pierre et Marie Curie Paris VI Laboratoire de Méthodologie et
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étailChapitre 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étailJava à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON
1 Java à Murex: un retour d'expérience Jean-Pierre DACHER & Craig MORRISON Résumé Description des défis et contraintes d un grand éditeur de logiciel Le cycle de développement Murex pour atteindre les
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailCalcul 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étailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailOptimisations des SGBDR. Étude de cas : MySQL
Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique
Plus en détail