Calculateurs parallèles et styles de programmation

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

Download "Calculateurs parallèles et styles de programmation"

Transcription

1 Calculateurs parallèles et styles de programmation Polyvalence des architectures ccnuma (resp. NUMAflex) des Origin 2000 (resp. 3000) Thomas Leduc CERMA - UMR CNRS/MCC 1563 École d Architecture de Nantes le 16 février 2005

2 Plan de la présentation ˆ Introduction : généralités et classifications, ˆ top500.org et centres nationaux, ˆ le SGI Origin 2000 du PPIdFS, ˆ NUMAflex et les Origin/Altix 3000, ˆ les outils, ˆ comparaisons en exemples, ˆ fonctions booléennes 1-résilientes.

3 Tentatives de classifications Généralités sur l algorithmique parallèle Première partie I Introduction : généralités et classifications

4 Tentatives de classifications Généralités sur l algorithmique parallèle Points abordés... Tentatives de classifications Petit rappel... Taxinomie de Flynn Adressages mémoire Traitement parallèle sur le processeur Quelques AOC... Généralités sur l algorithmique parallèle Granularité Modèles de programmation Évaluation du parallèlisme

5 Tentatives de classifications Généralités sur l algorithmique parallèle Caractéristiques fondamentales Une machine parallèle, c est : ˆ une collection d unités de calculs, ˆ capables de communiquer ˆ et coopérer ˆ dans le but de résoudre rapidement ˆ des problèmes de grande taille.

6 Tentatives de classifications Généralités sur l algorithmique parallèle Taxinomie de Flynn revisitée... Préparation du petit-déjeuner dans la famille D. : ˆ SISD (von Neumann) : Mme D. (le programme) se charge de tout et traite les tartines (découpe, application du beurre et de la confiture : les données) en séquence ; ˆ MISD (pipeline) : à la chaîne, le 1er coupe le pain, le 2e le beurre, le 3e applique la confiture et le 4e dispose le résultat dans un plat... Si le temps passé à chaque étape est identique, l accélération est proche de 4 ; ˆ SIMD : Mme D. prend les commandes, les autres obéïssent en traitant, de manière synchrone, leurs propres données (réplication du pain, de la plaquette de beurre et du pot de confiture en autant de convives que possible) ; ˆ MIMD : chacun est autonome et prépare ses tartines de manière asynchrone (attention aux accès concurrents à une même donnée partagée) ;

7 Tentatives de classifications Généralités sur l algorithmique parallèle Types d adressage mémoire ˆ mémoire distribuée : ˆ architectures de types DADM Disjoint Address space Distributed Memory, ˆ accès mémoire de type NORMA (NO Remote Memory Access), ˆ + : scalabilité des accès mémoires, cohérence de cache ; ˆ : échange de message explicite, cohérence difficile entre distribution des données et travail des processeurs, surcoûts dûs aux communications/synchronisations ;

8 Tentatives de classifications Généralités sur l algorithmique parallèle Types d adressage mémoire (2) ˆ mémoire partagée : ˆ architectures de types Single Address space Shared/Distributed Memory, Architecture Accès mémoire Commentaire SASM UMA Uniform Memory Access, coût d accès constant SADM NUMA Non-UMA, temps d accès fonction de la localisation des données ccnuma cache-coherent NUMA, variante des NUMA avec un mécanisme de caches OSMA COMA Operating System Memory Access Cache Only Memory Access, les mémoires locales sont assimilées à des caches ˆ + : programmation simplifiée, adressage global, rapide partage des données ; ˆ : passage à l échelle, cohérence de cache coûteuse et parfois explicite ;

9 Tentatives de classifications Généralités sur l algorithmique parallèle Traitement parallèle au niveau du processeur ˆ architecture super-scalaire : plusieurs opérations arithmétiques simultanées en pipeline, The R10000 is a 4-way superscalar RISC CPU. Four-way means that it can fetch and decode 4 instructions per clock cycle. Superscalar means that it has enough independent, pipelined execution units that it can complete more than 1 instruction per clock cycle, réf , ; ˆ architecture vectorielle : ˆ 16 pipelines sur NEC SX-5 4 sur MIPSpro R , ˆ bande passante registres : 32 accès à des références de 64 bits par cycle sur NEC SX-5 1 sur MIPSpro R10K, ˆ 2 opérations 16 pipelines par cycle sur NEC SX-5 2 opérations sur MIPSpro R , ˆ trouver des séquences de codes où un même opérateur est appliqué à un grand nombre d opérandes!

10 Tentatives de classifications Généralités sur l algorithmique parallèle Bref glossaire... ˆ NOW : Network Of Workstation, ˆ cluster : notion logique plus que réalisation physique (load balancing et high availability, 1994 : original Beowulf cluster), ˆ MPP : Massively Parallel Processor, a loosely coupled or shared nothing system, ˆ SMP : Symmetric Multi-Processor, a shared everything system (image système unique), ˆ constellation : cluster constitué d un nombre restreint de noeuds hyper puissants, à grosse mémoire partagée.

11 Tentatives de classifications Généralités sur l algorithmique parallèle Points abordés... Tentatives de classifications Petit rappel... Taxinomie de Flynn Adressages mémoire Traitement parallèle sur le processeur Quelques AOC... Généralités sur l algorithmique parallèle Granularité Modèles de programmation Évaluation du parallèlisme

12 Tentatives de classifications Généralités sur l algorithmique parallèle Granularité de parallélisme ˆ fine : la recherche sur les séquences d instructions susceptibles d être indépendantes (et donc parallélisables) se fait au niveau de groupes d une dizaine d instructions au plus ; ˆ moyenne : ce degré correspond au niveau appelé tâche qui regroupe les notions de procédures, routines, primitives... ˆ grosse : ce degré correspond au niveau de l application elle-même. Le nombre d instructions n est ici plus limité et le parallélisme est recherché dans le déroulement même des travaux ou dans la mise en concurrence des différentes applications ou des différents utilisateurs. Exception faite des ressources, il n y a souvent pas de dépendance entre les programmes.

13 Tentatives de classifications Généralités sur l algorithmique parallèle Modèles de programmation ˆ parallélisme de données (décomposition de domaines), granularité fine à moyenne, modèle d exécution SIMD ou MIMD + synchronisations globales régulières, ˆ paralléliseurs automatiques (APO), ˆ outils data-parallel (HPF), ˆ directives de parallélisation à mémoire partagée (OpenMP), ˆ parallélisme de contrôle (ou de tâches), granularité moyenne à grosse, modèle d exécution MIMD (SPMD ou MPMD), ˆ PVM ou MPI, ˆ parallélisme de flux : vectorisation dans le cas d une fine granularité ; les données traversent les tâches élémentaires en mode pipeline.

14 Tentatives de classifications Généralités sur l algorithmique parallèle Évaluation des performances Soit un algorithme, de taille n, sur p processeurs, ˆ accélération (speedup) : S p (n) = Ts(n) T p(n), ˆ parallélisabilité : S p (n) = T 1(n) T p(n), ˆ généralement p S p (n) S p (n) 1. Les gains sur-linéaires sont souvent dû à des défauts de cache ; ˆ efficacité : E p (n) = Sp(n) p, ˆ loi d Amdahl : soit f(n) la fraction d algorithme devant être 1 exécutée séquentiellement, S p (n) = 1 f (n) f (n)+ p p 1 f (n). Si 10% du code est purement séquentiel, l accélération ne pourra pas dépasser le facteur 10. ˆ passage à l échelle ou scalabilité,

