• 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

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

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

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