Cours d'architecture parallèle

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

Download "Cours d'architecture parallèle"

Transcription

1 Cours d'architecture parallèle Denis Barthou 1

2 1- Parallélisme De nombreux services et machines sont déjà parallèles Internet et infrastructure de serveurs Bases de données Jeux en réseau Réseaux de senseurs (automobile, équipements embarqués, )... Quoi de neuf? 2

3 1- Parallélisme De nombreux services et machines sont déjà parallèles Internet et infrastructure de serveurs Bases de données Jeux en réseau Réseaux de senseurs (automobile, équipements embarqués, )... Quoi de neuf? Parallélisme à tous les niveaux, au niveau architecture Augmentation du nombre de coeurs 3

4 4 Nvidia Fermi: 192 cores 7,1 milliards de transistors 1- Parallélisme multicore/manycore Many core déjà présent. Intel Tera chip, 2007 (80 cores) Intel SCC, 2010 (48 cores) Many Integrated Chips (MIC) Puce KnightCorner Intel (50 cores)

5 1- Pourquoi on en est là? Loi de Moore Tous les 18 mois, le nombre de transistors double, à prix constant (1965) Une loi exponentielle s'applique également sur: les performances des processeurs, la capacité mémoire, disque la taille de la gravure (de plus en plus petite) la dissipation d'énergie 5

6 1- Loi de Moore, facteur limitant: W W = CV 2 f 6

7 1- Impacts La fréquence ne croit plus (augmente dissipation) Le nombre de coeurs augmente 7

8 1- Impacts Puissance dissipée ralentie (la cause) Performances/coeur ralenties 8

9 1- Choix des multicoeurs Choix technologique par défaut, pas une révolution choisie Besoin d'avancées décisives pour le logiciel Cacher la complexité de l'architecture Trouver du parallélisme, efficacement Toutes les applications devront tourner sur une machine parallèle Machines // pour HPC: accepte de tuner performances longtemps, d'analyser problèmes Machines pour les vrais utilisateurs: doit fonctionner, convaincre qu'il y a un intérêt au parallélisme. 9

10 1- Ne pas oublier: loi d'amdahl Métriques Speed-up: T1 / Tp Efficacité: T1 / (p.tp) Loi d'amdahl: f fraction de code parallèle, speed up max sur p proc. est: 1 / ((1 f) + f/p) En réalité, scalabilité pas si bonne et perf décroissent quand p augmente... 10

11 1- Ne pas oublier: interactions soft+hard Les performances sont le résultat des interactions entre Le compilateur, l'os Les bibliothèques, le support runtime Le matériel 11

12 1- Objectifs de ce cours Analyser et comprendre le fonctionnement d'une machine parallèle Etudier les machines parallèles actuelles Utiliser ces connaissances pour mieux optimiser des codes applicatifs 12

13 Tendances sur les performances Performances pour multicoeurs et machines parallèles sur code scientifique 13

14 Tendances sur les performances Performances pour multicoeurs et machines parallèles sur code scientifique 14

15 2- Fonctionnement unicoeur Processeurs actuels: ~1 milliard de transistors Clairement, travaillent en parallèle Comment le hardware organise/exprime le parallélisme? Trouve le parallélisme entre instructions (ILP) But des architectes jusqu'en 2002 Cacher ce parallélisme à tout le monde (utilisateur, compilateur, runtime) 15

16 2- Fonctionnement unicoeur Exemples de mécanismes pour trouver/exprimer l'ilp Pipeline: découpe l'exécution en plusieurs étapes Superscalaire: exécute plusieurs instructions à la fois VLIW: exécute des instructions composites Exécution vectorielle: une instruction opère sur plusieurs données Out of order execution: les instructions indépendantes peuvent s'exécuter en parallèle 16

17 2-a Pipeline Exemple de la laverie (D. Patterson) 30min lavage, 40min sechage, 20min pliage. Non pipeliné: 90min/pers., Bande passante: 1pers/90min Pipeliné: 120min/pers., Bande passante: 1pers/40min. Chaque étape prend le temps de l'étape la plus longue. Speed-up: augmente avec nombre d'étages. 17

18 2-a Pipeline Pipeline en 5 étages du MIPS (IF/ID/Ex/Mem/WB) 18

19 2-a Pipeline Idéalement, 1 cycle/instruction Superscalaire: moins d'1 cycle/instruction 19

20 2-a Pipeline Difficultés pour un pipeline (hazards) Dépendances de données: la valeur calculée par une instruction doit être utilisée par une autre instruction, mais l'utilisation a lieu avant le calcul... Branchements Solutions: Forwarding: passe la valeur disponible à un étage à un autre étage Stall Speculation 20

21 2-a Pipeline Dépendances, forwarding et stall Superscalaire: augmente la probabilité de hazard 21

22 2-b Out of order Idée principale: permettre aux instructions qui suivent une instruction qui stall de s'exécuter sans attendre. Problèmes de l'ooo: Interruptions? Ordre de completion des instructions et effets de bord? 22

23 2-b Out of order: exemple du MIPS 10k 23

24 2-b Out of Order: algorithme de Tomasulo 5 étapes: Dispatch: prend une instruction d'une file d'attente et la place dans un emplacement libre du ROB. Mise à jour des registres écrits Issue: attend que les opérandes de l'instruction soient prêts Execute: l'instruction part dans le pipeline Write result (WB): ecrit le resultat sur un Common Data Bus pour mettre à jour la valeur écrite et débloquer d'autres instructions Commit: met à jour le registre avec la valeur du ROB. Quand l'instruction à la tête du ROB (une file) est finie, fait sa mise à jour et enlève l'instruction 24

25 2-b Out of order: mise en place Besoin matériel: Buffer pour les instructions non terminées: reorder buffer (rob) Les registres ecrits sont renommés (évite WAR,WAW) 25

26 26

27 27

28 28

29 29

30 30

31 31

32 32

33 33

34 34

35 35

36 36

37 37

38 Plan 1. Introduction, contexte 2. Architecture unicoeur Pipeline, OoO, superscalaire, VLIW, prediction des branchements, limites à l'ilp 3. Architecture vectorielle 4. Mémoire et caches Définition, vectorisation Principe, caches, caches en multicoeur, optimisation 5. Nouvelles architectures et accélérateurs 38

