Calcul Haute Performance et Parallélisme Historique et exemples

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

Download "Calcul Haute Performance et Parallélisme Historique et exemples"

Transcription

1 Calcul Haute Performance et Parallélisme Historique et exemples Emmanuel Hermellin LIRMM Janvier 2014

2 Sommaire 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU 2 / 63

3 Introduction Expression du besoin Dans pratiquement tous les domaines (recherche, ingénierie, entrepreneuriat, industrie,... ) on constate que le calcul intensif numérique prend une place essentielle afin de demeurer dans la compétition mondiale! Simulation numérique L émergence des très grands calculateurs a ouvert une nouvelle approche, la simulation numérique. La simulation permet d approcher des phénomènes complexes. 3 / 63

4 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Calcul Haute Performance 4 / 63

5 Définition Le Calcul Haute Performance La science relative à la conception et au développement des grands centres de calculs se nomme : Calcul Haute Performance (High Performance Computing) Le Calcul Haute Performance 5 / 63

6 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Calcul Haute Performance Naissance des super-calculateurs 6 / 63

7 L ENIAC Les découvertes Presper Eckert et John William Mauchly Electronic Numerical Integrator and Computer Ordinateur capable de faire des calculs balistiques 30 tonnes, 72 m2, 160 kw, 100 khz, 20 calculateurs, additions ou 357 multiplications par seconde. L architecture de Von Neumann Architecture en 4 parties utilisant une structure de stockage unique pour conserver les instructions et les données : L unité arithmétique et logique L unité de contrôle La mémoire volatile et permanente Les dispositifs d entrée et sortie Le Calcul Haute Performance Naissance des super-calculateurs 7 / 63

8 Les découvertes L architecture de Von Neumann est encore utilisée dans la quasi totalité de nos ordinateurs actuels Le Calcul Haute Performance Naissance des super-calculateurs 8 / 63

9 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Calcul Haute Performance Évolution des super-calculateurs 9 / 63

10 De 1960 à 1990 Historique 1960 apparition des premiers super-calculateurs commerciaux conçus par Seymour Cray pour la société Control Data Corporation. Control Data Corporation restera le premier constructeur mondial jusque dans les années A cette époque, Seymour Cray monte sa propre entreprise Cray Search. Il devient le leader des super-ordinateurs jusque dans les années Pendant cette période NEC, Intel, IBM sont déjà des multinationales puissantes et innovantes qui mettent sur le marché des machines compétitives. Le Calcul Haute Performance Évolution des super-calculateurs 10 / 63

11 De nos jours De nos jours, voici la distribution des constructeurs de super-calculateurs. Le Calcul Haute Performance Évolution des super-calculateurs 11 / 63

12 Évolution des processeurs Les processeurs au cours du temps Les premières machines contenaient de simples mono-processeurs. Les processeurs vectoriel ont fait leur apparition ensuite et sont capables d effectuer le décodage d une instruction et de l appliquer à toute une série d opérandes. Fin des années 1980, développement des architectures parallèles par Intel, AMD, PowerPC, RISC. Le Calcul Haute Performance Évolution des super-calculateurs 12 / 63

13 Distribution des processeurs De nos jours, voici la distribution des processeurs par marques dans les super-calculateurs. Le Calcul Haute Performance Évolution des super-calculateurs 13 / 63

14 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Calcul Haute Performance Puissance de calcul et loi de Moore 14 / 63

15 Loi de Moore Énoncé de Gordon Moore (1975) "The complexity for minimum component costs has increased at a rate of roughly a factor of two per year" Les modifications La période est passée de 2 ans à 18 mois On ne parle plus vraiment de complexité des composants mais du nombre de transistors Nombreuses variantes : doublement de la mémoire, doublement de la fréquence d horloge, doublement de la puissance de calcul... Le Calcul Haute Performance Puissance de calcul et loi de Moore 15 / 63

16 Puissance de calcul L unité de mesure La puissance de calcul est donnée en flops pour opérations à virgule flottante par seconde (Floating point Operations Per Second). Le Calcul Haute Performance Puissance de calcul et loi de Moore 16 / 63

17 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Calcul Haute Performance Utilisation et conception des super-calculateurs 17 / 63

18 Utilisation De nos jours, voici les domaines utilisant les super-calculateurs. Le Calcul Haute Performance Utilisation et conception des super-calculateurs 18 / 63

19 Conception Supériorité des super-calculateurs Une architecture particulière Conçu pour une tâche ou un but précis Utilisation du parallélisme pour contrer les limites physiques ou techniques Le Calcul Haute Performance Utilisation et conception des super-calculateurs 19 / 63

