Modèles du parallélisme et Processeurs modernes



Documents pareils
GESTION DE LA MEMOIRE

Introduction à la Programmation Parallèle: MPI

Bases de données et sites WEB Licence d informatique LI345

Cours de Base de Données Cours n.12

Bases de données avancées Concurrence d'accès et reprise

Cours Bases de données 2ème année IUT

Initiation à LabView : Les exemples d applications :

Introduction à la programmation concurrente

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Cours de Systèmes d Exploitation

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

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 4 : Exclusion mutuelle

Implémentation des SGBD

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Partie 7 : Gestion de la mémoire

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Système de Gestion de Fichiers

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Introduction aux bases de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Réplication des données

COMPTA.COM. Compta.com v7 Nouvelles fonctionnalités

VIII- Circuits séquentiels. Mémoires

Procédure appropriée pour éditer les diagrammes avec ECM Titanium

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Rappel d un lot de réactif Wash Buffer II Utilisé sur les systèmes d Immunoanalyse Unicel DxI et DxC 880i Access

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

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Projet gestion d'objets dupliqués

Exercices INF5171 : série #3 (Automne 2012)

On appelle variable condition une var qui peut être testée et

SAGASAFE Mode d'emploi de la série DCP Version 7.0

Gestion répartie de données - 1 Duplication et cohérence

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Programmation d Applications Concurrentes et Distribuées (INF431)

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Programmation des Applications Réparties. Parsers XML DOM et SAX

Organisation des Ordinateurs

Table des matières. 7 Gérer des ordres 5 Formater des paramètres OptionStation Pro 9

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

SYSTÈME DE GESTION DE FICHIERS

GESTION DES FICHIERS C/UNIX

Pour plus d informations consultez nos FAQS sur

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Initiation. àl algorithmique et à la programmation. en C

Algorithmique répartie

Introduction aux Systèmes et aux Réseaux

Swisscom Webmail - mode d emploi

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

Structure fonctionnelle d un SGBD

UNION INTERCEPT SELECT WHERE JOINT FROM ACID

Introduction à la théorie des files d'attente. Claude Chaudet

Managed VirusScan et renforce ses services

Rappels d architecture

GESTION DE STOCKS AVEC CIEL GESTION COMMERCIALE

Temps Réel. Jérôme Pouiller Septembre 2011

Cours Bases de données

POSTE INFORMATIQUE. Mr DUJARDIN a acheté du matériel informatique sur une boutique en ligne afin de se monter un PC. N'y

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Année Universitaire 2009/2010 Session 2 de Printemps

Données Réparties. Thibault BERNARD.

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Guide de prise en main

Accéder à ZeCoffre via FTP

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

<Insert Picture Here> Solaris pour la base de donnés Oracle

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Intelligence Artificielle Planification

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

SMARTair Présentation

EMC DATA DOMAIN HYPERMAX

Conception de circuits numériques et architecture des ordinateurs

Auditcon 2 SERIES MODÈLES 252 ET 552 MODE D EMPLOI

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

Chapitre 1 : Introduction aux bases de données

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

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

Les systèmes de gestion de version

TD Architecture des ordinateurs. Jean-Luc Dekeyser

GPA770 Microélectronique appliquée Exercices série A

Notre expertise au cœur de vos projets

Réalisation d un diaporama en haute définition avec. Adobe Premiere Elements 3.0 ou Adobe Premiere Pro 2.0. Encodage pour Internet

Logiciel de Télégestion

LES OUTILS DE LA MOBILITE

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Chapitre 4 : Les mémoires

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Systemes d'exploitation des ordinateurs

Transcription:

Introduction Modèles du parallélisme et Processeurs modernes Le modèle classique du parallélisme est celui de l entrelacement. Il correspond à un modèle de la mémoire appelé modèle de le cohérence séquentielle (Sequential Consistency, ) Les processeurs modernes n implémentent pas le modèle, mais des modèles plus relâchés ( relaxed memory models ) tels que l ordre de mémorisation total (Total Store Order, ) 1 / 17 2 / 17 Modèles de mémoire Modèles de mémoire (suite) Sequential Consistency Tous les accès à la mémoire globale sont immédiatement visibles par tous les processeurs. Total Store Order () Les opérations d écriture passent par une zone tampon (buffer) Chaque processeur lit la valeur la plus récente dans sa zone tampon s il y en a une Si non, la valeur conservée en mémoire est lue x86- Modèle destiné au programmeur Basé sur Etendu avec un concept de verrou global Compatible avec les tests figurant dans la documentation des processeurs Ne prétend pas correspondre à la structure interne des processeurs 3 / 17 4 / 17