39 2-b Out of order Actuellement Pipelines de plus de 10 étages 6-8 instructions lues / cycle => beaucoup d'instructions en vol OoO et ILP: calcul des dépendances, reordonnancement dynamique, renommage de registres. ROB et dispatch buffer: faire comme si instructions exécutées dans ordre séquentiel Pour éviter stalls: Spéculation, Gestion spéculative des branchements, delay slot Complexité du mécanisme: quadratique en nombre d'instructions... 39

40 2- Superscalaire / VLIW Pipeline scalaire Superscalaire et VLIW 40

41 2-c Architecture Superscalaire Caractéristiques Plusieurs instructions lancées en même temps Multiples unités fonctionnelles (y compris décodage) Adaptations par rapport pipeline simple Risques élevés de dépendances Tout est plus compliqué! Pénalité importante si bulle dans pipeline Mécanismes hardware additionnels Renommage de registres, OoO Prédiction de branchement 41

42 2-d Very Large Instruction Word Caractéristiques Les instructions sont regroupées statiquement, dans le code asm, en paquet, un paquet est exécuté par cycle Le nombre d'instruction par paquet est fixé (au max) Le compilateur fait les paquets 42

43 2-d VLIW Regroupe les instructions par paquets prédéfinis Le soft doit garantir: latence entre instructions suffisante pour satisfaire dépendances Pas d'instructions dont données non prêtes 43

44 2-d VLIW VLIW requiert support spécial du compilateur Paquets: bundle sur IA64, molecule sur Transmeta Le compilateur trouve le parallélisme Peut nécessiter recompilation quand change d'architecture 44

45 2-d VLIW Déroulage d'instructions: 45

46 2-d VLIW: exemple de l'itanium 46

47 2-d VLIW: registres Itanium 47

48 2-d VLIW: exemple de l'itanium Exécution: Les bundles sont lus jusqu'à saturation des unités fonctionnelles Au max, 2 bundles exécutés en parallèle (taille max fenêtre d'exécution) 48

49 2-d VLIW: exemple de l'itanium Exécution Tous les cycles: une nouvelle fenêtre Limitation du parallélisme: Nombre d'unités fonctionnelles Longueur du groupe d'instructions 49

50 2-d VLIW: exemple de l'itanium Exécution Tous les cycles: une nouvelle fenêtre Limitation du parallélisme: Nombre d'unités fonctionnelles Longueur du groupe d'instructions 50

51 2-d VLIW: exemple de l'itanium Mécanismes pour assurer un bon niveau de parallélisme Pas les mêmes que le superscalaire, ni OoO ni renommage de registres Les mécanismes proposés permettent au compilateur d'exprimer du parallélisme Problèmes de branchement: Prédiction statique des branchements: instructions différentes de branchement suivant probabilité de faire le branchement Prédication Dépendances (entre cases mémoire, entre un load et un store par ex.) Spéculation D'autres mécanismes complètent la panoplie: registres tournants, grand nombre de registres,... 51

52 2-d VLIW: Prédication sur Itanium Principe: Remplacer les branchements par instructions conditionnées (prédicatées) Les deux branches du if..then..else sont exécutées, en parallèle! 52

53 2-d VLIW: Prédication sur Itanium Prédication + Plus de stall dus aux branchements! Plus de branchement! + Augmente le parallélisme, très bien pour un VLIW - Beaucoup d'instructions sont des nop au final... Pas rentable pour des if..then..else contenant de longues séquences d'instructions 53

54 2-d VLIW: Spéculation Problème de dépendances: store (r1), r2 stocke la valeur de r2 à l'adresse r1 load r3, (r4) lit la valeur à l'adresse r4 et la place dans r3 Possible dépendance si r1 == r4 Les instructions ne peuvent pas être mises en parallèle, stall... Spéculation load.a r3,(r4) load spéculatif: on suppose qu'il n'y a pas de dépendance store (r1), r2 le load peut être fait bien avant le store... check.a r4 vérifie que la spéculation était légale 54

55 2-d VLIW: Spéculation Spéculation + Permet d'exprimer plus de parallélisme et diminuer les dépendances couteuses - Si spéculation erronée, exécute code de correction... - Au final, difficulté du compilateur et des optimisations à bien utiliser ce type de spéculation 55

56 2-e Prédiction de branchements Objectif: prédire le plus tot possible si L'instruction est un branchement branch predictor L'adresse du branchement branch target predictor (un cache, BTB) Idée: Prédire le futur avec le passé Etre sur de pouvoir revenir en arrière en cas de mauvaise prédiction 56

57 2-e Prédiction de branchements Algorithmes de prédiction de branchement Ultrasimple: Prédire toujours la même chose (pas pris si en avant, pris si en arrière, ) L'utilisateur prédit en choisissant l'instruction asm A 1 bit: se base sur le dernier branchement. Si branchement pris la dernière fois, prédit qu'on le prendra. Si branchement pas pris, alors prédit pas pris. Prédiction très tot: étage décodage (fetch)! 57

58 2-e Prédiction de branchements Algorithmes de prédiction A 2bits: se base sur les 2 derniers branchements. Prédiction suivant valeur des deux bits: 0 et 1: branchement pris 2 et 3: branchement pas pris Mise à jour Si pris, décrémente compteur (si 0, reste à 0) Si pas pris: incrémente compteur (si 3, reste à 3) 58

59 2-e Prédiction de branchements Corrélation entre branchements (Yeh, Patt, 1992) If (x[i]>5) y=y+4; If (x[i]>3) c=2; Si le premier branchement est pris, le deuxième aussi les 2 branchements sont corrélés Historique des branchements: garde la trace des résultats des h derniers branchements Indexé par le PC (program counter) Depuis pentium Pro: garde sur 2 bits les 2 derniers branchements 59

60 2-e Prédiction de branchements K dernières valeurs k entrées Prédicteur global, pour tous les branchements Ou prédicteur local, pour l'historique d'1 branchement Automate pris/pas pris 60

61 2-e Prédiction de branchement Limites théoriques de la prédiction de branchement: Pas possible de prédire bruit Limite pratique: Taille de l'historique Arbitre entre méthodes de prédiction 61

62 2-f Limites au parallélisme d'instructions Pour une machine idéale: Nombre de registres infini Fenêtre d'instructions infinie Nombre d'instructions/cycle infini Prédiction de branchement parfaite 62

63 2-f Limites au parallélisme d'instructions Machine plus réaliste: Fenêtre limitée (2048 instructions) Prédicteur de branchement 64 instructions/cycle max. 63

64 2-f Limites au parallélisme d'instructions Pour passer de 6 à 12 instructions/cycle, estimation: 3-4 accès mémoire/cycle 2-3 branchements/cycle Renommer plus de 20 registres/cycle Chercher 12 à 24 instructions/cycle Augmentation de la complexité limite la fréquence Ex: Itanium2, 6 instructions/cycle, large fenêtre d'exécution. Consomme beaucoup, faible fréquence. 64

65 2- VLIW/Superscalaire Conclusion VLIW et superscalaire Limites au parallélisme d'instruction (ILP) Matériel: pour le OoO, nombre de transistors croit exponentiellement avec nombre d'instructions à mettre en parallèles Logiciel: difficile de trouver des séquences de plus de 6 instructions parallèles dans les codes (même en optimisant) Gains de performances apportés par l'ilp Out of order can buy you 5 cycles, not 200 cycles (D.Levinthal, Intel) Gains au max d'un facteur 6, sur des codes très simples Ne permet pas de résoudre les longues latences mémoire (cf apres) 65

66 3- Vectoriel a) Le vectoriel, c'est quoi? Une instruction (vectorielle), appliquée sur plusieurs données (un vecteur de données) SIMD: single instruction, multiple data b) Comment l'utiliser? 66