20 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Parallélisme 20 / 63

21 Définition Principe du parallélisme Le parallélisme consiste à utiliser des architectures parallèles permettant de traiter des informations de manière simultanée dans le but de réaliser le plus grand nombre d opérations par seconde. Le Parallélisme 21 / 63

22 Pour ou contre Avantages Limites Paradigme dominant depuis les années 2000 Contrer les contraintes physiques : dissipation thermique, consommation, miniaturisation... Contrer les contraintes techniques : fréquence, stabilité... Nouvelle approche et nouvelle vision Difficulté d implémentation et programmation Portabilité souvent limitée Le Parallélisme 22 / 63

23 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Parallélisme Les différents types de parallélismes 23 / 63

24 La taxonomie de Flynn Le classement de Michael J. Flynn Architecture SISD : systèmes séquentiels qui traitent une donnée à la fois (Single instruction Single Data) Architecture SIMD : systèmes parallèles traitant de grandes quantités de données d une manière uniforme (Single instruction Multiple Data) Architecture MIMD : systèmes parallèles traitant de grandes quantités de données d une manière hétérogène (Multiple instruction Multiple Data) Architecture MISD : systèmes parallèles traitant une seule donnée de manière hétérogène (Multiple instruction Single Data) Le Parallélisme Les différents types de parallélismes 24 / 63

25 La taxonomie de Flynn Le Parallélisme Les différents types de parallélismes 25 / 63

26 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU Le Parallélisme Les lois du parallélismes 26 / 63

27 Les différentes lois Les lois du parallélisme La loi d Amdahl (1960) : la petite partie du programme qui ne peut être parallélisée limite la vitesse globale du programme La loi de Gustafson : analogue et prend en compte le cas où il est possible d augmenter la quantité de données sur lesquelles les calculs sont effectués en parallèle La métrique de Karp-Flatt (1990) : intègre le coût lié au temps d exécution des instructions qui mettent en œuvre le parallélisme Le Parallélisme Les lois du parallélismes 27 / 63

28 La loi d Amdahl Le Parallélisme Les lois du parallélismes 28 / 63

29 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU La Programmation 29 / 63

30 Choisir sa solution Se poser les bonnes questions Utiliser le GPGPU Utiliser les processeurs multi-cœurs et multi-threads Utiliser les deux Vouloir une grande compatibilité Vouloir un plus grand contrôle Vouloir une plus grande accessibilité La Programmation 30 / 63

31 Les performances La Programmation 31 / 63

32 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU La Programmation L optimisation du code source 32 / 63

33 Attention Premature optimization is the root of all evil Donald Knuth La Programmation L optimisation du code source 33 / 63

34 L optimisation Définition Optimisation : technique qui permet une exécution plus rapide du code source tout en gardant des résultats corrects et un niveau d erreur ou d approximation très faible. Règle de conduite 1. Utiliser un code fonctionnel 2. Identifier les parties "lourdes" du code (le profiling) 3. Optimiser seulement les parties identifiées Il existe des compilateurs et des outils permettant de réaliser un profiling du code automatiquement ou d identifier les zones "lourdes". La Programmation L optimisation du code source 34 / 63

35 Techniques Quelques exemples Utiliser le compilateur pour optimiser le code (Attention aux approximations et erreurs) Bien choisir ces types de variables Bien définir ces données selon le langage choisi Bien choisir les opérations et calculs effectués Favoriser les variables et calculs locales Faire attention aux boucles et conditions Faire attention aux fonctions créées et utilisées La Programmation L optimisation du code source 35 / 63

36 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU La Programmation La programmation sous CPU 36 / 63

37 Présentation Les techniques de programmation MPI Message Passing Interface : environnement le plus connu pour les architectures à mémoires distribuées. Il offre aussi les meilleurs performances comparé à OpenMP OpenMP Multithreading : outil de programmation à base de directives pour l implémentation des programmes sur des systèmes à mémoire partagée. La Programmation La programmation sous CPU 37 / 63

38 MPI Parallélisation Le modèle de programmation MPI se place dans un contexte de parallélisation MIMD (Multiple Instruction Multiple Data) avec une mémoire distribuée. Quelques mots clefs MPI_Init : initialisation de MPI MPI_Comm_size : initialisation du nombre de processus MPI_Comm_rank : identification du processus MPI_Send : envoi d une valeur d une variable MPI_Recv : réception d une valeur d une variable MPI_Finalize : finalisation de MPI La Programmation La programmation sous CPU 38 / 63

39 Principe L exécution En MPI, le programme est dupliqué sur plusieurs processus. Chaque processus exécute un exemplaire du programme et a accès à sa mémoire propre. La Programmation La programmation sous CPU 39 / 63