15 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Deuxième partie II Le top500.org et le cas français

16 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Points abordés... État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationaux

17 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org ˆ 24 e édition visible sur : ˆ publication bi-annuelle (juin & novembre), depuis juin 1993, des «500 most powerful commercially available computer systems known to us», ˆ ordonnancement selon l indicateur de meilleure performance au Linpack Benchmark - implémentation High-Performance Linpack (HPL) nécessitant MPI et les BLAS (ou VSIPL), sur : ˆ jusqu en 2004 : liste plus spécifique :

18 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - type d architecture ˆ classement par type d architecture : Nbre % Linpack Théorie #proc Tflops Tflops Cluster Constellation MPP All en 10 ans : SIMD (7% en 93), Single Processor (20% en 93) et SMP (53% en 98) et Cluster et Constellation, ˆ... et par architecture de processeur : Nbre % Linpack Théorie #proc Tflops Tflops Scalaire Vectorielle

19 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - point de vue géographique

20 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - autre point de vue géographique

21 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - constructeurs

22 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - famille de processeurs

23 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Points abordés... État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationaux

24 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - évolution des types d architecture

25 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - évolution des types de processeurs

26 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - cas particulier des clusters

27 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau top500.org - planification...

28 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Points abordés... État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationaux

29 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Aperçu du TOP5 et de quelques entrées... ˆ extraits du top500.org au 11/2004 : Rang Site Constr. Tflops soutenus 1 US/DOE IBM 71 2 US/NASA SGI 52 3 JP/Earth Simulator Center NEC 36 4 SP/Barcelona SC IBM 21 5 US/LLNL Cal. Dig. Corp UK/ECMWF IBM 9 17 CN/Shangai SC Dawning 8 30 DE/FZJ IBM FR/CEA HP CH/Crédit Suisse IBM US/SBC Service Inc. HP 0.85 ˆ il y a 128 entrées européennes dont 15 françaises,

30 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Points abordés... État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationaux

31 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Centres de Calcul nationaux (11/2004) Rang Constr Type Site An #proc 41 HP αserver SC45, 1 GHz CEA/DAM IBM xseries Cluster Xeon 2.4 GHz - GEth Total IBM xseries Cluster Xeon 2.4 GHz - GEth SG IBM pseries 690 (Power 4+, 1.7 GHz) CNRS/Idris IBM pseries 655 (Power 4+, 1.7 GHz) CNRS/Idris SGI Altix 1.5 GHz CEG Gramat HP Cluster Xeon 3.2 Gz - Myrinet Soc. Gale SGI Altix 1.3 GHz Total SGI Altix 1.3 GHz Total Bull NovaScale, Itanium2 1.3 GHz, quadrics Bull HP SuperDome 875 MHz/HyperPlex Cegetel HP αserver SC45, 1.25 GHz CEA IBM eserver Opteron 2 GHz, GEth Gouv HP Cluster Xeon 3 Gz Crédit Lyon HP Cluster Xeon 3 Gz Crédit Lyon

32 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Centres de calcul académiques (1) ˆ IDRIS : ˆ Zahir : 116 noeuds IBM/SP4, 1024 cpu, 3.1 To RAM, 6.55 Tflops, ˆ Uqbar : 3 noeuds vectoriels NEC SX-5, 40 cpu, 224 Go RAM, 320 Gflops, ˆ vedia : cluster de 6 noeuds quadripro COMPAQ ES40, 24 cpu, 36 Go RAM, 38 Gflops, ˆ Iris : frontale graphique, SGI Origin 3800, 8 R 14K (500 MHz), 4 Go RAM, 2 pipes graph., ˆ Rhodes : frontale, SGI Origin 2100, 8 R 12K (350 MHz), 16 Go RAM, ˆ Gaya : stockage, SGI Origin 3900, 12 R 16K, 32 Go, 31 To HD + 1 Po sur 3 robots de stockage,

33 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Centres de calcul académiques (2) ˆ CINES : ˆ IBM/SP4, 9 noeuds, 1.85 Tflops, 4 To HD, ˆ IBM/SP3, 29 noeuds, 464 cpu, 0.7 Tflops, 4.6 To HD, ˆ SGI Origin 3800, 768 R 14K (500 MHz), 384 Go RAM, 768 Gflops, ˆ SGI Origin 2100, 8 cpu, 22 To HD, ˆ Sun Enterprise 4500, 6 Ultra SparcII (336 Mhz), 2 Go RAM, 6 To HD, ˆ IBM H50, 2 cpu, ˆ SAN + Robothèque STORAGETEK STK 9310 (5 500 cartouches, 9 lecteurs),