67 3-a Vectoriel: c'est quoi? Caractéristiques Ne convient pas à tous les codes, toutes les instructions Instructions types: multimédia, calcul 3D (cartes graphiques), calcul scientifique, simulations physiques Multimédia = marché de masse (rentabilise développements) Extensions jeu d'instructions vectorielles pour toutes les architectures Intel: MMX, SSE, AVX, AVX2 IBM: Altivec ARM: Neon Sparc: Visual Instruction Set Certains processeurs vectoriels: Cray, GPUs,... 67

68 3-a Vectoriel Exemple type de code vectorisable For (i=0; i<n; i++) A[i] = B[i] + C[i]; Toutes les itérations peuvent être faites simultanément. Addition élément par élément des vecteurs B et C 68

69 3-a Vectoriel Calculs vectoriels et longueur du vecteur 69

70 3-a Vectoriel: exemple SSE Registre vectoriel (SSE) %xmm Peut être vu comme 1 valeur 128 bits, 2 valeurs 64 bits, 4 valeur 32 bits... Longueur des valeurs spécifié par l'instruction La longueur du vecteur est toujours de 128 bits Accès mémoire en 1 instruction (en load et store) 70

71 3-a Vectoriel: exemple SSE Exemple type d'instruction vectorielle (SSE) Registres vectoriel: contient différentes valeurs indépendantes (ici, 4) Les opérations sont les mêmes sur les 4 valeurs 71

72 3-a Vectoriel: exemple de AVX Extension de SSE sur 256 bits Instructions 3 adresses possibles x = y op z Contraintes d'alignement sur 256 bits pour le chargement mémoire (non alignement ralentissement) A venir: Plus de 256 bits 72

73 3-a Vectoriel: exemple Itanium Exemple d'instruction plus compliqué: psad for (i=0; i<7; i++) s+=abs(a[i]-b[i]); Calcule ⅼAi-Biⅼ Aucune chance pour le compilateur de la sélectionner! 73

74 3-a Vectoriel Jeu d'instruction vectoriel Actuellement, sur petits registres (128, 256 bits). Avant, sur Cray, registres très longs. Jeux d'instructions très riche (1400 pages juste pour décrire SSE) Utilisation des instructions vectorielles Responsabilité compilateur: nécessite vectoriseur. Difficile prise en compte de la richesse des instructions Responsabilité utilisateur: codage en utilisant l'assembleur, ou les fonctions intrinsèques (correspond à une instruction asm) Le hardware ne vectorise pas! 74

75 3-b Vectorisation Est-ce que c'est facile de vectoriser? Le compilateur peut vectoriser L'utilisateur peut vectoriser Intrinsics Attributs de type (gcc/icc) Transformations de code pour aider la vectorisation (pragmas, transformations de code, ) Est-ce que c'est intéressant de vectoriser? 75

76 3-b Vectorisation: difficile! Extrait de la documentation IBM programmeur pour Blue Gene/L 76

77 3-b Vectorisation par le compilateur Lire la documentation! La plupart des compilateurs font de l'auto-vectorisation Gcc: Donnent un rapport de vectorisation expliquant si il a vectorisé une boucle, si non pourquoi. Contraintes à la vectorisation automatique Nécessite une bonne analyse de dépendance Certaines transformations de code peuvent perdre le compilo Contraintes d'alignement (ne pas perdre de performance, ou ne pas faire bus error...) Données contigues en mémoire (pas de trou, ou de stride >1) Problème de transfert unités vectorielles unités scalaires. Il faut en général que le calcul soit entièrement vectoriel. 77

78 3-b Vectorisation à la main Quand ça ne suffit pas...il faut mettre les mains dedans En général, code non portable Eviter l'asm autant qu'on peut Solution 1: intrinsics Solution non portable pour utiliser instructions vectorielles en C/C++ Une fonction instrinsic = une instruction asm codée en C Le compilateur s'occupe de l'allocation des registres, peu d'optimisations à espérer 78

79 3-b Vectorisation Solution 1: intrinsics (extrait calcul de mandelbrot, site Intel) #include <immintrin.h>. m256 ymm13 = _mm256_mul_ps(ymm11,ymm11); // xi*xi m256 ymm14 = _mm256_mul_ps(ymm12,ymm12); // yi*yi m256 ymm15 = _mm256_add_ps(ymm13,ymm14); // xi*xi+yi*yi // xi*xi+yi*yi < 4 in each slot ymm15 = _mm256_cmp_ps(ymm15,ymm5, _CMP_LT_OQ); // now ymm15 has all 1s in the non overflowed locations test = _mm256_movemask_ps(ymm15)&255; // lower 8 bits are comparisons ymm15 = _mm256_and_ps(ymm15,ymm4); // get 1.0f or 0.0f in each field as counters // counters for each pixel iteration ymm10 = _mm256_add_ps(ymm10,ymm15); ymm15 = _mm256_mul_ps(ymm11,ymm12); // xi*yi ymm11 = _mm256_sub_ps(ymm13,ymm14); // xi*xi-yi*yi ymm11 = _mm256_add_ps(ymm11,ymm8); // xi <- xi*xi-yi*yi+x0 done! ymm12 = _mm256_add_ps(ymm15,ymm15); // 2*xi*yi ymm12 = _mm256_add_ps(ymm12,ymm9); // yi <- 2*xi*yi+y0 79