40 Avantages et inconvénients Avantages Aucun langage à apprendre Une très grande portabilité Une très grande accessibilité Inconvénients Un gain de performance faible Une philosophie qui peut déranger un peu Doit être lancé avec mpirun La Programmation La programmation sous CPU 40 / 63

41 Démonstration Démonstration La Programmation La programmation sous CPU 41 / 63

42 Exemple 1 / Exemple 1 : H e l l o World / i n t main ( i n t argc, c h a r a r g v [ ] ) { i n t rank, s i z e ; MPI_Init (& argc, &a r g v ) ; MPI_Comm_rank (MPI_COMM_WORLD, &rank ) ; MPI_Comm_size (MPI_COMM_WORLD, & s i z e ) ; p r i n t f ( " P r o c e s s u s %d o f %d\n", rank, s i z e ) ; p r i n t f ( " H e l l o w o r l d " ) ; } MPI_Finalize ( ) ; r e t u r n 0 ; La Programmation La programmation sous CPU 42 / 63

43 Exemple 2 / Exemple 2 : Envoyer R e c e v o i r des v a l e u r s / i n t main ( i n t argc, c h a r a r g v [ ] ) { i n t rank, s i z e, a, t [ 4 ] = { 2, 3, 4, 5 } ; MPI_Init(& argc, &a r g v ) ; MPI_Comm_rank(MPI_COMM_WORLD,& rank ) ; MPI_Comm_size (MPI_COMM_WORLD,& s i z e ) ; MPI_Status s t a t ; i f ( rank == 0){ MPI_Send(&t, 4, MPI_INT, 1, 2,MPI_COMM_WORLD) ; } e l s e i f ( rank == 1){ MPI_Recv(&t, 4, MPI_INT, 0, 2,MPI_COMM_WORLD,& s t a t ) ; f o r ( a =0; a <4; a++){ p r i n t f ( " v a l e u r s t a b l e a u %i \n", t [ a ] ) ; } } [... ] MPI_Finalize ( ) ; r e t u r n 0 ; } La Programmation La programmation sous CPU 43 / 63

44 Exemple 3 / Exemple 3 : C a l c u l e r avec MPI / MPI_Init(& argc, &a r g v ) ; MPI_Comm_rank(MPI_COMM_WORLD,& rank ) ; MPI_Comm_size (MPI_COMM_WORLD,& s i z e ) ; MPI_Status s t a t u s ; [... ] i f ( rank==0) s t a r t t i m e = MPI_Wtime ( ) ; [... ] t c a r r e = ( bsup b i n f ) / s i z e ; b i n f p r o c = t c a r r e rank ; f o r ( i =0; i <p r e c ; i ++){ x = b i n f p r o c + ( i t c a r r e / p r e c ) ; tmp = tmp + ( ( t c a r r e / p r e c ) 1/(1+( x x ) ) ) ; } MPI_Reduce(&tmp,& pi, 1, MPI_DOUBLE, MPI_SUM, 0,MPI_COMM_WORLD) ; i f ( rank==0) [... ] endtime = MPI_Wtime ( ) ; } [... ] MPI_Finalize ( ) ; r e t u r n 0 ; La Programmation La programmation sous CPU 44 / 63

45 Exemple 4 / Exemple 4 : B r o a d c a s t des v a l e u r s / #i n c l u d e "mpi. h" #i n c l u d e <s t d i o. h> i n t main ( i n t argc, c h a r a r g v [ ] ) { i n t rank, s i z e, a =1; MPI_Init(& argc, &a r g v ) ; MPI_Comm_rank(MPI_COMM_WORLD,& rank ) ; MPI_Comm_size (MPI_COMM_WORLD,& s i z e ) ; MPI_Status s t a t u s ; MPI_Bcast (&a, 1, MPI_INT, 0, MPI_COMM_WORLD) ; p r i n t f ( " P r o c e s s u s %i : \ n V a l e u r s de a = %i \n", rank, s i z e, a ) ; } MPI_Finalize ( ) ; r e t u r n 0 ; La Programmation La programmation sous CPU 45 / 63

46 1 Le Calcul Haute Performance Naissance des super-calculateurs Évolution des super-calculateurs Puissance de calcul et loi de Moore Utilisation et conception des super-calculateurs 2 Le Parallélisme Les différents types de parallélismes Les lois du parallélismes 3 La Programmation L optimisation du code source La programmation sous CPU La programmation sous GPU La Programmation La programmation sous GPU 46 / 63

