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



Documents pareils
Initiation au HPC - Généralités

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

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Évaluation et implémentation des langages

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

Performances de la programmation multi-thread

4 Exemples de problèmes MapReduce incrémentaux

Comment booster vos applications SAP Hana avec SQLSCRIPT

GPC Computer Science

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

Master Sciences, Technologies, Santé Mention Ingénierie Mathématique Spécialité Calcul Scientifique

IFT Systèmes d exploitation - TP n 1-20%

Génération de code binaire pour application multimedia : une approche au vol

POP-Java : Parallélisme et distribution orienté objet

Introduction à la Programmation Parallèle: MPI

Ordonnancement temps réel

Programmation parallèle et ordonnancement de tâches par vol de travail. Thierry Gautier MOAIS, INRIA, Grenoble

GL Processus de développement Cycles de vie

Machines virtuelles Cours 1 : Introduction

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

Synchro et Threads Java TM

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

Tier 1 / Tier 2 relations: Are the roles changing?

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

CORBA haute performance

Segmentation d'images à l'aide d'agents sociaux : applications GPU

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe

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

Solutions de stockage réseau

Mise en oeuvre TSM 6.1

Our experience in using Apache Giraph for computing the diameter of large graphs. Paul Bertot - Flavian Jacquot

Problèmes liés à la concurrence

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

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Exemple PLS avec SAS

Algorithmique I. Algorithmique I p.1/??

UTILISATION DE LA PLATEFORME WEB D ANALYSE DE DONNÉES GALAXY

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

CRÉER UN DVD VIDEO avec DVD FLICK (avec ou sans menu)

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

KOHONEN SELF-ORGANIZING NEURAL NETWORK FOR POWER SYSTEM SECURITY ASSESSMENT

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Aspects théoriques et algorithmiques du calcul réparti L agglomération

4.2 Unités d enseignement du M1

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

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Elasticité logicielle pour optimiser l empreinte énergétique

Multiprogrammation parallèle générique des méthodes de décomposition de domaine

Rapport d activité. Mathieu Souchaud Juin 2007

Introduction à la programmation concurrente

Formula Negator, Outil de négation de formule.

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Gestion Projet. Cours 3. Le cycle de vie

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Cours Gestion de projet

Les lières. MSc in Electronics and Information Technology Engineering. Ingénieur civil. en informatique. MSc in Architectural Engineering

Audit et optimisation MySQL 5

Eléments d architecture des machines parallèles et distribuées

Projet Active Object

Druais Cédric École Polytechnique de Montréal. Résumé

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Exécutif temps réel Pierre-Yves Duval (cppm)

Introduction à CUDA.

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

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

Les apports de l informatique. Aux autres disciplines

Détection des deux roues motorisés par télémétrie laser à balayage

Bases de Données et Internet

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Modélisation multi-agents - Agents réactifs

Eric Bertrand 08/11/06 Maître de conférence 1

Jean-Pierre Vickoff J-P Vickoff

Mines Nantes 20/05/2014. Institut Mines-Telecom : a national network 12 Engineering Graduate schools & 1 Business school. 2 Institut Mines-Télécom

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair)

Modélisation des interfaces matériel/logiciel

Organisé par StatSoft France et animé par Dr Diego Kuonen, expert en techniques de data mining.

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Contrôle par commande prédictive d un procédé de cuisson sous infrarouge de peintures en poudre.

Présentation Alfresco

Ora2Pg Performances. (C) 2013 Gilles Darold

Introduction : les processus. Introduction : les threads. Plan

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Une nouvelle Famille de systèmes

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Transcription:

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 majeures d OpenMP simplicité : parallélisation d une boucle 3/20 // Classic threads version // size: the number of values assigned to every thread size = last_index / nb_threads; first = MY_TID * size; last = (MY_TID == nb_threads-1)? first + size : last_index; for (i=first ; i<last ; i++) array[i] =...; // OpenMP version // automatic loop decomposition #pragma omp parallel for for (i=0 ; i<last_index ; i++) array[i] =...;