80 3-b Vectorisation Exemple de speed-up: Sur calcul fractal (trivialement vectoriel, //) Max théorique: facteur d'accélération 8 Caractéristiques du calcul: Dominé par les calculs (pas les accès mémoire) 80

81 3-b Vectorisation Solution 2: attributs de type vecteur Extensions gcc, supportées par icc. Par ex: typedef int vec attribute ((vector_size (N))); Possible d'écrire les calculs comme des types de base (+,*,/,...), génère un code vectoriel. N doit être une constante immédiate + Le compilateur se charge de la génération de code, de la vectorisation, de l'allocation des registres. - Ne permet pas l'utilisation de manipulation complexes d'éléments de vecteur 81

82 3-b Vectorisation Solution 3: Modifier son code pour que le compilateur vectorise. Quelques transformations: Choisir/recopier ses structures pour avoir des données contigues A[B[i]] recopier dans A'[i] tableau de structures structure de tableaux si besoin Eviter le controle (if...) et le transformer en expressions? Aligner ses structures (valloc, mem_align) Faire des boucles avec peu d'instructions (fissionner) 82

83 3-b Vectorisation Est-ce que c'est rentable de vectoriser? La vectorisation améliore les calculs (moins d'instructions), les opérations mémoire (moins d'instructions) La vectorisation ne change pas la latence mémoire code memory-bound : vectorisation probablement aucun effet 83

84 3- Conclusion vectorisation Important facteur pour les performances actuellement. Utiliser le compilateur au mieux Vérifier qu'il vectorise correctement (asm) Faire des transformations de code pour l'aider En dernier recours, vectoriser à la main 84

85 4- Mémoire CPU Memory Performance limitée par les accès mémoire Bande passante (quantité d'octets/cycle) Si m est la fraction moyenne d'accès mémoire dans le code, il faut 1+m accès par instruction Latence (cycles pour un accès) Temps d'un accès >> 1 cycle 85

86 4- Mémoire a) Principe général b) Fonctionnement des caches c) Caches en multicoeur d) Optimisation mémoire de codes 86

87 4-a La technologie des mémoires Dynamic RAM La mémoire principale + Faible consommation + Faible taille - Nécessite amplification Chaque lecture affaibli le signal - Signal pas carré (capacité) 1-T DRAM Cell word access transistor VREF bit Storage capacitor (FET gate, trench, stack) 87

88 88 Data D N+M M Column Decoder & Sense Amplifiers Memory cell (one bit) M bits pour cols. N bits pour lignes Row Address Decoder Row 2 N N Adresse sur N+M bits Tableaux 2D Col. 1 bit lines Col. word lines 2 M Row 1 Organisation par tableau de bits 4-a La technologie des mémoires

89 4-a Problème de la mémoire Ecart entre processeur/mémoire: +50%/an Pour un processeur superscalaire à 2Ghz 4 instructions/cycle, une DRAM à 100ns l'accès => 800 instructions pour un accès! 89

90 4-b Accès types aux données Address n loop iterations Instruction fetches Stack accesses subroutine call argument access subroutine return Data accesses Time 90

91 4-b Localité Accès mémoire suivent souvent une régularité prédictible Localité temporelle: si une cellule mémoire est accédée, il est probable qu'elle soit accédée dans un futur proche Localité spatiale: si une cellule mémoire est accédée, il est probable qu'une cellule mémoire proche soit accédée dans un futur proche Exemple de localité temporelle: les instructions dans une boucle sont accédées plusieurs fois Exemple de localité spatiale: les instructions dans une séquence sont accédées les uns après les autres. 91

92 4-b Localité spatiale et temporelle 92

93 4-b Localité spatiale et temporelle Dans une boucle for (i-0; i<n; i++) { S1 = A[i] S2 = A[i + K] } Combien d'itérations séparent deux utilisations successives d'un même élément de tableau? K Idée principale Garder A[i] lu en S1 dans une mémoire rapide jusqu'à sa prochaine réutilisation par S2 K itérations plus tard. Si stocké dans registres, nécessaire au moins K registres 93

94 4-b Cache Les caches exploitent les deux types de localité Localité temporelle: se rapellent les éléments recemment utilisés Localité spatiale: récupèrent des blocs de données voisins de celles utilisées Utilise une autre technologie: Static RAM CPU A Small, B Fast Memory (RF, SRAM) holds frequently used data Big, Slow Memory (DRAM) 94

95 4-b Cache A chaque accès mémoire: Vérifie si l'élément est dans le cache: si oui, c'est un cache hit (faible latence), Sinon c'est un cache miss (grosse latence), le chercher en mémoire. Le placer dans le cache ainsi que ses voisins. Gain attendu: T1 latence pour un hit, T2 latence pour un miss (et accès mémoire) h: fraction des références mémoires faisant un hit (hit ratio) Latence moyenne = h.t1 + (1 - h). T2 Si h=0,5, au mieux latence moyenne = ½ T2... Gain d'un facteur 2 seulement, quelque soit la vitesse du cache!! => Besoin d'avoir h proche de 1 95

96 4-b Fonctionnement du cache Points clés sur le fonctionnement Identification: comment on trouve une donnée dans le cache? Placement: où sont placées les données dans le cache? Politique de remplacement: comment faire de la place pour de nouvelles données? Politique d'écriture: comment propager les changements de données? Quelles autres stratégies pour améliorer le hit ratio? 96

97 4-b Structure du cache et identification Ligne de cache: bloc de données correspondant à un bloc de données consécutives en mémoire (par ex., 128 octets = 1 ligne) Les lignes de cache sont organisées en ensembles de lignes (sets) Associativité: nombre de lignes d'un set (identique pour tous les sets) Correspondance adresse mémoire et place dans le cache: Une partie est gardée, l' address tag, pour pouvoir l'identifier Une partie de l'adresse va correspondre au numéro de set La dernière partie de l'adresse correspond à la position de la donnée dans la ligne de cache 97

98 4-b Placement Où placer dans le cache la donnée venant de l'adresse 12? 98

99 4-b Placement 99

100 4-b Placement Associativité Une donnée peut être placée Dans n'importe quelle ligne de cache d'un set Et dans un seul set Cas extrêmes: complètement associatif (un set) ou direct map (un set=une ligne de cache). La donnée contenue à une adresse est-elle dans le cache? Calcul du set où devrait être la donnée, en fonction de l'adresse Pour chaque ligne de cache: (en parallèle) Vérification du tag avec l'adresse cherchée 100