Modèles de mémoire (suite 2) Des exemples qui peuvent être exécutés totalement dans le modèle (et x86-), mais pas en Des entrelacements possibles : s 1 s 1 s 1 s 2 s 1 l 1 s 2 s 2 l 2 l 1 s 2 l 1 bloque l 1 s 1 s 2 l 2 bloque l 2 l 1 l 2 bloque store(p, m, v) p : [m] v load(p, m, v) p : ([m] = v) 5 / 17 Modèles de mémoire (suite 3) Des exemples qui peuvent être exécutés totalement dans le modèle (et x86-), mais pas en load(p 1, x, 1) (l 1 ) load(p 2, y, 1) (l 3 ) load(p 1, y, 0) (l 2 ) load(p 2, x, 0) (l 4 ) Des entrelacements possibles : s 1 s 1 s 1 s 2 s 1 l 1 s 2 s 2 l 3 l 1 l 2 l 1 l 1 s 1 l 2 s 2 l 3 l 2 l 1 s 2 l 3 l 2 bloque l 3 l 2 l 3 l 4 bloque l 4 l 4 l 4 bloque (suite) Définition opérationnelle 6 / 17 Relations d ordre : ordre du programme (< p ) (partiel, ordre par processeur) ordre de la mémoire (< m ) (global) P 1 Loads/ P 2 Loads/ P n Loads/ Pour correspondre au modèle, une exécution doit satisfaire les conditions suivantes : op i, op j : op i < p op j op i < m op j où op x représente une opération store ou load. Le résultat d un load est celui qui est compatible avec l ordre de la mémoire. 7 / 17 8 / 17

(suite 2) Ordres de la mémoire, premier exemple où s 1 < p l 1 et s 2 < p l 2. Les ordres de la mémoire possibles sont tous les entrelacements respectant les conditions s 1 < m l 1 et s 2 < m l 2. Exemple : s 1 < m l 1 < m s 2 < m l 2 Pour correspondre au modèle, une exécution doit satisfaire les conditions suivantes : 1. l a, l b : l a < p l b l a < m l b 2. s a, s b : s a < p s b s a < m s b 3. l, s : l < p s l < m s 4. val(l a ) = val(max < m {s a s a < m l a s a < p l a }). Notez que : les stores peuvent être retardés, mais les loads ont accès à la dernière valeur mémorisée localement. 9 / 17 10 / 17 (suite) Définition opérationnelle (suite 2) Ordres de la mémoire, premier exemple P 1 P 2 P n Loads Loads Loads FIFO Store Buffer où s 1 < p l 1 et s 2 < p l 2. Les ordres de la mémoire possibles sont tous les entrelacements de s 1, l 1, s 2 et l 2. Exemple : l 1 < m s 2 < m l 2 < m s 1 ou l 1 < m l 2 < m s 1 < m s 2 Le transfert d un store de la zone tampon vers la mémoire principale est appelé un commit. 11 / 17 12 / 17

(suite 3) Ordres de la mémoire, second exemple (suite 4) Ordres de la mémoire, second exemple - Détails load(p 1, x, 1) (l 1 ) load(p 2, y, 1) (l 3 ) load(p 1, y, 0) (l 2 ) load(p 2, x, 0) (l 4 ) où s 1 < p l 1, l 1 < p l 2, s 2 < p l 3 et l 3 < p l 4. Les ordres de la mémoire possibles sont tous les entrelacements de s 1, l 1, l 2, s 2, l 3 et l 4 satisfaisant l 1 < m l 2 et l 3 < m l 4 Séquence d opérations Ordre mémoire store(p 1, x, 1) (s 1 ) - load(p 1, x, 1) (l 1 ) l 1 load(p 1, y, 0) (l 2 ) l 1 < m l 2 store(p 2, y, 1) (s 2 ) l 1 < m l 2 load(p 2, y, 1) (l 3 ) l 1 < m l 2 < m l 3 load(p 2, x, 0) (l 4 ) l 1 < m l 2 < m l 3 < m l 4 (commit(s 1 )) l 1 < m l 2 < m l 3 < m l 4 < m s 1 (commit(s 2 )) l 1 < m l 2 < m l 3 < m l 4 < m s 1 < m s 2 Exemple : l 1 < m l 2 < m l 3 < m l 4 < m s 1 < m s 2 13 / 17 14 / 17 x86- x86- Vue opérationnelle Les contraintes d ordre sur les loads et stores sont les mêmes qu en. Opérations étendues : mfence(p) bloque le processeur p jusqu à ce que son buffer soit vide lock(p) si le verrou n est pas déjà pris par un autre processeur, p prend le verrou et obtient un accès exclusif à la mémoire globale : les autres processeurs ne peuvent pas exécuter des opérations commit ou load unlock(p) p vide le buffer vers la mémoire globale et libère le verrou Loads P 1 FIFO Store Buffer LoadsP n Lock 15 / 17 16 / 17

Autre modèles de mémoire Partial Store Order (PSO) Relaxed Memory Order (RMO) 17 / 17