Écriture de code parallèle OpenMP parallélisation incrémentale code source séquentiel 4/20 débogage en séquentiel parallélisation (par directives) débogage en parallèle fin

Caractéristiques majeures d OpenMP simple à apprendre et à utiliser (plus haut niveau que les threads) parallélisation incrémentale calcul automatique du nombre de threads codes source séquentiel et parallèle identiques portable performant variables privées réduction (basée sur des arbres) régions critiques 5/20

Avantage des threads niveau plus bas qu OpenMP Pthreads OpenMP 3 types de mutexes 1 type sémaphores richesse d expression élevée moyenne travail par groupes de threads : facile faisable parfois Thread 1 Thread 2 Thread 3 Barrière barrières, exclusions mutuelles limitées à des groupes de threads OpenMP plus approprié pour le parallélisme de données que de tâches 6/20

Carte Kohonen input data vector x in w in,out neuron map 7/20 d out = in (w in,out x in ) 2 w in,out = w in,out + η(x in w in,out )

Performances implantation Kohonen (texec) 8/20 50 45 C-threads Fortran-OpenMP execution time (sec) 40 35 30 25 20 15 10 5 0 1 2 4 6 8 10 12 14 16 number of processors

Performances implantation Kohonen (speed up) 9/20 3.5 3 C-threads Fortran-OpenMP 2.5 speed up 2 1.5 1 0.5 0 1 2 4 6 8 10 12 14 16 number of processors

Performances implantation Kohonen (efficacité) 10/20 1 C-threads Fortran-OpenMP 0.8 efficiency 0.6 0.4 0.2 0 1 2 4 6 8 10 12 14 16 number of processors

Système multi-agent situé Agent : environnement, perceptions, actions, but. 11/20 U Agent M M M U Mine Usine Obstacle

Système multi-agent situé 12/20 Difficile à paralléliser, car : migration des agents paramètres qui changent coopération propagation des champs algorithme irrégulier influences sur le load-balancing, la gestion des caches etc.

Algorithme de propagation par vagues 13/20 Example of increasing potential way, avoiding obstacles Source Obstacle

Performances implantation SMAS (texec) 14/20 250 C-threads execution time (sec) 200 150 100 50 0 1 2 4 6 8 10 12 14 16 18 20 number of processors

Performances implantation SMAS (speed up) 15/20 3 C-threads 2.5 speed up 2 1.5 1 0.5 0 1 2 4 6 8 10 12 14 16 18 20 number of processors

Performances implantation SMAS (efficacité) 16/20 1 C-threads 0.8 efficiency 0.6 0.4 0.2 0 1 2 4 6 8 10 12 14 16 18 20 number of processors

Comparaison (subjective) OpenMP/threads, application régulière/irrégulière 17/20 Algorithme régulier: Carte Kohonen Implantation C-threads Fortran- OpenMP Algorithme irrrégulier: SMAS C-threads C-OpenMP Maximum speed-up 3 3.5 2.7 Nombre de threads optimal 5 7 8 16 18 Complexité parallélisation moyenne facile grande Temps de développement 2 semaines 1 semaine 5 semaines > 5 sem. Lignes de code source 450 400 950 850

Conclusions 18/20 une application régulière et une autre irrégulière implantées en OpenMP et threads temps d exécution comparables pour applications régulières temps de développement plus petits en OpenMP pour applications régulières niveau plus haut d OpenMP difficultés en programmation, voire utilisation de fonctions non-openmp

Notre avis 19/20 Type d application Approprié Raison régulière OpenMP rapide en développement et exécution irrégulière threads meilleur contrôle (ou OpenMP?) (richesse d expression)

Bibliographie Leonardo Dagum and Ramesh Menon. OpenMP: An Industry- Standard API for Shared-Memory Programming. IEEE Computational Science & Engineering, janvier mars 1998. Jeff Fier (documentation SGI). Performance Tuning Optimization for Origin2000 and Onyx. http://techpubs.sgi.com/ library/manuals/3000/007-3511-001/html/o2000tuning. 0.html Spécifications, informations... : http://www.openmp.org 20/20