101 4-b Remplacement: caches associatifs Quand un set est plein, quelle ligne du set remplacer? Au hasard La donnée la moins récemment utilisée (Least Recently Used, LRU) A chaque accès, on doit mettre à jour un indice de fraicheur de la donnée et des autres données du set Utilisé sur caches avec petite associativité (2,4,8) Une ligne, à tour de rôle (méthode round robin). Utilisé sur caches avec grande associativité Least Frequently Used (LFU) 101

102 4-b Politique d'écriture Quelle mise à jour du cache si on écrit une donnée vers la mémoire? Cache hit: Write through: On écrit dans le cache et la mémoire. Reste simple même si augmente l'utilisation de la bande passante mémoire Write back: On écrit dans le cache. La donnée est écrite en mémoire seulement si enlevée du cache. Un bit (appelé dirty bit) permet d'éviter copie vers mémoire si donnée pas écrite. Cache miss (pour une écriture): No write allocate: ne pas ramener la donnée écrite en cache Write allocate: ramène la donnée en cache Combinaisons possibles: write through et no write allocate 102

103 4-b Causes de cache miss Cache miss obligatoire (compulsory miss): on accède pour la première fois à la donnée Cache miss de capacité (capacity miss): La donnée a déjà été accédée mais a été enlevée du cache car le volume de données accédé depuis excède la taille du cache Cache miss de conflit (conflict miss): La donnée a déjà été accédée mais a été enlevée du cache car d'autres données l'ont évincée de son set. Il est possible qu'il reste de la place ailleurs dans le cache (problème dû à la politique de placement) 103

104 4-b Hiérarchie mémoire Généralisation à plusieurs niveaux de cache 104

105 4-b Hiérarchie mémoire Influence de la présence du L2 sur le L1 Utilise un plus petit L1 Améliore temps d'accès en cas de hit Réduit cout énergétique d'un accès (en moyenne) Utilise un L1 write-through (plus simple) et un L2 write-back sur la puce Le L2 write back absorbe le trafic mémoire sortant 105

106 4-b Hiérarchie mémoire Inclusion Cache inclusif Cache interne a une copie de lignes du cache externe Accès externe: juste besoin vérifier L2 Le plus courant Cache exclusif Cache interne peut avoir des lignes qui ne sont pas dans cache externe Echange les lignes entre caches si miss du cache interne 106

107 4-b Reduction du coût de l'associativité Associativité: Reduit le nombre de miss de conflit Coute cher à faire (surface, energie, delai) Optimisation pour contrebalancer une associativité limitée: Victim cache Way prediction 107

108 4-b Victim cache CPU RF L1 Data Cache Direct Map. (HP 7200) Victim Cache Fully Assoc. 4 blocks Evicted data from L1 Unified L2 Cache where? Victim cache: petit cache associatif qui sert de back-up à un cache direct map (Jouppi 1990) D'abord cherche donnée dans cache DM, si miss, cherche dans VC Si hit, échange donnée DM/VC. Si Miss, DM VC, VC? 108

109 4-b Victim cache Avantage du victim cache: Temps d'accès rapide (DM) Nombre réduit de conflict miss 109

110 4-b Way Predicting Instruction Cache Jump control Jump target 0x4 Add Dec Alpha21264 PC addr inst Primary Instruction way Cache Sequential Way Branch Target Way 110

111 4-b Way Prediction Cache Utilise une table de prédiction basé sur l'adresse pour prédire le way Lit la table et cherche ce way (MIPS R10000 L2) HIT MISS Return copy of data from cache Look in other way SLOW HIT (change entry in prediction table) MISS Read block of data from next level of cache 111

112 4-c Organisation des caches en multicoeurs L1: pas partagé, trop critique pour performances Partage du L2 ou L3 + Meilleure communication entre les coeurs, via le cache - Contention mémoire cache (bande passante partagée, taille du cache partagée) Pas de partage - Communication entre coeurs seulement par la mémoire + Pas de contention mémoire cache Dans tous les cas, mémoire partagée: - Partage bande passante vers la mémoire (interface de la puce) 112

113 4-c Write back/write Through Write Through Toute écriture par un processeur Mise a jour cache local Ecriture sur le bus global: maj mémoire et invalide/maj des autres caches Avantage: simple à implémenter Inconvénient: avec ~15% des accès mémoire des écritures, consomme beaucoup de bande passante. Ne scale pas avec le nombre de processeurs... Nécessite un tagging dual-way 113

114 4-c Write back/ Write Through Write back Quand cache propriétaire d'une donnée, écriture n'entraine pas écriture sur le bus Préserve bande passante Actuellement utilisé par la plupart multicores 114

115 4-c Caches et mémoire partagée Pour limiter trafic mémoire, utile d'avoir plusieurs copies des mêmes données (venant des mêmes adresses) dans les différents caches Données en lecture seule: tout va bien Ecriture d'une donnée présente dans plusieurs cache: Il faut mettre à jour les autres copies! S'appelle un problème de cohérence de cache Problème similaire avec DMA. L'unité mémoire en cache est la ligne de cache Mêmes lignes dans les caches, même si les coeurs n'ont pas accédé aux mêmes adresses! S'appelle du Faux Partage 115

116 4-c Caches et IO Address (A) Memory Bus Physical Memory Proc. Data (D) Cache R/W Either Cache or DMA can be the Bus Master and effect transfers A D R/W Page transfers occur while the Processor is running DMA DISK 116

117 4-c Caches et IO Proc. Cached portions of page Cache Memory Bus Physical Memory DMA transfers DMA DISK 117

118 4-c Cohérence de cache Pour maintenir la cohérence: Un seul processeur doit pouvoir modifier une donnée à la fois Informer des modifications Informer tous les processeurs d'une modification (snoop) Ou informer les processeurs possédant une copie d'une modification (directory) Après une modification, faire quelque chose des autres copies Invalidation: toutes les copies sont invalidées Ou Mise à jour: toutes les copies sont mises à jour 118

119 4-c Snoopy cache Nécessite cache write through. La mémoire a toujours les valeurs les plus à jour Toutes les mises à jour circulent sur bus mémoire Principe: Les caches espionnent les valeurs qui circulent sur le bus (snoopy cache) Si une valeur est écrite à une adresse mémoire, les caches vérifient qu'ils n'ont pas cette valeur. Si oui invalider leur valeur ou la mettre à jour Si un cache fait un miss sur une adresse, les caches vérifient s'ils n'ont pas cette adresse. Si oui fournir la valeur. 119