34 État des lieux en 11/2004 Évolution sur la dernière décennie La France face au top5 et dans la CE Centres de calcul nationau Centres de calcul académiques (3) ˆ méso-centres (http://www.irisa.fr/orap/) : ˆ CRI Orsay : ˆ CCH : ˆ CRIHAN : ˆ ICPS : ˆ CALMIP : ˆ CDCSP : https://cdcsp.univ-lyon1.fr/, ˆ...

35 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Troisième partie III SGI Origin 2000 du PPIdFS

36 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Points abordés... Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement

37 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement SGI Origin 2000 du PPIdFS ˆ 64 cpu MIPSpro R (195 et 250 MHz) avec 2 caches L1 de 32 Ko et un cache L2 de 4 Mo, ˆ 24 Go de RAM, ˆ 288 Go de disques, ˆ architecture ccnuma, ˆ topologie hypercube, ˆ CrayLink Interconnect de 1600 Mo/s, ˆ IRIX m (< m).

38 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Rack et module 340 kg, cm 3, 5750 watts.

39 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Dissection d un module

40 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Contenu d une carte nodale IP27 ou IP31 Distributed Shared-Memory, directory-based cache coherence.

41 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Interconnexion des modules

42 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Le MultiModule System Controller

43 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Interconnexion des MMSC

44 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement MMSC display et MSC Front Panel

45 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Points abordés... Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement

46 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Rappels : Question de latences ˆ 1 cycle d horloge pour une CPU cadencée à 195 MHz (resp. 250 MHz) dure plus de 5.1 ns (resp. exactement 4 ns), ˆ la mémoire est organisée en pages. Chaque accès mémoire nécessite de traduire une adresse virtuelle en une adresse physique. Le Translation Lookaside Buffer stocke les 64 dernières pages accédées pour réduire la latence. L accès à une autre page constitue un défaut de page ; Type d accès mémoire Latence (en cycles) Registre 1 Cache L1 2 ou 3 Cache L2 (après L1) 8 à 12 Mémoire principale (+ cache dans le TLB) 75 à 250 Mémoire principale (+ recharge du TLB) 2000 Swap > 10 8

47 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Latences pour les accès distants Configuration à 64 cpus : ˆ 5 sauts de routage au maximum (2.97 en moyenne), ˆ latence en lecture 1110 ns au maximum (796 ns en moyenne).

48 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Points abordés... Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement

49 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Bandes passantes comparées ˆ sur SGI Origin 2000 du PPIdFS (entre 500 et 900 mbps), avec l implémentation propriétaire IRIX/MPT-1.6 : % cc -fullwarn -Ofast=ip27 -ansi -pedantic -o sendrecv sendrecv.c -lmpi % mpirun -np 2./sendRecv Bande passante : Mo/s ( mbps) % mpirun -np 2./sendRecv Bande passante : Mo/s ( mbps) ˆ sur un NOW : entre deux xeon sur un réseau local Fast-Ether-Switché (85 mbps), avec l implémentation LAM : % hcc -Wall -ansi -pedantic -O3 -o sendrecv sendrecv.c % mpirun -np 2./sendRecv Bande passante : Mo/s (85.05 mbps)

50 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Listing du MPI Send / MPI Recv 20 M P I I n i t (& argc, & a r g v ) ; MPI Comm rank (MPI COMM WORLD, & rang ) ; n = a t o i ( a r g v [ 1 ] ) ; tab = ( unsigned char * ) c a l l o c ( n, s i z e o f ( unsigned char ) ) ; i f ( rang == 0) { 25 f o r ( i = 0 ; i < n ; i ++) tab [ i ] = ( unsigned char ) ( * ( double ) rand ( ) / ( ( double ) RAND MAX + 1) ) ; t t d = MPI Wtime ( ) ; MPI Send ( tab, n, MPI CHAR, 1, TAG VECTEUR, MPI COMM WORLD) ; MPI Recv(& t t f, 1, MPI DOUBLE, 1, TAG TEMPS, MPI COMM WORLD, & s t a t u t ) ; 30 p r i n t f ( Bande p a s s a n t e : %. 2 f Mo/ s (%.2 f mbps )\n, n / (MO * ( t t f t t d ) ), 8 * n / (MO * ( t t f t t d ) ) ) ; } e l s e i f ( rang == 1) { MPI Recv ( tab, n, MPI CHAR, 0, TAG VECTEUR, MPI COMM WORLD, & s t a t u t ) ; t t f = MPI Wtime ( ) ; 35 MPI Send(& t t f, 1, MPI DOUBLE, 0, TAG TEMPS, MPI COMM WORLD) ; } M P I F i n a l i z e ( ) ;

51 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Points abordés... Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement

52 Présentation du matériel Questions de latences Bandes passantes comparées Assistance au développement Assistance au développement ˆ ˆ debugger TotalView, ˆ analyseur Vampir / Vampirtrace, ˆ parallèliser à bon escient : % cc -g -pg -o seqgcc produitmatricescarrees.c produitmatricescarrees_tc.c %./seqgcc 1000 > /dev/null 2>&1 % gprof --brief./seqgcc [...] % cumulative self self total time seconds seconds calls ms/call ms/call name produitmatricescarrees initialisation calcultrace [...]

53 Quatrième partie IV SGI : famille des Origin et Altix 3000

54 SGI : du ccnuma au NUMAflex ˆ design NUMAflex : cpu, mémoire, I/O, réseau d interconnexion, pipe graphique et stockage de masse sont autants de composants (bricks) indépendants ; Tronc commun Origin/Altix : ˆ D-brick (stockage, 16 FC, 2To), ˆ IX-brick (base I/O, 11 slots PCI-X) et PX-brick (PCI extension, 12 slots hotplugs PCI/PCI-X), ˆ R-brick ([meta-]routeur, 512cpus),

55 SGI : gammes Origin et Altix ˆ Commodity Off the Shelf Technology (COST) : tous les éléments matériels des supercalculateurs scalaires d aujourd hui, sont des éléments conçus pour un usage générique dans des systèmes diversifiés ; gamme Altix (01/2003) : ˆ OS : linux, ˆ C-brick : 4 Itanium2 (Madison), caches : 32 Ko L1, 256 Ko L2, 9 Mo Mo L3, 32Go ram ; ˆ seul (?) cluster linux NUMA. Image système unique jusqu à 64 cpus (< 1To de RAM en 64 bits) ; gamme Origin (07/2000) : ˆ OS : Irix, ˆ C-brick : 4 MIPSpro R14000 (jusqu à 16 R16000 pour la Cx-brick), caches : 32 Ko L1, 8 Mo L2 ;

56 Dissection d un rack

57 Configuration à 512 cpus (1) en configuration calcul, il y a dans l Origin 3800 de la NASA : ˆ 128 C-Bricks dans 16 C-racks, ˆ 44 R-Bricks, ˆ 2 I-bricks, ˆ 1 P-Brick, ˆ 0 D-Brick ˆ 17 Power Bay (une par rack),

58 Configuration à 512 cpus (2)

59 Question de latences et bandes passantes Latences : ˆ gamme Altix : ˆ accès mémoire locale (noeud bipro) : 145 ns ; ˆ accès mémoire autre noeud même C-brick : 290 ns ; ˆ chaque saut de routage ajoute 45 à 50 ns (en NUMAlink v3), chaque mètre de cable NUMAlink ajoute 10 ns, ˆ nombre de sauts de routage au pire : 3 (16 cpus), 4 (32 cpus), 5 (64 et 128 cpus), 7 (256 cpus)... ˆ gamme Origin : ˆ accès mémoire locale : 175 ns ; ˆ accès mémoire distante : 585 ns (au pire), ns (en moyenne) ;

60 NASA : 20 noeuds SGI Altix 3700 à 512 cpus

61 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Cinquième partie V Énumération des principaux outils

62 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Points abordés... APO en Fortran 90 OpenMP SHMEM HPF PVM MPI

63 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI L Auto-Parallelizing Option (APO) ˆ The MIPSpro Auto-Parallelizing Option (APO) enables the MIPSpro compilers to optimize parallel codes and to enhances performance on multiprocessor systems. APO is a replacement for POWER C and POWER Fortran ; ˆ l APO est adaptée au cas particulier d applications possédant des données uniformes et en grand nombre et dont les traitements à effectuer sont identiques sur chaque donnée (data-parallelism, fine granularité).

64 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Bibliographie concernant l APO Pour plus d information, consulter les documents suivants disponibles en ligne à l adresse : ˆ chapitre 8 du MIPSpro Fortran 90 Commands and Directives Reference Manual (document n ), ˆ chapitre 5 du C++ Programmer s Guide (document n ), ˆ annexe C du MIPSpro Fortran 77 Programmer s Guide (document n ),

65 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Produit de matrices en Fortran 90 PROGRAM p r o d u i t M a t r i c e s i m p l i c i t none i n t e g e r : : i, j, k, n r e a l : : ttd, t t f 5 r e a l, a l l o c a t a b l e, dimension ( :, : ) : : a, b, c PRINT *, E n t r e z l a d i m e n s i o n des m a t r i c e s c a r r e e s : ; READ *, n CALL c p u t i m e ( time=t t d ) ALLOCATE( a ( n, n ), b ( n, n ), c ( n, n ) ) 10 CALL random number ( a ( :, : ) ) CALL random number ( b ( :, : ) ) do i =1,n do j =1,n c ( i, j ) = do k=1,n c ( i, j ) = c ( i, j ) + a ( i, k ) * b ( k, j ) end do end do end do 20 CALL cpu time ( time=t t f ) PRINT*, Temps t o t a l de c a l c u l :, t t f ttd, s e c o n d e s! 25 CALL c a l c u l e r T r a c e ( c, n ) DEALLOCATE( a, b, c ) END PROGRAM p r o d u i t M a t r i c e s

66 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI L APO sur SGI Origin 2000/3800 en chiffres ˆ compilation avec production de fichiers.anl,.list et.m : % f90 -apokeep -Ofast=ip27 -fullwarn -o f90apo produitmatrices.f90 /opt/mipspro/ /usr/lib32/cmplrs/be translates /tmp/ctmb.baaa0l l5 into produitmatrices.m, based on source produitmatrices.f90. The file produitmatrices.list gives the parallelization status of each loop. ˆ résultats pour n=2000 (Origin 2000 vs Origin 3800) : nbpcs temps (en s) accélération efficacité

67 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Rapport automatique : extrait du fichier.list P a r a l l e l i z a t i o n Log f o r Subprogram c a l c u l e r t r a c e 5 2 : PARALLEL ( Auto ) m p d o c a l c u l e r t r a c e 1 5 P a r a l l e l i z a t i o n Log f o r Subprogram MAIN 1 0 : Not P a r a l l e l C a l l F4I4RAN on l i n e : Not P a r a l l e l 10 C a l l F4I4RAN on l i n e : Not P a r a l l e l C a l l F4I4RAN on l i n e : Not P a r a l l e l 15 C a l l F4I4RAN on l i n e : PARALLEL ( Auto ) mpdo MAIN : Not P a r a l l e l Loop i s c o n t a i n e d w i t h i n a p a r a l l e l c o n s t r u c t : Not P a r a l l e l Loop i s c o n t a i n e d w i t h i n a p a r a l l e l c o n s t r u c t.

68 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Rapport automatique : extraits du fichier.m SUBROUTINE c a l c u l e r t r a c e (MATRICE, DIM) C$OMP PARALLEL DO i f ( ( ( DBLE( m p s u g n u m t h r e a d s f u n c$ ( ) ) * ( (DBLE( C$& mp sug numthreads func$ ( ) ) * 1. 23D+02) D+03) ). LT. ( ( DBLE( C$& DIM) * DBLE( ( m p s u g n u m t h r e a d s f u n c$ ( ) + 1) ) ) * 4. 0 D00 ) ) ), 5 C$& p r i v a t e ( I ), s h a r e d (MATRICE, DIM), r e d u c t i o n ( + : SOMME) DO I = 1, DIM, 1 SOMME = (MATRICE( I, I ) + SOMME) END DO 10 PROGRAM MAIN C$OMP PARALLEL DO i f ( ( ( DBLE( m p s u g n u m t h r e a d s f u n c$ ( ) ) * ( (DBLE( C$& m p s u g n u m t h r e a d s f u n c$ ( ) ) * D+02) D+03) ). LT. ( ( DBLE( ( C$& m p s u g n u m t h r e a d s f u n c$ ( ) + 1) ) * (DBLE(N) * (DBLE(N) * DBLE(N) ) ) ) C$& * 2. 0 D00 ) ) ), s h a r e d ( a l l o c a d d r ), p r i v a t e ( J, I, K), s h a r e d ( 15 C$& a l l o c a d d r 0, a l l o c a d d r 1, N, a l l o c a d d r ) DO J = 1, N, 1 DO I = 1, N, 1 a l l o c a d d r ( I, J ) = 0. 0 DO K = 1, N, 1 20 a l l o c a d d r ( I, J ) = ( a l l o c a d d r ( I, J ) +( a l l o c a d d r 0 (K, J ) * a l l o c a d d r 1 ( I, K) ) ) END DO END DO END DO

69 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Points abordés... APO en Fortran 90 OpenMP SHMEM HPF PVM MPI

70 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI OpenMP : Open [specifications for] Multi Processing ˆ ensemble de directives de parallélisme à mémoire partagée - provide a Simple, Portable, Scalable SMP Programming, ˆ site officiel : ˆ support de formation de l IDRIS : ˆ utilise le modèle fork & join d exécution en parallèle : le master thread s exécute seul et séquentiellement jusqu à la première construction parallèle rencontrée. Il crée alors a team of threads travaillant en parallèle jusqu à la fin de zone parallèle où il y a synchronisation. Le master thread continue seul l exécution jusqu à la zone parallèle suivante... ˆ permet un prototypage rapide d application parallèle, ˆ supporte le load balancing en natif (OMP SCHEDULE), ˆ efficace pour un faible nombre de processeurs, ˆ limité aux architectures SMP.

71 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI OpenMP : petit exemple #i n c l u d e <omp. h> i n t main ( i n t argc, char * a r g v [ ] ) { 5 #pragma omp p a r a l l e l p r i n t f ( t h r e a d %d / % d\n, omp get thread num ( ), omp get num threads ( ) ) ; p r i n t f ( This i s t h e end... \ n ) ; r e t u r n EXIT SUCCESS ; } ˆ compilation Linux Intel-cc : % icc -openmp -o exempleopenmp exempleopenmp.c ˆ compilation Irix : % cc -mp -o exempleopenmp exempleopenmp.c % export OMP NUM THREADS=3 %./exempleopenmp thread 1 / 3 thread 0 / 3 thread 2 / 3 This is the end...

72 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Points abordés... APO en Fortran 90 OpenMP SHMEM HPF PVM MPI

73 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI SHMEM - copies de mémoire à mémoire ˆ modèle propriétaire et explicite d échange de données, ˆ architectures à mémoires physiquement distribuées mais globalement adressables (DSM), ˆ transfert de mémoire à mémoire de type GET ou PUT, sans intervention du processeur distant, de données symétriques (stockées à la même adresse), ˆ alternative aux bibliothèques d échanges de messages, ˆ pour plus d info, entrez le mot clef shmem sur

74 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Le shmem get() en pratique #include <mpi. h> /* chronometrage */ 5 #include <mpp/shmem. h> i n t main ( i n t argc, char * a r g v [ ] ) { s t a t i c unsigned char * s r c, * d s t ; i n t i, n ; double ttd, t t f ; 10 s t a r t p e s ( 0 ) ; /* a r g n u l => v a r i a b l e d e n v i r o n n e m e n t NPES prime */ n = a t o i ( a r g v [ 1 ] ) ; s r c = ( unsigned char * ) s h m a l l o c ( n * s i z e o f ( unsigned char ) ) ; d s t = ( unsigned char * ) s h m a l l o c ( n * s i z e o f ( unsigned char ) ) ; i f (0 == shmem my pe ( ) ) 15 f o r ( i = 0 ; i < n ; i ++) s r c [ i ] = ( unsigned char ) ( * ( double ) rand ( ) / ( ( double ) RAND MAX + 1) ) ; s h m e m b a r r i e r a l l ( ) ; /* s y n c h r o n i s a t i o n e m e t t e u r / r e c e p t e u r ( i n d i s p e n s a b l e ) */ i f (1 == shmem my pe ( ) ) { t t d = MPI Wtime ( ) ; /* chronometrage */ 20 shmem getmem ( dst, ( c o n s t unsigned char * ) s r c, n * s i z e o f ( unsigned char ), 0 ) ; t t f = MPI Wtime ( ) ; /* chronometrage */ p r i n t f ( Bande p a s s a n t e : %. 2 f Mo/ s (%.2 f mbps )\n, ( double ) n / (MO * ( t t f t t d ) ), 8. * n / (MO * ( t t f t t d ) ) ) ; 25 } s h f r e e ( s r c ) ; s h f r e e ( d s t ) ; r e t u r n EXIT SUCCESS ; }

75 APO en Fortran 90 OpenMP SHMEM HPF PVM MPI Compilation et exécution d un code SHMEM ˆ compilation et exécution en environnement Irix : % cc -fullwarn -o shmemget shmemget.c -pedantic -lmpi -lsma % NPES=2./shmemGet Bande passante : Mo/s ( mbps) ˆ... résultats obtenus sur un SGI Origin 3800 à 256 cpu et 128 Go de RAM.

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 : Master IM2P2 - Calcul Scientifique

Plan : Master IM2P2 - Calcul Scientifique Plan : Les systèmes HPC Typologie des systèmes : Machines Mémoire partagée Machines à Mémoire Distribuées Machine NUMA Exemples Architectures Processeurs HPC Processeurs scalaires, superscalaires, vectoriels

Plus en détail

Architectures parallèles

Architectures parallèles Architectures parallèles GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Image: Michael Thompsett Merci à Étienne Tremblay Architecture parallèle Architecture parallèle:

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

Plan Formation : Utilisation Hyperion Janvier-Février 2014 http://www.calmip.cict.fr/ Plan Formation :

Plan Formation : Utilisation Hyperion Janvier-Février 2014 http://www.calmip.cict.fr/ Plan Formation : Plan Formation : Introduction : Mésocentre CALMIP Introduction à l Architecture des systèmes HPC Panorama des Systèmes et Processeurs Multi-core Présentation système de Calcul CALMIP : HYPERION Visite

Plus en détail

Parallélisation Automatique

Parallélisation Automatique Parallélisation Automatique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr 8 septembre 2008 1 / 23 Pourquoi la parallélisation automatique? Les gains de performances dus à la technologie s amenuisent

Plus en détail

Tous les processeurs sont connectés à une large mémoire partagée. Difficulté de s étendre à de grands nombres de processeurs

Tous les processeurs sont connectés à une large mémoire partagée. Difficulté de s étendre à de grands nombres de processeurs Modèle de Machine 1a: Mém. Partagée Tous les processeurs sont connectés à une large partagée. Appelée Symmetric Multiprocessors (SMPs) SMPs de Sun, HP, Intel, IBM Puces Multicoeur, exceptées celles qui

Plus en détail

I. Introduction. Quelques définitions (qu est-ce qu une machine parallèle, un programme parallèle, pourquoi le parallélisme?)

I. Introduction. Quelques définitions (qu est-ce qu une machine parallèle, un programme parallèle, pourquoi le parallélisme?) I. Introduction Quelques définitions (qu est-ce qu une machine parallèle, un programme parallèle, pourquoi le parallélisme?) Différents types d architectures parallèles Programmation parallèle Mesure du

Plus en détail

Analyse et mesure de performances du calcul distribué

Analyse et mesure de performances du calcul distribué Analyse et mesure de performances du calcul distribué Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma CruCID Workshop, EMI, Rabat, 5 au 7 juillet 1999 Motivation Types d applications

Plus en détail

Introduction à la Programmation parallèle INFO 3. Camille Coti 1 camille.coti@lipn.univ-paris13.fr

Introduction à la Programmation parallèle INFO 3. Camille Coti 1 camille.coti@lipn.univ-paris13.fr Introduction à la Programmation parallèle Institut Galilée INFO 3 Camille Coti 1 camille.coti@lipn.univ-paris13.fr 1 Université de Paris XIII, CNRS UMR 7030, France 1 Camille Coti Introduction à la Programmation

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

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

Parallélisme. Cours 1

Parallélisme. Cours 1 Parallélisme Cours 1 TD : 20% - TP : 30% - Examen : 50% Feuille A4 manuscrite (pas de photocopie) Fabrice.Huet@etu.unice.fr (prendre rdv par mail pr le contacter) A quoi sert le parallélisme? Augmenter

Plus en détail

Résultats des benchmarks de HPC1 après ajout de 100 cœurs. Date : 06/09/2012. Auteur : Ph Parnaudeau

Résultats des benchmarks de HPC1 après ajout de 100 cœurs. Date : 06/09/2012. Auteur : Ph Parnaudeau Résultats des benchmarks de HPC1 après ajout de 1 cœurs. Date : 6/9/212 Auteur : Ph Parnaudeau 1. Evolution de la configuration la plate forme de calcul du LJLL : HPC1 HPC1 1 Février 211 : UV1 est une

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

Plus en détail

Architectures Parallèles

Architectures Parallèles Architectures Parallèles Cours pour Ingénieur Préparé par Dr. Olfa Hamdi-Larbi ola_ola79@yahoo.fr Reçoit les signaux du contrôleur, cherche les données et les traite Instructions, Données à traiter et

Plus en détail

Introduction à la programmation GPU. P. Fortin UPMC / LIP6 ANR TaMaDi 27/10/2010

Introduction à la programmation GPU. P. Fortin UPMC / LIP6 ANR TaMaDi 27/10/2010 Introduction à la programmation GPU P. Fortin UPMC / LIP6 ANR TaMaDi 27/10/2010 Les processeurs graphiques (GPU) GPU : Graphics Processing Unit GPGPU : General Purpose computation on Graphics Processing

Plus en détail

Cluster de calcul, machine Beowulf, ferme de PC Principes, problématique et échanges d expérience

Cluster de calcul, machine Beowulf, ferme de PC Principes, problématique et échanges d expérience Cluster de calcul, machine Beowulf, ferme de PC Principes, problématique et échanges d expérience 29 mars 2002 Olivier BOEBION - Laboratoire de Mathématiques et de Physique Théorique - Tours 1 Principes

Plus en détail

Jérôme Clet-Ortega. Modèles hybrides de programmation pour architectures parallèles

Jérôme Clet-Ortega. Modèles hybrides de programmation pour architectures parallèles + Jérôme Clet-Ortega Modèles hybrides de programmation pour architectures parallèles + Présentation 2 Équipe projet RUNTIME Dirigée par Raymond Namyst Supports exécutifs pour le calcul hautes performances

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

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,...

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,... Rappels, SISD, SIMD Calculateurs hybrides (GPU-OpenCL) Rappels... SISD,... SIMD Formation d Ingénieurs de l Institut Galiléee MACS 3 Philippe d Anfray Philippe.d-Anfray@cea.fr CEA DSM 2013-2014 SISD :

Plus en détail

Types et performances des processeurs

Types et performances des processeurs Types et performances des processeurs Laboratoire de Systèmes Logiques Structure d un ordinateur contrôle processeur traitement séquenceur registres mémoire entrées/sorties micromémoire opérateurs bus

Plus en détail

Calculs parallèles et Distribués. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com

Calculs parallèles et Distribués. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com Calculs parallèles et Distribués Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com Calculs parallèles et Distribués Introduction Parallélisation sur mémoire distribuée.

Plus en détail

Le logiciel Time Navigator d Atempo (TiNa)

Le logiciel Time Navigator d Atempo (TiNa) Le logiciel Time Navigator d Atempo (TiNa) Une solution de sauvegarde centralisée Patrick Le Jeannic Institut du Développement et des Ressources en Informatique Scientifique Centre National de la Recherche

Plus en détail

Le «thread local storage» et son utilisation

Le «thread local storage» et son utilisation Résumé Les allocations mémoire sont généralement plus coûteuses que d ordinaire en environnement multi-thread. En effet, la majorité des algorithmes d allocation en usage dans les systèmes d exploitation

Plus en détail

Parallélisme, Algorithmes PRAM

Parallélisme, Algorithmes PRAM , Armelle Merlin L.I.F.O Laboratoire d'informatique Fondamentale d'orléans Transparents inspirés des cours de G. Hains et de B. Virot Plan 1 Introduction Langages parallèles Les architectures parallèles

Plus en détail

Chap. 2 - Structure d un ordinateur

Chap. 2 - Structure d un ordinateur Architecture des ordinateurs Michèle Courant S2-27 octobre 2004 Chap. 2 - Structure d un ordinateur 2.1 Processeur ou unité centrale (CPU) 2.1.1 Organisation du CPU 2.1.2 Exécution d une instruction 2.1.3

Plus en détail

Les Microprocesseurs partie2

Les Microprocesseurs partie2 Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI Electronique des Composants & Systèmes Les Microprocesseurs partie2 Cours de L1 - TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE

Plus en détail

Lancement de Star-CCM+ avec SGE

Lancement de Star-CCM+ avec SGE Lancement de Star-CCM+ avec SGE Lionel Meister IUSTI, UMR CNRS 6595 lionel.meister@polytech.univ-mrs.fr 28 septembre 2010 A ce jour, la partition Dix est la seule partition du parc sur laquelle on peut

Plus en détail

Introduction à la programmation parallèle p. 1/85

Introduction à la programmation parallèle p. 1/85 Introduction à la programmation parallèle Maîtrise d informatique Philippe MARQUET Philippe.Marquet@lifl.fr Laboratoire d informatique fondamentale de Lille Université des sciences et technologies de Lille

Plus en détail

Analyse de performance et optimisation. David Geldreich (DREAM)

Analyse de performance et optimisation. David Geldreich (DREAM) Analyse de performance et optimisation David Geldreich (DREAM) Plan de l exposé Analyse de performance Outils Optimisation Démonstrations Analyse de performance Pas d optimisation sans analyse de performance

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

Les architectures parallèles et leur programmation pour le calcul scientifique. Yves Denneulin

Les architectures parallèles et leur programmation pour le calcul scientifique. Yves Denneulin Les architectures parallèles et leur programmation pour le calcul scientifique Yves Denneulin Plan du cours Introduction au parallélisme Le parallélisme de données présentation illustration sur deux langages

Plus en détail

M1 MIAGE Option IFD Data Mining et Parallélisme

M1 MIAGE Option IFD Data Mining et Parallélisme M1 MIAGE Option IFD Data Mining et Parallélisme Alexandre Termier 2011-2012 S2 1 / 24 Besoin ˆ Data Mining doit... traiter de gros volumes de données pouvoir eectuer des analyses complexes (gros calculs)

Plus en détail

Introduction à la programmation // sur GPUs en CUDA et Python

Introduction à la programmation // sur GPUs en CUDA et Python Introduction à la programmation // sur GPUs en CUDA et Python Denis Robilliard Équipe CAMOME: C. Fonlupt, V. Marion-Poty, A. Boumaza LISIC ULCO Univ Lille Nord de France BP 719, F-62228 Calais Cedex, France

Plus en détail

Systèmes & Réseaux. Georges Arhodakis Université Paris 8

Systèmes & Réseaux. Georges Arhodakis Université Paris 8 Systèmes & Réseaux Georges Arhodakis Université Paris 8 Sommaire Introduction Historique Service du noyau Appel Système Trappes & Interruptions Horloge & Gestion du Temps Ordonnancement Contrôle & Gestion

Plus en détail

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Beat Wolf 1, Pierre Kuonen 1, Thomas Dandekar 2 1 icosys, Haute École Spécialisée de Suisse occidentale,

Plus en détail

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1 CHAPITRE 1 FOURNIR À L'UTILISATEUR UNE MACHINE VIRTUELLE ET UN ENVIRONNEMENT D'EXÉCUTION DE PROGRAMMES Plan ENVIRONNEMENT DE TRAVAIL ADAPTÉ AU BESOIN DE L'UTILISATEUR Fonctions de l'environnement d'exécution

Plus en détail

Comparaison de MPI, OpenMP et MPI+OpenMP sur un nœud multiprocesseur multicœurs AMD à mémoire partagée.

Comparaison de MPI, OpenMP et MPI+OpenMP sur un nœud multiprocesseur multicœurs AMD à mémoire partagée. RenPar 19 / SympA 13 / CFSE 7 Toulouse, France, du 9 au 11 septembre 2009 Comparaison de MPI, OpenMP et MPI+OpenMP sur un nœud multiprocesseur multicœurs AMD à mémoire partagée. Khaled Hamidouche, Franck

Plus en détail

HAUTE DISPONIBILITE & CONTINUITÉ DE SERVICE MULTI PLATES FORMES. Simple & Performant. www.quick software line.com

HAUTE DISPONIBILITE & CONTINUITÉ DE SERVICE MULTI PLATES FORMES. Simple & Performant. www.quick software line.com HAUTE DISPONIBILITE & CONTINUITÉ DE SERVICE MULTI PLATES FORMES Haute disponibilité pour Serveurs Ouverts (Windows, UNIX, AIX, Linux, VMware (Windows, UNIX, AIX, Linux, VMware ) Généralités Quelques définitions

Plus en détail

Multi-processeurs, multi-cœurs et cohérence mémoire et cache

Multi-processeurs, multi-cœurs et cohérence mémoire et cache Multi-processeurs, multi-cœurs et cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Rappel système d exploitation & Parallélisme L unité d exécution pour un système d exploitation

Plus en détail

Architecture des GPU (GPU=Graphics Processing Unit) gael.guennebaud@inria.fr

Architecture des GPU (GPU=Graphics Processing Unit) gael.guennebaud@inria.fr Architecture des GPU (GPU=Graphics Processing Unit) gael.guennebaud@inria.fr Plan du cours 2 Motivations pour les GPUs single core multi-core many-core Architecture des GPUs CPU versus GPU Programmation

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

TP3 : Tests de performance des MV

TP3 : Tests de performance des MV Ecole informatique IN2P3 2014 : Maîtriser le Cloud TP Dev : portage d applications sur le Cloud TP3 : Tests de performance des MV Cécile Cavet cecile.cavet at apc.univ-paris7.fr Centre François Arago (FACe),

Plus en détail

1 : 1 er programmes & prise en main de l environnement

1 : 1 er programmes & prise en main de l environnement 1 : 1 er programmes & prise en main de l environnement 1 Introduction 1.1 Rappel : gestion d arborescence et de fichiers sous UNIX Pour la manipulation de répertoire et de fichier à partir d un terminal

Plus en détail

Xeon Phi au CRIHAN. Patrick BOUSQUET-MÉLOU (pbm@crihan.fr) 16 Juin 2015

Xeon Phi au CRIHAN. Patrick BOUSQUET-MÉLOU (pbm@crihan.fr) 16 Juin 2015 Xeon Phi au CRIHAN Patrick BOUSQUET-MÉLOU (pbm@crihan.fr) 16 Juin 2015 Objectifs Veille technologique architecture many-core Se former pour préparer les utilisateurs au Xeon Phi «Knights Landing» (2016)

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

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

Centre Commun de Calcul Intensif: www.univ-ag.fr/c3i

Centre Commun de Calcul Intensif: www.univ-ag.fr/c3i Centre Commun de Calcul Intensif: www.univ-ag.fr/c3i a HPC center in the Caribbean Mewbalaou Fédération de recherche fournissant des ressources à 6 laboratoires de l UAG: COVACHIM-M, GTSI, LAMIA, LARGE,

Plus en détail

CORBA haute performance

CORBA haute performance CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes Alexandre.Denis@irisa.fr Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance

Plus en détail

De 2 à 22 millions d'images; Création, Indexation et Recherche par le contenu avec PiRiA

De 2 à 22 millions d'images; Création, Indexation et Recherche par le contenu avec PiRiA De 2 à 22 millions d'images; Création, Indexation et Recherche par le contenu avec PiRiA contact : patrick.hède@cea.fr Commissariat à l'energie Atomique GdR isis : Passage à l'échelle dans la recherche

Plus en détail

Introduction SIO Utilisation Conclusion Cluster au SIO

Introduction SIO Utilisation Conclusion Cluster au SIO Cluster au SIO ALBERT SHIH 1 1 Observatoire de Paris - Meudon 21 février 2008 Type de «machines» de calcul Mémoire partagée Tous les processeurs accèdent à toute la mémoire avec un même espace d adressage.

Plus en détail

Architecture des ordinateurs. Mémoires (II) Licence Informatique - Université de Provence. Jean-Marc Talbot

Architecture des ordinateurs. Mémoires (II) Licence Informatique - Université de Provence. Jean-Marc Talbot Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Mémoires jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des ordinateurs 120

Plus en détail

Multi-processeurs, multi-cœurs, cohérence mémoire et cache

Multi-processeurs, multi-cœurs, cohérence mémoire et cache Multi-processeurs, multi-cœurs, cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Parallélisme inter instructions n Exécution : une séquence d instructions appliquées à un 1

Plus en détail

Programmation multigpu OpenMP versus MPI

Programmation multigpu OpenMP versus MPI 17 février 2011 Gabriel Noaje Programmation multigpu OpenMP versus OpenMP 1 Programmation multigpu OpenMP versus MPI Gabriel Noaje, Michaël Krajecki, Christophe Jaillet gabriel.noaje@univ-reims.fr Équipe

Plus en détail

MICROPROCESSEUR. Nous prendrons comme exemple les processeurs Intel (qui sont le plus souvent utilisés dans les machines actuelles).

MICROPROCESSEUR. Nous prendrons comme exemple les processeurs Intel (qui sont le plus souvent utilisés dans les machines actuelles). MICROPROCESSEUR Le cerveau d un ordinateur est le microprocesseur, parfois appelé CPU ou tout simplement processeur. Le processeur effectue les calculs nécessaires au fonctionnement de l ordinateur et

Plus en détail

L3 Informatique - Systèmes d exploitation

L3 Informatique - Systèmes d exploitation L3 Informatique - Systèmes d exploitation Gestion de la mémoire D. Béchet Denis.Bechet@univ-nantes.fr Université de Nantes Faculté des Sciences et Techniques 2, rue de la Houssinière BP 92208 44322 Nantes

Plus en détail

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

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

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Plus en détail

Comparaison entre parallélisation OpenMP et threads sur des applications régulières et irrégulières

Comparaison entre parallélisation OpenMP et threads sur des applications régulières et irrégulières Comparaison entre parallélisation OpenMP et threads sur des applications régulières et irrégulières 1/20 Eugen Dedu dedu@ese-metz.fr Supélec, campus de Metz 27 janvier 2000 Contexte 2/20 Caractéristiques

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 9 NFP111 Systèmes et Applications Réparties Cours 6 - Remote Method Invocation (RMI)/Partie 2 Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

Cours client-serveur Web : Java et RMI (Remote Method Invocation)

Cours client-serveur Web : Java et RMI (Remote Method Invocation) Cours client-serveur Web : Java et RMI (Remote Method Invocation) 1 Java: Rappel sur les threads Cycle de vie d un thread (1) Né -> prêt appel de la méthode start du thread Prêt Exécution Distribution

Plus en détail

Design, améliorations, et implémentations

Design, améliorations, et implémentations CPU et Mémoire Design, améliorations, et implémentations Techniques et caractéristiques modernes qui permettent de donner aux ordinateurs actuels toute leur puissance 1 Architectures CPU Design de l architecture

Plus en détail

Cours n n 1. Introduction au Noyau. Master Informatique - Noyau - 2007-2008

Cours n n 1. Introduction au Noyau. Master Informatique - Noyau - 2007-2008 Cours n n 1 Introduction au Noyau 1 PLAN DU MODULE Objectifs Mécanismes internes du noyau (UNIX) Processus, Ordonnancement Fichiers, Mémoire virtuelle 2 PLAN DU MODULE Organisation Sur 10 semaines Début

Plus en détail

La ferme de PCs de l INRIA Sophia-Antipolis Configuration matérielle et logicielle

La ferme de PCs de l INRIA Sophia-Antipolis Configuration matérielle et logicielle La ferme de PCs de l INRIA Sophia-Antipolis Configuration matérielle et logicielle http://www-sop.inria.fr/parallel/ David Geldreich, 07/2003 Configuration matérielle actuelle Aujourd'hui la ferme est

Plus en détail

Présentation CaSciModOT Performances et Architectures

Présentation CaSciModOT Performances et Architectures Présentation CaSciModOT Performances et Architectures Code parallèle : Un peu de théorie Architectures variables : C(n,p)? Quel code? Quelle architecture? Structure d un code : partie parallèle / séquentielle

Plus en détail

Comment un ordinateur fonctionne Processeur

Comment un ordinateur fonctionne Processeur Comment un ordinateur fonctionne Processeur Les processeurs Cerveau de l ordinateur Règle flux d information par intermédiaire du bus Détermine puissance de l ordi (486, Pentium, ) Vitesse définit par

Plus en détail

Matériel : comment gagner en performance? Objectif Teraflop. les limites :

Matériel : comment gagner en performance? Objectif Teraflop. les limites : Matériel : comment gagner en performance? réduction du temps de cycle (aujourd hui de 0,6 à 2 ns) instructions vectorielles et pipelinées plusieurs unités fonctionnelles hiérarchie de mémoire multiprocesseurs

Plus en détail

Centre de calcul de l ub

Centre de calcul de l ub Centre de calcul de l ub Formation Présentation et utilisation du cluster de Calcul Antoine Migeon ccub@u-bourgogne.fr Tel : 5205 ou 5270 Le Centre de Calcul de l ub (ccub) Dédié à l enseignement et à

Plus en détail

Système et Programmation (en C)

Système et Programmation (en C) Système et Programmation (en C) ENSTA - TC 1ère année François Pessaux U2IS 2015-2016 francois.pessaux @ ensta-paristech.fr Introduction François Pessaux IN102 Système et Programmation (en C) 2/31 But

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

Calcul scientifique et serveurs de calcul

Calcul scientifique et serveurs de calcul Calcul scientifique et serveurs de calcul Serveurs de calcul : contexte, enjeux et administration Violaine Louvet, 13 septembre 2007 Calcul scientifique et serveurs de calcul Journée proposée par : Le

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

D un point de vue système, ajuster la mémoire est l une des principales méthodes pour augmenter ou réduire les performances d un processus.

D un point de vue système, ajuster la mémoire est l une des principales méthodes pour augmenter ou réduire les performances d un processus. GESTION DE LA MEMOIRE SOUS UNIX La mémoire est une ressource critique car elle conditionne les temps de traitements. Différentes options SAS sont disponibles pour utiliser au mieux la mémoire de la machine.

Plus en détail

Structure du bus système Gestion du bus système Fonctionnement des périphériques

Structure du bus système Gestion du bus système Fonctionnement des périphériques Périphériques et bus système Structure du bus système Gestion du bus système Fonctionnement des s MÉMOIRE PRINCIPALE BUS SYSTÈME Cache d'instructions MMU TLB Unité de de contrôle Unité de de traitement

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

ARCHITECTURES A PASSAGE DE MESSAGES

ARCHITECTURES A PASSAGE DE MESSAGES ARCHITECTURES A PASSAGE DE MESSAGES Daniel Etiemble LRI, Université Paris Sud de@lri.fr D. Etiemble 1 Architecture parallèle à passage de messages RESEAU D INTERCONNEXION réseau réseau réseau réseau CPU

Plus en détail

Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation

Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation Portage et optimisation d applications traitement d images sur architecture Kalray Mppa-Manycore Journées la Compilation Pierre Guillou Centre recherche en informatique Mines ParisTech 4 décembre 2013

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Exemple: le processeur MIPS

Exemple: le processeur MIPS Exécution des instructions machine 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] adresse (donnée, instruction

Plus en détail

Benchmarks. Ensemble de codes permettant de tester la fonctionnalité et les performances d'une solution HPC dans son ensemble.

Benchmarks. Ensemble de codes permettant de tester la fonctionnalité et les performances d'une solution HPC dans son ensemble. Ensemble de codes permettant de tester la fonctionnalité et les performances d'une solution HPC dans son ensemble. (Merci à Ludovic Saugé) Françoise BERTHOUD, Francoise.Berthoud@grenoble.cnrs.fr Les benchmarks

Plus en détail

Table des matières. Principes fondamentaux de conception des ordinateurs. Avant-propos Préface Remerciements XXI XXVII XXXV

Table des matières. Principes fondamentaux de conception des ordinateurs. Avant-propos Préface Remerciements XXI XXVII XXXV Table des matières Avant-propos Préface Remerciements XXI XXVII XXXV Chapitre 1 Principes fondamentaux de conception des ordinateurs 1.1 Introduction 2 1.2 L évolution de l informatique et la tâche du

Plus en détail

CPU ou UCT. Circuit Intégré. Processor (data processing)

CPU ou UCT. Circuit Intégré. Processor (data processing) CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

Cluster de calcul Freeware en Océanographie Opérationnelle Bertrand FERRET Carine CASTILLON Mondher CHEKKI

Cluster de calcul Freeware en Océanographie Opérationnelle Bertrand FERRET Carine CASTILLON Mondher CHEKKI Cluster de calcul Freeware en Océanographie Opérationnelle Bertrand FERRET Carine CASTILLON Mondher CHEKKI Responsable Service Informatique Ingénieure Systèmes & Réseaux Ingénieur High Performance Computing

Plus en détail

Programmer 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) 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étail

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 TP Java RMI Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Paradigme RMI RMI (Remote Method Invocation) RPC orientés objet (encapsulation, héritage,...) objet :

Plus en détail

Évolution de la puissance des machines. Système pour architectures multicœurs. Évolution de la puissance des machines

Évolution de la puissance des machines. Système pour architectures multicœurs. Évolution de la puissance des machines Évolution de la puissance des machines Accélération Système pour architectures multicœurs Évolution Traditionnelle des mono-processeurs CSC5001 : Systèmes Hautes Performances Architecte de Services informatiques

Plus en détail

Cours 1 Microprocesseurs

Cours 1 Microprocesseurs Cours 1 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73 Jalil Boukhobza 1 But de ce cours Comprendre le fonctionnement de base d un microprocesseur séquentiel simple (non

Plus en détail

Mémoire virtuelle. Généralités

Mémoire virtuelle. Généralités Mémoire virtuelle Généralités La pagination pure - Conversion d adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page -

Plus en détail

Les threads. Chapitre 4. 4.1 Introduction. 4.1.1 Avantages

Les threads. Chapitre 4. 4.1 Introduction. 4.1.1 Avantages Chapitre 4 Les threads 4.1 Introduction Le modèle de processus décrit au chapitre précédent est un programme qui s exécute selon un chemin unique avec un seul compteur ordinal. On dit qu il a un flot de

Plus en détail

Introduction à l Informatique

Introduction à l Informatique Introduction à l Informatique. Généralités : Etymologiquement, le mot informatique veut dire «traitement d information». Ceci signifie que l ordinateur n est capable de fonctionner que s il y a apport

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

CPU ou UCT. Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.

CPU ou UCT. Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç. CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

Programmation Système des Multicœurs

Programmation Système des Multicœurs Évolution de la puissance des machines Programmation Système des Multicœurs Gaël Thomas gael.thomas@lip6.fr Accélération Évolution Traditionnelle des mono-processeurs Université Pierre et Marie Curie Master

Plus en détail

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com Systèmes d Exploitation temps réel 1 2 Plan de l intervention 1. Introduction aux Systèmes Temps Réel 2. Programmation concurrente Synchronisation et communication Besoin en facultés temporelles 3. Ordonnancement

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Exclusion mutuelle par attente active Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud

Plus en détail

Introduction à l informatique, à Python, et représentation des nombres en machine

Introduction à l informatique, à Python, et représentation des nombres en machine Introduction à l informatique, à Python, et représentation des nombres en machine Table des matières Qu est-ce-que l informatique? Qu est-ce-qu un ordinateur? 2 Principaux composants...............................................

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Chap. III : Le système d exploitation

Chap. III : Le système d exploitation UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le système d exploitation (ou O.S. de l anglais Operating System ) d un ordinateur est le programme qui permet d accéder

Plus en détail

NVIDIA CUDA. Compute Unified Device Architecture. Sylvain Jubertie. Laboratoire d Informatique Fondamentale d Orléans 2011-2012

NVIDIA CUDA. Compute Unified Device Architecture. Sylvain Jubertie. Laboratoire d Informatique Fondamentale d Orléans 2011-2012 NVIDIA CUDA Compute Unified Device Architecture Sylvain Jubertie Laboratoire d Informatique Fondamentale d Orléans 2011-2012 Sylvain Jubertie (LIFO) NVIDIA CUDA 2011-2012 1 / 58 1 Introduction 2 Architecture

Plus en détail