47 Le GPGPU À l origine À l origine : les puces graphiques servent uniquement à l affichage d images sur l écran. Une nouvelle fonction Au fil des années : la programmation et les capacités de ces puces graphiques ont évolué pour donner naissance au tout premier processeur graphique GPU. GPGPU Entre 1999 et 2000 : utilisation des GPUs pour exécuter des opérations de calculs scientifiques. C est l avènement du mouvement appelé GPGPU. La Programmation La programmation sous GPU 47 / 63

48 Présentation de CUDA CUDA Environnement logiciel permettant d utiliser le GPU au travers de langage de programmation : C, C++, Java,...). Il comporte les outils nécessaires à la création de fichier CUDA, il est une véritable extension au langage utilisé, permettant une exécution parallèle sur le GPU. La Programmation La programmation sous GPU 48 / 63

49 Fonctionnement de CUDA Les trois parties Runtime : c est l interface entre le GPU et l application Driver : son rôle est de transmettre les calculs de l application au GPU Librairies : CUDA est livré avec avec des implémentations d algorithmes optimisées pour cette architecture La Programmation La programmation sous GPU 49 / 63

50 Les éléments de CUDA Les différents éléments Threads : groupés en blocs qui coopèrent et traitent le même code sur des données différentes Blocs : groupés en grilles et s exécutent dans n importe quel ordre Kernels : fonctions appelées depuis l host et exécutées sur le device La Programmation La programmation sous GPU 50 / 63

51 La mémoire Les différentes mémoires La mémoire globale La mémoire constante La mémoire texture La mémoire partagée Les registres La Programmation La programmation sous GPU 51 / 63

52 Principe et philosophie Répartition des rôles Chaque kernel est associé avec une grille sur le device. Le choix du nombre de threads et de blocs est conditionné par la nature de l application et la nature des données à traiter. Chaque thread dispose d un ID appelé threadidx. Les variables blockdim et threadidx sont définies automatiquement et sont de type dim3. Les threads et les blocs peuvent être organisés suivant une, deux ou trois dimensions. Chaque dimension est accédée par la notation threadidx.x, threadidx.y et threadidx.z. La Programmation La programmation sous GPU 52 / 63

53 Exécution La Programmation La programmation sous GPU 53 / 63

54 Un mot sur OpenCL Présentation OpenCL est un environnement de programmation sous GPU ressemblant beaucoup à CUDA avec une philosophie similaire. Les différences Utilisable avec tout les GPUs Création de systèmes hybrides Gestion de la mémoire différente Un langage plus haut niveau Une communauté un peu moins grande La Programmation La programmation sous GPU 54 / 63

55 Avantages et inconvénients Avantages Des performances impressionnantes Un centre de calcul à un prix ridicule Une communauté très importante Un environnement complet de programmation Inconvénients Une vision très différente de la programmation Portabilité sur les GPUs de la marque Accessibilité faible Une optimisation difficile La Programmation La programmation sous GPU 55 / 63

56 Démonstration Démonstration La Programmation La programmation sous GPU 56 / 63

57 Exemple 1 / Exemple 1 : H e l l o World / #i n c l u d e " main. h" i n t h e l l o W o r l d ( v o i d ) { p r i n t f ( " H e l l o W o r l d! \ n" ) ; } system ( " pause " ) ; r e t u r n 0 ; La Programmation La programmation sous GPU 57 / 63

58 Exemple 2 / Exemple 2 CUDA / #i n c l u d e " main. h" #d e f i n e N 10 global v o i d add ( i n t a, i n t b, i n t c ) { i n t t i d = b l o c k I d x. x ; i f ( t i d < N) c [ t i d ] = a [ t i d ] + b [ t i d ] ; } i n t a d d i t i o n V e c t e u r ( v o i d ) { i n t a [N], b [N], c [N ] ; i n t dev_a, dev_b, dev_c ; // a l l o c a t e t h e memory on t h e GPU cudamalloc ( ( v o i d )&dev_a, N s i z e o f ( i n t ) ) ; cudamalloc ( ( v o i d )&dev_b, N s i z e o f ( i n t ) ) ; cudamalloc ( ( v o i d )&dev_c, N s i z e o f ( i n t ) ) ; f o r ( i n t i =0; i <N; i ++) { a [ i ] = i ; b [ i ] = i i ; } [... ] La Programmation La programmation sous GPU 58 / 63