120 4-c Snoopy cache Memory Bus M1 Snoopy Cache Physical Memory M2 Snoopy Cache M3 Snoopy Cache DMA DISKS 120

121 4-c Répertoire central Principe: Pour un cache partagé, Le répertoire garde, pour chaque ligne dans les caches, les infos sur les caches qui ont la ligne Mis à jour à chaque accès à la mémoire. Permet mise à jour des caches. 121

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 des ordinateurs Caches et mémoire virtuelle. Daniel Etiemble de@lri.fr. Capacité mémoire SRAM. X 4 tous les trois ans.

Architectures des ordinateurs Caches et mémoire virtuelle. Daniel Etiemble de@lri.fr. Capacité mémoire SRAM. X 4 tous les trois ans. Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr Capacité mémoire 1M (bits) DRAM.5 T 1M 1M 1K 1K Date d apparition 1K 1978 1981 1984 1987 199 1993 1996 Surface SRAM/DRAM

Plus en détail

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire Informatique Embarquée M2 / 24 24 Interaction CPU / mémoire Bus d'adresses CPU Bus de Données Bus de Contrôle 24 Architecture Von Neumann CPU contient: Instructions et Données CPU charge les instructions

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

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

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

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

Comment concevoir un ordinateur? Quelques questions à considérer

Comment concevoir un ordinateur? Quelques questions à considérer Comment concevoir un ordinateur? Quelques questions à considérer Unité d entrée Unité de traitement Unité de sortie Comment coder les données Entiers, réels, caractères Comment restituer les résultats

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

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

Les systèmes embarqués

Les systèmes embarqués Unité IFS (Interface) Les systèmes embarqués Architecture des systèmes à processeur Etienne Messerli Le 17 février 2015 p 1 Ordinateur Système UNIVERSEL de traitement de l'information "binaire" Utilisé

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

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

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

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Introduction aux systèmes informatiques Structure d un ordinateur

Introduction aux systèmes informatiques Structure d un ordinateur Introduction aux systèmes informatiques Structure d un ordinateur Michel Salomon IUT de Belfort-Montbéliard Département d informatique Michel Salomon Intro. aux sys. info. 1 / 36 Qu est-ce qu un système

Plus en détail

Technologies SOC (System On Chip) (Système sur une seule puce)

Technologies SOC (System On Chip) (Système sur une seule puce) Technologies SOC (System On Chip) (Système sur une seule puce) Pierre LERAY et Jacques WEISS Équipe de recherche ETSN Supélec Campus de Rennes février, 02 Technologies SoC ; P. Leray, J. Weiss 1 Évolution

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 2 : Mémoires Sylvain Martel - INF6500 2 Cache Location Niveau 1 Niveau 2 Dimension Vitesse 0 WS 1 WS > 1 WS Type de cache Correspondance

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

Systèmes de gestion de bases de données

Systèmes de gestion de bases de données Systèmes de gestion de bases de données Gestion des mémoires P. Rigaux Cnam, dépt. informatique April 1, 2015 PR (Cnam, dépt. info) Systèmes de gestion de bases de données April 1, 2015 1 / 13 Gestion

Plus en détail

Les mémoires. Les mémoires

Les mémoires. Les mémoires Les mémoires Eduardo Sanchez EPFL Les mémoires Une mémoire est un élément de stockage d'information Les bits stockés sont organisés en forme de matrice: la dimension de la mémoire est donnée par le nombre

Plus en détail

GELE5340 Circuits ITGÉ (VLSI) Chapitre 1: Introduction

GELE5340 Circuits ITGÉ (VLSI) Chapitre 1: Introduction GELE5340 Circuits ITGÉ (VLSI) Chapitre 1: Introduction Contenu du cours Introduction aux circuits intégrés Dispositifs CMOS, processus de fabrication. Inverseurs CMOS et portes logiques. Délai de propagation,

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

QCM systèmes d exploitation (Quarante questions)

QCM systèmes d exploitation (Quarante questions) QCM systèmes d exploitation (Quarante questions) QUIZZ OS N 1 (10 questions avec réponses) Question 1: Aux origines de l informatique, l'interface utilisateur des systèmes d exploitations était composée

Plus en détail

Architecture des ordinateurs, concepts du parallélisme

Architecture des ordinateurs, concepts du parallélisme Ecole Doctorale MathIf Architecture des ordinateurs, concepts du parallélisme Violaine Louvet 1 Remerciements à Françoise Roch, Guy Moebs, Françoise Berthoud 1 ICJ - CNRS Année 2009-2010 Objectifs de ce

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

Conception et microprocesseurs

Conception et microprocesseurs Electronique embarquée Conception et microprocesseurs Richard Grisel Professeur des Universités Université de Rouen Conception et microprocesseurs Architectures et composants: Logiciel; Matériel. Test

Plus en détail

! Vous aurez pris connaissance de l'évolution. ! Vous comprendrez pourquoi on utilise le binaire en. ! Vous serez capable de construire un circuit

! Vous aurez pris connaissance de l'évolution. ! Vous comprendrez pourquoi on utilise le binaire en. ! Vous serez capable de construire un circuit Architecture élémentaire Un cours d architecture pour des informaticiens Samy Meftali Samy.meftali@lifl.fr Bureau 224. Bâtiment M3 extension Sans architecture pas d informatique Comprendre comment çà marche

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

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire Mémoire physique Généralités Autrefois, la mémoire principale était une ressource coûteuse. Elle devait donc être utilisée de manière optimale et diverses stratégies étaient employées.

Plus en détail

Architecture 68332 06/06/02 LE 68332

Architecture 68332 06/06/02 LE 68332 LE 68332 LE 68332...1 ELÉMENTS SUR LE MICROCONTRÔLEUR 68332...2 SYSTEM INTEGRATION MODULE (SIM)...2 QUEUED SERIAL MODULE (QSM)...3 TIME PROCESSOR UNIT (TPU)...3 IMPLANTATION MÉMOIRE :...4 MODULE SIM :

Plus en détail

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

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

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996] Mesure de performances [Architecture des ordinateurs, Hennessy & Patterson, 1996] Croissance des performances des microprocesseurs Avant le milieu des années 80, le gain dépendait de la technologie. Après,

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 Codage des

Plus en détail

DSP architecture et applications

