• Aucun résultat trouvé

Programmation parallèle

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation parallèle"

Copied!
6
0
0

Texte intégral

(1)

F. Desprez, F. Zara - UE Parallélisme 2012-2013 - 1

Frédéric Desprez Florence Zara

INRIA Université Lyon 1

LIP ENS Lyon LIRIS

Equipe Avalon Equipe SAARA

Modèles de

programmation parallèle

Quelques références

•  Cours Pthreads, John Mellor-Crummey, Rice University

•  Cours OpenMP, F. Roch (Grenoble)

•  The X-Kaapi's Application Programming Interface. Part I: Data Flow Programming, F. Le Mentec, T. Gautier, V. Danjean

•  X-Kaapi C programming interface, F. Le Mentec, T. Gautier, V. Danjean

•  http://www.openmp.org

•  http://www.openmp.org/mp-documents/spec30.pdf

•  http://www.idris.fr

•  http://ci-tutor.ncsa.illinois.edu/login.php

•  Using OpenMP , Portable Shared Memory Model, Barbara Chapman

•  Cours composants, C. Perez (Lyon)

(2)

Agenda

•  KaaPI

•  Pthreads

•  OpenMP

•  Composants parallèles

•  MapReduce

2012-2013 - 3 F. Desprez, F. Zara - UE Parallélisme

Introduction

Modèle de programmation: comment (d)écrire un programme parallèle

On a vu MPI (Message Passing Interface)

• L’utilisateur gère tout (distribution des données, distribution des calculs, synchronisation des processeurs, échanges des données)

• Avantages

Plus grand contrôle pour l’utilisateur

Performances (si code bien écrit !)

• Inconvénients

Assembleur du parallélisme

Portabilité (en termes de performances)

Moins de transparence Autre solution

- Donner plus de travail aux environnements d’exécution !

(3)

Introduction

2012-2013

F. Desprez, F. Zara - UE Parallélisme - 5

Compilateur et/ou support d’exécution

Système d’exploitation

Matériel

Abstractions pour décrire les calculs parallèles

Abstractions pour décrire les communications

Applications parallèles

Modèle de programmation

Langage ou API Primitives/mécanismes

API des appels systèmes

Architecture matérielle (frontière matérielle/

logicielle)

Concepts Abstraction système Implémentation système

KAAPI

(4)

KAAPI

Projet INRIA-MOAIS

http://kaapi.gforge.inria.fr

Librairie C / C++ (simplement ajout d’instructions dans le code)

Portabilité

•  Pas besoin de changer le code selon l’architecture

•  Exécution possible en CPU, multi-CPU, grappe, GPU

•  Nombre de nœuds variable

Langage de programmation parallèle de haut niveau

•  Abstraction de l’architecture (mémoire virtuelle partagée)

•  Ordonnancement dynamique géré par l’environnement

2012-2013

F. Desprez, F. Zara - UE Parallélisme - 7

Concept

Problème initial est décomposé en tâches de calcul Tâches s’exécutent en parallèle

Tâches travaillent sur des données (virtuellement) partagées

•  Différents accès possibles pour ces données

•  Taille des données partagées définit la granularité

Exécution des tâches de calculs en parallèle

•  Ordre d’exécution des tâches selon le graphe de flots de données

•  Partitionnement du DFG (Data Flow Graph)

•  Placement et ordonnancement sur les nœuds

(5)

Illustration

tâches

+

Problème décomposition

dépendances

partitionnement

placement ordonnancement

2012-2013

F. Desprez, F. Zara - UE Parallélisme - 9

// Initialisation de la librairie!

int main(int argc, char** argv) {!

/* Join the initial group of computation */ ! ka::Community com =

ka::System::join_communit(argc,argv);!

/* Start computation by spawning the main task */!

ka::SpawnMain<doit>()(argc, argv); !

/* Leave the community */ !!

com.leave();!

/* */!

ka::System::terminate();!

}!

API C++ de Kaapi - Kaapi++

Concrètement dans le code #include «kaapi++»!

Utilisation du namespace ka::!

(6)

Cliquez ici pour telecharger le PDF complet

Références

Documents relatifs

1 ère année STS Maintenance Il est possible dans le déroulement d’un programme écrit sous SFC-GRAFCET d’avoir un graphe maître et plusieurs graphes esclaves. On retrouve le

Après que vous avez créé toutes vos définitions d’EP, vous pouvez les appliquer au besoin à une unité quand elle est emmenée à l'entretien pour créer des bons de travail. Je

L’annexe A présente le nombre de cours inclus dans la vérification pour chaque matière et indique combien de ces cours sont enseignés par des enseignants possédant des majeures

2.1.2 : Calculer sur le D.Rep 2 la vitesse de rotation Nr1 du rouleau récepteur (en tr/min), nécessaire pour enrouler le papier.. Tâche N°2 : Etude du système d’entraînement

o S’il y a un seul autre servant, celui-ci et le prêtre avancent les mains jointes, jusqu’à la marche du sanctuaire, s’arrêtent l’un à côté de l’autre, avec le prêtre

Une abondante littérature scientifique, internationale, porte sur la notion de tâche dans le contexte scolaire : des tâches dont l’enjeu est l’apprentissage de l’élève,

L’exemple précédent a montré que l’ordre dans lequel se calculent les valeurs des ES(t) n’est pas complètement arbitraire; en fait, le début au plus tôt d’un sommet ne

Afin de ne pas déconnecter les activités à prise d’initiative des contenus du programme, les savoirs mathématiques (notions, méthodes ou stratégies) sollicités dans chaque