59 Exemple 2 suite [... ] // copy t h e a r r a y s a and b to t h e GPU cudamemcpy ( dev_a, a,n s i z e o f ( i n t ), cudamemcpyhosttodevice ) ; cudamemcpy ( dev_b, b,n s i z e o f ( i n t ), cudamemcpyhosttodevice ) ; add<<<n,1>>>( dev_a, dev_b, dev_c ) ; // copy t h e a r r a y c back from t h e GPU to t h e CPU cudamemcpy ( c, dev_c,n s i z e o f ( i n t ), cudamemcpydevicetohost ) ; } f o r ( i n t i =0; i <N; i ++) { p r i n t f ( "%d + %d = %d\n", a [ i ], b [ i ], c [ i ] ) ; // f r e e t h e memory a l l o c a t e d on t h e GPU cudafree ( dev_a ) ; cudafree ( dev_b ) ; cudafree ( dev_c ) ; } system ( " pause " ) ; r e t u r n 0 ; La Programmation La programmation sous GPU 59 / 63

60 Exemple 3 / Exemple 3 : C a l c u l de p i / #i n c l u d e " main. h" #d e f i n e P r e c i s i o n global v o i d c a l c ( f l o a t i n t e r v, f l o a t r e s u l t ){ i n t t i d = b l o c k I d x. x ; i f ( t i d < P r e c i s i o n ) r e s u l t [ t i d ] = ( ( 1. 0 / P r e c i s i o n ) 1 / (1 + ( i n t e r v [ t i d ] i n t e r v [ t i d ] ) ) ) ; } i n t calculpigpu ( v o i d ) { f l o a t p i = 0. 0 ; f l o a t i n t e r v a l l e [ P r e c i s i o n ], r e s u l t a t [ P r e c i s i o n ] ; f l o a t d e v _ i n t e r v, d e v _ r e s u l t ; // a l l o c a t e t h e memory on t h e GPU cudamalloc ( ( v o i d )& d e v _ i n t e r v, P r e c i s i o n s i z e o f ( f l o a t ) ) ; cudamalloc ( ( v o i d )& d e v _ r e s u l t, P r e c i s i o n s i z e o f ( f l o a t ) ) ; // f i l l t h e a r r a y s i n t e r v and r e s u l t on t h e CPU [... ] La Programmation La programmation sous GPU 60 / 63

61 Exemple 3 suite [... ] // copy t h e a r r a y s a and b to t h e GPU cudamemcpy ( d e v _ i n t e r v, i n t e r v a l l e, P r e c i s i o n s i z e o f ( i n t ), cudamemcpyhosttodevice ) ; c a l c <<<P r e c i s i o n,1>>>( d e v _ i n t e r v, d e v _ r e s u l t ) ; // copy t h e a r r a y c back from t h e GPU to t h e CPU cudamemcpy ( r e s u l t a t, d e v _ r e s u l t, P r e c i s i o n s i z e o f ( f l o a t ), cudamemcpydevicetohost ) ; // r e s u l t s f o r ( i n t i =0; i <P r e c i s i o n ; i ++) { p i = p i + r e s u l t a t [ i ] ; } p i = p i 4 ; p r i n t f ( " p i = %f \n", p i ) ; // f r e e t h e memory a l l o c a t e d on t h e GPU cudafree ( d e v _ i n t e r v ) ; cudafree ( d e v _ r e s u l t ) ; } r e t u r n 0 ; La Programmation La programmation sous GPU 61 / 63