DSP architecture et applications Haute Ecole d Ingénierie et de Gestion du Canton du Vaud DSP architecture et applications Chapitre 3 GÉNÉRATEURS D ADRESSES Création de buffers linéaires et circulaires Gestion des pages mémoires ADSP-29X

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

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Entrées-Sorties: Architectures de bus. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Entrées-Sorties: Architectures de bus. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Entrées-Sorties: Architectures de bus GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Architectures CPU/Mémoire/E-S Un ordinateur a cinq composantes de base: le(s) processeur(s)

Plus en détail

Matériel & Logiciels (Hardware & Software)

Matériel & Logiciels (Hardware & Software) CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique

Plus en détail

Présentation de sim-outorder. B. Goossens. Dali Université de Perpignan Via Domitia. Plan de l'exposé

Présentation de sim-outorder. B. Goossens. Dali Université de Perpignan Via Domitia. Plan de l'exposé Présentation de sim-outorder B. Goossens Dali Université de Perpignan Via Domitia B. Goossens 1 Autrans Plan de l'exposé A quoi sert sim-outorder? La structure de sim-outorder. Le pipeline de sim-outorder.

Plus en détail

GESTION DE LA MEMOIRE

GESTION DE LA MEMOIRE GESTION DE LA MEMOIRE MEMOIRE CENTRALE (MC) MEMOIRE SECONDAIRE (MS) 1. HIÉRARCHIE ET DIFFÉRENTS TYPES DE MÉMOIRE... 2 2. MÉMOIRE CACHE... 3 3. MODÈLE D'ALLOCATION CONTIGUË (MC OU MS)... 5 3.1. STRATÉGIE

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

Solveurs linéaires sur GPU pour la simulation d'écoulement en milieux poreux

Solveurs linéaires sur GPU pour la simulation d'écoulement en milieux poreux CO 2 maîtrisé Carburants diversifiés Véhicules économes Raffinage propre Réserves prolongées Solveurs linéaires sur GPU pour la simulation d'écoulement en milieux poreux J-M. Gratien,, M. Hacene, T. Guignon

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Bases de données. Cours 2 : Stockage

Bases de données. Cours 2 : Stockage Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 2 : Stockage kn@lri.fr http://www.lri.fr/~kn Plan 1 Rappels 2 Stockage 2.1 Introduction 2.2 Aspects bas-niveau 2.3 Stockage pour les SGBD

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

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie 1 Présenté par: Yacine KESSACI Encadrement : N. MELAB E-G. TALBI 31/05/2011 Plan 2 Motivation

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

Informatique légale : FPGA vs. GPU

Informatique légale : FPGA vs. GPU Informatique légale : FPGA vs. GPU Sylvain Collange, Yoginder S. Dandass, Marc Daumas et David Defour 03/06/2008 Problématiques Analyse de disque dur Recherche de contenu illégal connu Y compris dans des

Plus en détail

Intel Corporation Nicolas Biguet Business Development Manager Intel France

Intel Corporation Nicolas Biguet Business Development Manager Intel France Les serveurs pour l Entreprise Intel Corporation Nicolas Biguet Business Development Manager Intel France 1 Les orientations stratégiques Clients Réseaux Serveurs Fournir les les éléments de de base des

Plus en détail

Plan. Bases de données. Cours 2 : Stockage. Quels types de mémoire pour une BD? Où stocker les données? Polytech Paris-Sud. Apprentis 4 ème année

Plan. Bases de données. Cours 2 : Stockage. Quels types de mémoire pour une BD? Où stocker les données? Polytech Paris-Sud. Apprentis 4 ème année Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 2 : Stockage 2.1 Introduction 2.2 Aspects bas-niveau kn@lri.fr http://www.lri.fr/~kn 2/20 Hierarchie mémoire : Où stocker les données? Type

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

Recherche d information textuelle

Recherche d information textuelle Recherche d information textuelle Pré-traitements & indexation B. Piwowarski CNRS / LIP6 Université Paris 6 benjamin@bpiwowar.net http://www.bpiwowar.net Master IP - 2014-15 Cours et travaux pratiques

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

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

Les ordinateurs : de 1946 à aujourd hui

Les ordinateurs : de 1946 à aujourd hui : Introduction Daniel Etiemble de@lri.fr Les ordinateurs : de 1946 à aujourd hui ENIAC (1946) 19000 tubes 30 tonnes surface de 72 m 2 consomme 140 kilowatts. Horloge : 0 KHz. 330 multiplications/s Mon

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

Chapitre 4 : Les mémoires

Chapitre 4 : Les mémoires 1. Introduction: Chapitre 4 : Les mémoires Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

CALCULS PARALLÈLES ET APPLICATIONS LA VISION PAR ORDINATEUR AU CEA LIST, QUELS CHOIX ARCHITECTURAUX?

CALCULS PARALLÈLES ET APPLICATIONS LA VISION PAR ORDINATEUR AU CEA LIST, QUELS CHOIX ARCHITECTURAUX? CALCULS PARALLÈLES ET APPLICATIONS LA VISION PAR ORDINATEUR AU CEA LIST, QUELS CHOIX ARCHITECTURAUX? LABORATOIRE DE VISION ET INGÉNIERIE DES CONTENUS (LVIC) Fusion multimedia : extraction multimodale d

Plus en détail

SECURIDAY 2012 Pro Edition

SECURIDAY 2012 Pro Edition SECURINETS CLUB DE LA SECURITE INFORMATIQUE INSAT SECURIDAY 2012 Pro Edition [LOAD BALANCING] Chef Atelier : Asma JERBI (rt5) Hajer MEHRZI(rt3) Rania FLISS (rt3) Ibtissem OMAR (rt3) Asma Tounsi (rt3la)

Plus en détail

C'est quoi la mémoire?

C'est quoi la mémoire? C'est quoi la mémoire? Ce sont des composants électroniques qui ont la particularité de retenir des informations. En informatique, l'information de base (l'alphabet des ordinateurs) est composée de deux

Plus en détail

Guide Mémoire NETRAM

Guide Mémoire NETRAM Guide Mémoire NETRAM Types de mémoires vives On distingue généralement deux grandes catégories de mémoires vives : Mémoires dynamiques (DRAM, Dynamic Random Access Module), peu coûteuses. Elles sont principalement

Plus en détail

DB2 10.5 BLU Acceleration Francis Arnaudiès f.arnaudies@fr.ibm.com