62 Exemple 3 amélioration / Exemple 3 : O p t i m i s a t i o n / device f l o a t c a l c u l I n t e r v a l l e ( i n t t i d ){ r e t u r n t i d ( 1. 0 / P r e c i s i o n ) ; } global v o i d c a l c ( f l o a t r e s u l t ) { i n t t i d = b l o c k I d x. x ; f l o a t x = c a l c u l I n t e r v a l l e ( t i d ) ; i f ( t i d < P r e c i s i o n ) r e s u l t [ t i d ] = ( ( 1. 0 / P r e c i s i o n ) 1 / (1 + ( x x ) ) ) ; } i n t calculpigpu2 ( v o i d ) { f l o a t p i = 0. 0 ; f l o a t r e s u l t a t [ P r e c i s i o n ] ; f l o a t d e v _ r e s u l t ; cudamalloc ( ( v o i d )& d e v _ r e s u l t, P r e c i s i o n s i z e o f ( f l o a t ) ) ; c a l c <<<P r e c i s i o n,1>>>( d e v _ r e s u l t ) ; [... ] La Programmation La programmation sous GPU 62 / 63

63 Exemple 4 / Exemple 4 : C a l c u l avec des B l o c s e t des Threads / c o n s t i n t N = ; c o n s t i n t t h r e a d s P e r B l o c k = ; c o n s t i n t b l o c k s P e r G r i d = 3 2 ; global v o i d dot ( f l o a t a, f l o a t b, f l o a t c ) { shared f l o a t cache [ t h r e a d s P e r B l o c k ] ; i n t t i d = t h r e a d I d x. x + b l o c k I d x. x blockdim. x ; i n t c a c h e I n d e x = t h r e a d I d x. x ; f l o a t temp = 0 ; w h i l e ( t i d < N) { temp += a [ t i d ] b [ t i d ] ; t i d += blockdim. x griddim. x ; } cache [ c a c h e I n d e x ] = temp ; syncthreads ( ) ; i n t i = blockdim. x / 2 ; w h i l e ( i!= 0) { i f ( c a c h e I n d e x <i ) cache [ c a c h e I n d e x ]+=cache [ c a c h e I n d e x+i ] ; syncthreads ( ) ; i /= 2 ; } i f ( c a c h e I n d e x == 0) c [ b l o c k I d x. x ] = cache [ 0 ] ; } La Programmation La programmation sous GPU 63 / 63

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

. 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

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

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

Systèmes et traitement parallèles

Systèmes et traitement parallèles Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications

Plus en détail

Quantification d incertitude et Tendances en HPC

Quantification d incertitude et Tendances en HPC Quantification d incertitude et Tendances en HPC Laurence Viry E cole de Physique des Houches 7 Mai 2014 Laurence Viry Tendances en HPC 7 Mai 2014 1 / 47 Contents 1 Mode lisation, simulation et quantification

Plus en détail

Systèmes parallèles et distribués

Systèmes parallèles et distribués Systèmes parallèles et distribués Grégory Mounié 2013-12 Grégory Mounié Systèmes parallèles et distribués 2013-12 1 / 58 Outline 1 Introduction 2 Performances 3 Problèmes du calcul parallèle 4 Intergiciels

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

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

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 to Parallel Programming with MPI

Introduction to Parallel Programming with MPI Introduction to Parallel Programming with MPI Master Modélisation et Simulation - ENSTA cours A1-2 Pierre Kestener pierre.kestener@cea.fr CEA-Saclay, DSM, France Maison de la Simulation MDLS, September,

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

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

É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

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

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

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

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

Contribution à la conception à base de composants logiciels d applications scientifiques parallèles.

Contribution à 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étail

Les environnements de calcul distribué

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

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs TO4T Technologie des ordinateurs Séance 1 Introduction aux technologies des ordinateurs Sébastien Combéfis mardi 27 janvier 2015 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative

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

Histoire de l Informatique

Histoire de l Informatique Histoire de l Informatique Abdelaaziz EL HIBAOUI Université Abdelelmalek Essaadi Faculté des Sciences de-tétouan hibaoui.ens@gmail.com 14 Feb 2015 A. EL HIBAOUI (FS-Tétouan) Architecture des ordinateurs

Plus en détail

INFO-F-404 : Techniques avancées de systèmes d exploitation

INFO-F-404 : Techniques avancées de systèmes d exploitation Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table

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

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

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

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

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

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

Analyse de performance, monitoring

Analyse de performance, monitoring Analyse de performance, monitoring Plan Principes de profilage Projet TPTP dans Eclipse Utilisation des profiling tools de TPTP Philippe Collet Master 1 Informatique 2009-2010 http://deptinfo.unice.fr/twiki/bin/view/minfo/gl

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

Évaluation et implémentation des langages

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

Plus en détail

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

Parallélisme et bioinformatique

Parallélisme et bioinformatique Master EGOIST - Rouen Plan 1 Introduction Parallélisme? Open MPI 2 Historique 3 Pour qui? Pour quoi? Parallélisme? C est quoi le parallélisme? Principe regrouper (physiquement ou logiquement) un ensemble

Plus en détail

Master première année. Mention : Statistiques et Traitement de Données «STD» Rapport de stage

Master première année. Mention : Statistiques et Traitement de Données «STD» Rapport de stage Université Blaise Pascal UFR Sciences et Technologie Département de Mathématique et Informatique 63177 AUBIERE CEDEXFrance Laboratoire de Météorologie Physique (LaMP) 24 avenue des Landais 63177 Aubière

Plus en détail

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

I.1- DÉFINITIONS ET NOTIONS DE BASE

I.1- DÉFINITIONS ET NOTIONS DE BASE I.1- DÉFINITIONS ET NOTIONS DE BASE Informatique Information Automatique Logiciels (Software) Matériels (Hardware) Définition de l information : On appelle une information tout ce qui est transmissible

Plus en détail

Infrastructures Parallèles de Calcul

Infrastructures Parallèles de Calcul Infrastructures Parallèles de Calcul Clusters Grids Clouds Stéphane Genaud 11/02/2011 Stéphane Genaud () 11/02/2011 1 / 8 Clusters - Grids - Clouds Clusters : assemblage de PCs + interconnexion rapide

Plus en détail

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy Séminaire Aristote, 17 Déc. 2009 Ecole Polytechnique Palaiseau Plan L'univers du cloud Ressources Grilles, middleware

Plus en détail

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

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

Plus en détail

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

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

Infrastructure de calcul du CRRI

Infrastructure de calcul du CRRI Infrastructure de calcul du CRRI Types d'infrastructures de calcul Calcul Intensif (High Performance Computing) Tâches fortement couplées (codes vectoriels / parallèles) Supercalculateurs, SMP, clusters,

Plus en détail

I00 Éléments d architecture

I00 Éléments d architecture I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,

Plus en détail

Informatique et Société : une brève histoire

Informatique et Société : une brève histoire Informatique et Société : une brève histoire Igor Stéphan UFR Sciences Angers 2012-2013 Igor Stéphan UEL29 1/ 24 Informatique et Société : une brève histoire 1 Les conditions de l émergence 2 3 4 5 Igor

Plus en détail

Alchin Couderc Flambard TBSEID 2

Alchin Couderc Flambard TBSEID 2 Alchin Couderc Flambard Lycée Charles Blanc TBSEID 2 2008/2009 Depuis le début de notre formation en électronique en lycée professionnel nous avons vu plusieurs domaines d'intervention tel que le brun,

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

Systèmes distribués et virtualisation de ressources

Systèmes distribués et virtualisation de ressources p. 1/18 Systèmes distribués et virtualisation de ressources Tanguy RISSET (Transparents : Antoine Fraboulet) tanguy.risset@insa-lyon.fr p. 2/18 Plan 1 Distribution de ressources 1. Distribution de ressources

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

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO Architecture des Ordinateurs Première partie Cécile Germain Daniel Etiemble Licence d Informatique - IUP Miage - FIIFO Table des matières 1 Introduction 3 2 Les composantes de l ordinateur 7 2.1 Le modèle

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

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

Optimisation des performances et Parallélisme en C/C++ - openmp - MPI MPE - UPC - CUDA 1 / 118-op

Optimisation des performances et Parallélisme en C/C++ - openmp - MPI MPE - UPC - CUDA 1 / 118-op Optimisation des performances et Parallélisme en C/C++ - openmp - MPI - UPC - CUDA -opencl http://www.ann.jussieu.fr/pironneau Olivier Pironneau 1 1 University of Paris VI, Laboratoire J.-L. Lions, Olivier.Pironneau@upmc.fr

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

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

Éléments de programmation et introduction à Java

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

Calcul scientifique précis et efficace sur le processeur CELL

Calcul scientifique précis et efficace sur le processeur CELL Université P. et M. Curie Master spécialité informatique Calcul scientifique précis et efficace sur le processeur CELL NGUYEN Hong Diep Rapport de stage recherche de master 2 effectué au laboratoire LIP6

Plus en détail

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

Happy birthday ZSet High performance computing dans ZSet

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

Plus en détail

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

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

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

Plus en détail

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

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

Plus en détail

Exploitation efficace des architectures parallèles de type grappes de NUMA à l aide de modèles hybrides de programmation

Exploitation efficace des architectures parallèles de type grappes de NUMA à l aide de modèles hybrides de programmation Exploitation efficace des architectures parallèles de type grappes de NUMA à l aide de modèles hybrides de programmation Jérôme Clet-Ortega To cite this version: Jérôme Clet-Ortega. Exploitation efficace

Plus en détail

AMBASSADE DE FRANCE EN ALLEMAGNE SERVICE POUR LA SCIENCE ET LA TECHNOLOGIE

AMBASSADE DE FRANCE EN ALLEMAGNE SERVICE POUR LA SCIENCE ET LA TECHNOLOGIE AMBASSADE DE FRANCE EN ALLEMAGNE SERVICE POUR LA SCIENCE ET LA TECHNOLOGIE Le Conseiller pour la Science et la Technologie SST/PR Berlin, le 23 novembre 2010 Etat des lieux comparatif dans le domaine des

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

Introduction à la Programmation Parallèle: MPI

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

Plus en détail

Programmation parallèle pour le calcul scientifique

Programmation parallèle pour le calcul scientifique Méthodologie M2 Programmation parallèle pour le calcul scientifique Benoît Semelin 2014 Préliminaire 1000 x ε ~ ε - Loguez vous sur rubicon.obspm.fr puis sur momentum.obspm.fr - Ecrire un programme qui:

Plus en détail

Groupe calcul parallèle

Groupe calcul parallèle Groupe calcul parallèle «Exploiter le potentiel des nouvelles architectures» Vincent Lafage Luz Guevara Ivana Hrivnacova Christophe Diarra Contact :Luz Guevara e-mail : guevara@ipno.in2p3.fr Tel : 54463

Plus en détail

Chapitre 4: Introduction au Cloud computing

Chapitre 4: Introduction au Cloud computing Virtualisation et Cloud Computing Chapitre 4: Introduction au Cloud computing L'évolution d'internet Virt. & Cloud 12/13 2 Définition Le cloud computing est une technologie permettant de délocaliser les

Plus en détail

Fonctionnement et performance des processeurs

Fonctionnement et performance des processeurs Fonctionnement et performance des processeurs Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Fonctionnement des processeurs Unités de calcul

Plus en détail

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

Linux embarqué: une alternative à Windows CE?

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

Cours 3 : L'ordinateur

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

Plus en détail

THÈSE DEVANT L UNIVERSITÉ DE RENNES 1

THÈSE DEVANT L UNIVERSITÉ DE RENNES 1 N d ordre : 3881 THÈSE présentée DEVANT L UNIVERSITÉ DE RENNES 1 pour obtenir le grade de : DOCTEUR DE L UNIVERSITÉ DE RENNES 1 Mention : Traitement du Signal et Télécommunications par Julien LALLET Équipe

Plus en détail

Chapitre 1 - Langages de description d architectures matérielles hybrides

Chapitre 1 - Langages de description d architectures matérielles hybrides Chapitre 1 - Langages de description d architectures matérielles hybrides «Hélas, tout a déjà été dit et on arrive trop tard!» (La Bruyère) Résumé La méthode MEDEVER nécessite la description de l architecture

Plus en détail

Rapport de stage Master 2

Rapport de stage Master 2 Rapport de stage Master 2 Informatique Haute Performance et Simulation, 2 ème année Ecole Centrale Paris Accélération des méthodes statistiques sur GPU Auteur : CHAI Anchen. Responsables: Joel Falcou et

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Structure de base d un ordinateur

Structure de base d un ordinateur Structure de base d un ordinateur 1-Définition de l ordinateur L ordinateur est un appareil électronique programmable qui traite automatiquement les informations. Il est constitué de l unité centrale et

Plus en détail

Architecture matérielle des systèmes informatiques

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

Plus en détail

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

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

Plus en détail

É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

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

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

Plus en détail

Leçon 1 : Les principaux composants d un ordinateur

Leçon 1 : Les principaux composants d un ordinateur Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques

Plus en détail

Exposé de Pérennisation Comission de la Recherche 26 juin 2014

Exposé de Pérennisation Comission de la Recherche 26 juin 2014 Enseignant-Chercheur en informatique MINES ParisTech PSL Research University CRI (Centre de Recherche en Informatique) Exposé de Pérennisation Comission de la Recherche 26 juin 2014 2 Université de Rennes/IRISA

Plus en détail

Sanity Check. bgcolor mgcolor fgcolor

Sanity Check. bgcolor mgcolor fgcolor Sanity Check bgcolor mgcolor fgcolor 0 1 2 3 4 5 6 7 8 9 10 Compilation pour cibles hétérogènes: automatisation des analyses, transformations et décisions nécessaires, François Irigoin et Ronan Keryell

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

ARCHITECTURE ET FONCTIONNEMENT

ARCHITECTURE ET FONCTIONNEMENT ORAL PROBATOIRE OPTION SYSTEMES D INFORMATION ARCHITECTURE ET FONCTIONNEMENT D UNE CARTE MERE POUR PC PETITGAND Gérald Session 2004 Sommaire Introduction 3 1. Architecture d une carte mère 4 1.1. L'évolution

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

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

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

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

Informatique Industrielle Année 2004-2005. Architecture des ordinateurs Note de cours T.Dumartin

Informatique Industrielle Année 2004-2005. Architecture des ordinateurs Note de cours T.Dumartin Informatique Industrielle Année 2004-2005 Architecture des ordinateurs Note de cours T.Dumartin 1 GENERALITES 5 1.1 INTRODUCTION 5 1.2 QU ENTEND-T-ON PAR ARCHITECTURE? 5 1.3 QU EST CE QU UN MICROPROCESSEUR?

Plus en détail

Introduction à l Informatique

Introduction à l Informatique Introduction à l Informatique Principes et Généralités Enseignant : Walid KADRI walidk.04@hotmail.com Département de "LMD Droit" Faculté de Sciences Politiques et de Droit Université d ORAN Année Universitaire

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

Vérifier la qualité de vos applications logicielle de manière continue

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

Projet Active Object

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