DB2 10.5 BLU Acceleration Francis Arnaudiès f.arnaudies@fr.ibm.com DB2 10.5 BLU Acceleration Francis Arnaudiès f.arnaudies@fr.ibm.com #solconnect13 SOLUTIONS ADAPTEES AUX BESOINS CLIENTS Mobile/Cloud Data Serving and Transaction Processing Mobile Storefront JSON Database

Plus en détail

L ARCHITECTURE D UN ORDINATEUR. Page 1

L ARCHITECTURE D UN ORDINATEUR. Page 1 L ARCHITECTURE D UN ORDINATEUR Page 1 Page 2 SOMMAIRE I) Définition II) Boîtier a) Format b) Refroidissement III) Alimentation IV) Carte Mère V) Chipset VI)BIOS VII)Microprocesseur a)qu est ce que c est

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

Mise en oeuvre TSM 6.1

Mise en oeuvre TSM 6.1 Mise en oeuvre TSM 6.1 «Bonnes pratiques» pour la base de données TSM DB2 Powered by Qui sommes nous? Des spécialistes dans le domaine de la sauvegarde et de la protection des données 10 ans d expertise

Plus en détail

Caches web. Olivier Aubert 1/35

Caches web. Olivier Aubert 1/35 Caches web Olivier Aubert 1/35 Liens http://mqdoc.lasat.com/online/courses/caching/ (prise en compte des caches dans la conception de sites) http://mqdoc.lasat.com/online/courses/proxyserver http://www.web-caching.com/mnot_tutorial/

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

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

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

Plus en détail

Alignement de partitions pour amélioration des performances de MS-SQL Server

Alignement de partitions pour amélioration des performances de MS-SQL Server Alignement de partitions pour amélioration des performances de MS-SQL Server par David Barbarin Date de publication : 20 février 2009 Dernière mise à jour : Tests et mesures permettant de déterminer l'avantage

Plus en détail

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Base de l'informatique Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Généralité Comment fonctionne un ordinateur? Nous définirons 3 couches Le matériel

Plus en détail

Examen de Système. Questions de cours : les threads. Licence 3 Informatique. ENS Cachan, mardi 13 janvier 2009

Examen de Système. Questions de cours : les threads. Licence 3 Informatique. ENS Cachan, mardi 13 janvier 2009 Examen de Système Licence 3 Informatique ENS Cachan, mardi 13 janvier 2009 Durée : 3h. Documents autorisés : livres, notes de cours. Langage de programmation : C. Des erreurs de syntaxe, de nom de fonction

Plus en détail

Les entrées/sorties Les périphériques

Les entrées/sorties Les périphériques Les entrées/sorties Les périphériques La fonction d un ordinateur est le traitement de l information (fonction réalisée au niveau de la mémoire et l UC). L ordinateur acquiert cette information et restitue

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

Architecture (5) - DISQUES DURS -

Architecture (5) - DISQUES DURS - 1/24 Introduction Structure des données Interfaces Architecture (5) - DISQUES DURS - Pierre Gançarski Université de Strasbourg IUT Robert Schuman DUT Informatique 2/24 Introduction Structure des données

Plus en détail

Figure 1. Structure répartie

Figure 1. Structure répartie Chapitre I: Applications Réparties et Middleware 1. Définition d une application répartie Une application répartie est constituée d un ensemble de processus (d objets, d agents, d acteurs) s exécutant

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

Le Network File System de Sun (NFS)

Le Network File System de Sun (NFS) 1 sur 5 Le Network File System de Sun (NFS) Le Network File System de Sun (NFS) Architecture Protocoles Mounting Automounting vs Static mounting Directory et accès aux fichiers Problèmes Implémentation

Plus en détail

Les systèmes RAID Architecture des ordinateurs

Les systèmes RAID Architecture des ordinateurs METAIS Cédric 2 ème année Informatique et réseaux Les systèmes RAID Architecture des ordinateurs Cédric METAIS ISMRa - 1 - LES DIFFERENTS SYSTEMES RAID SOMMAIRE INTRODUCTION I LES DIFFERENTS RAID I.1 Le

Plus en détail

Techniques de compilation

Techniques de compilation Département d Informatique Université de Nice Sophia Antipolis Master 1 Informatique Techniques de compilation XI. Générateurs de générateurs de code Jacques Farré email : Jacques.Farre@unice.fr 1 Introduction

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

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E5649 2.53 GHz

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E5649 2.53 GHz Choix d'un serveur Vous êtes responsable informatique d'une entreprise. Vous devez faire un choix pour l'achat d'un nouveau serveur. Votre prestataire informatique vous propose les choix ci-dessous Vous

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

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

Compilation d applications de traitement du signal sur accélérateurs matériels à haute efficacité énergétique

Compilation d applications de traitement du signal sur accélérateurs matériels à haute efficacité énergétique Contexte Travaux recherche Activités annexes Conclusion Compilation d applications traitement du signal sur accélérateurs matériels à haute efficacité énergétique Rapport d avancement 1 re année Pierre

Plus en détail

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT Ce guide explique les différentes étapes de l installation et de la configuration des composantes

Plus en détail

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

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

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Solaris pour la base de donnés Oracle

<Insert Picture Here> Solaris pour la base de donnés Oracle Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs

Plus en détail

Outils de visualisation de traces

Outils de visualisation de traces Outils de visualisation de traces Damien DOSIMONT 23 mars 2012 1/29 Sommaire 1 Introduction Complexité croissante des systèmes embarqués Visualisation de traces Thèse et travaux de Lucas Schnorr 2 Etat

Plus en détail

Répartition de charge dynamique dans un système distribuée

Répartition de charge dynamique dans un système distribuée Rapport de TER Répartition de charge dynamique dans un système distribuée Tuteur : Stephane Mancini Benjamin Petit Grenoble INP - Ensimag Mai 2010 Table des matières 1 Introduction 4 1.1 Contexte pratique...................................

Plus en détail

Architecture Logicielle

Architecture Logicielle Architecture Logicielle Chapitre 3: UML pour la description et la documentation d une architecture logicielle Année universitaire 2013/2014 Semestre 1 Rappel L architecture d un programme ou d un système

Plus en détail

Les ordinateurs : de 1946 à hier/aujourd hui

Les ordinateurs : de 1946 à hier/aujourd hui Architectures t avancées : Introduction Daniel Etiemble d@lif de@lri.fr Les ordinateurs : de 1946 à hier/aujourd hui ENIAC (1946) 19000 tubes 30 tonnes surface de 72 m 2 consomme 140 kilowatts. Horloge

Plus en détail