9. Algorithmische Skelette Abstrakte parallele Berechnungsschemata.

Slides:



Advertisements
Ähnliche Präsentationen
Andreas Lill, Fujitsu Technology Solutions GmbH
Advertisements

Automated IT Change Planning
Datenparallele Algorithmische Skelette in Muesli
Kapitel 9: Graphdurchlauf
Agenda Sitzung 2 für den Programmaufbau
Fakultät für informatik informatik 12 technische universität dortmund Mapping of Applications to Multi-Processor Systems Peter Marwedel Informatik 12 TU.
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/10 Graphics:
Fakultät für informatik informatik 12 technische universität dortmund Universität Dortmund Middleware Peter Marwedel TU Dortmund, Informatik 12 Germany.
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Fakultät für informatik informatik 12 technische universität dortmund Hardware/Software Partitioning Peter Marwedel Informatik 12 TU Dortmund Germany Chapter.
Spezialvorlesung Suchalgorithmen Thema: External Probabilistic Planning Stefan Edelkamp.
Binäre Bäume Richard Göbel.
OpenMP Präsentation im Rahmen des Seminars
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Lehrstuhl für Künstliche Intelligenz - Univ. Würzburg Optimization of simulated biological multi-agent systems by means of evolutionary processes Alexander.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Thomas Herrmann Software - Ergonomie bei interaktiven Medien Step 6: Ein/ Ausgabe Instrumente (Device-based controls) Trackball. Joystick.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
FH-Hof Sortieren mit Binären Bäumen Richard Göbel.
Frank Nachtrab Medipix2-Meeting Physikalisches Institut Universität Erlangen-Nürnberg Optimising THL-Masks for the Medipix-Quad
Seminar Telematiksysteme für Fernwartung und Ferndiagnose Basic Concepts in Control Theory MSc. Lei Ma 22 April, 2004.
Frank Fischer Manager Evangelism and Marketing Microsoft Deutschland GmbH.
Higher Order Perl Martin Busik Vortrag über das Buch von Marc Jason Dominus.
Medical Universities‘ Teaching Staff Training in Bochum Germany
Don`t make me think! A Common Sense Approach to Web Usability
Algorithm Engineering Teilmengen-Suche Stefan Edelkamp.
Institut AIFB, Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Towards Automatic Composition of Processes based on Semantic.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #4 Anfragebearbeitung (Teil 2)
Automated Software Testing
Sanjay Patil Standards Architect – SAP AG April 2008
Einführung in die Programmierung
Pühringer, Duscher 1 Workflow Mediation with VorteXML Artikel von [Christophides, Hull, Kumar, Simeon] ©2000 Bell Laboratories, Lucent Technologies.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Projekt Alcatraz Java RMI / Spread - Gruppe A4.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
Gameplay Systems I Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2012 Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Informatik 1 Letzte Übung.
Informatik 1 Übung 4.
Department of Computer Science Homepage HTML Preprocessor Perl Database Revision Control System © 1998, Leonhard Jaschke, Institut für Wissenschaftliches.
INTAKT- Interkulturelle Berufsfelderkundungen als ausbildungsbezogene Lerneinheiten in berufsqualifizierenden Auslandspraktika DE/10/LLP-LdV/TOI/
F-Sharp (F#) Eine multiparadigmatische Sprache. Merkmale von F# Multiparadigmatisch.NET-Sprache Skalierbar und effizient Als Forschungsprojekt von Microsoft.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Real Time Operating System
Dynamische Datentypen
SharePoint FIS HandsOn – out of the Box.
Ein Projekt des Technischen Jugendfreizeit- und Bildungsvereins (tjfbv) e.V. kommunizieren.de Blended Learning for people with disabilities.
Travelling Salesman Problem (TSP)
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
Design Patterns Ein Muster (pattern) ist eine Idee, die sich in einem praktischen Kontext als nützlich erwiesen hat und dies auch in anderen sein wird.
Parallelising Molecular Dynamics for Message Passing Systems Martin Gerber
Grundlagen der Algorithmen und Datenstrukturen Kapitel
How Does Fuzzy Arithmetic Work ? © Hartwig Jeschke Institut für Mikroelektronische Schaltungen und Systeme Universität Hannover
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Kollektive Operationen Oswald Haan
Data Mining Spectral Clustering Junli Zhu SS 2005.
Microsoft Partner Network (MPN)
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
IAB – AN INTERDISCIPLINARY WORKING GROUP FOR PROMOTING MULTIMODAL THERAPY OF MOVEMENT DISORDERS Adib Saberi F 1, Pickenbrock H 2, Dressler D 2 1 Department.
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Algorithmische Skelette
eSkel – edinburgh Skeleton library
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
מבוא למערכות מחשב ואסמבלי
 Präsentation transkript:

9. Algorithmische Skelette Abstrakte parallele Berechnungsschemata

336 Skeletons In parallelen Algorithmen treten wiederkehrende Berechnungsmuster auf. Diese Muster bestehen aus Berechnungen und Interaktionen zwischen ihnen. Von den Details der parallelen Berechnungen wird abstrahiert. Algorithmische Skelette bestehen aus einem Berechnungsschema (Funktion höherer Ordnung) mit einer parallelen Auswertungsstrategie und einem Kostenmodell zur Abschätzung der Ausführungszeit. Campbells classification: divide and conquer (rekursive Partitionierung) task queue (work pool, master worker) systolic (pipeline)

337 Divide and Conquer Berechnungsschema als Funktion höherer Ordnung: d&c :: (a-> Bool) -> (a->b) -> (a -> [a]) -> ([b] -> b) -> a -> b d&c trivialsolvedivideconquerp = if (trivial p) then solve p else conquer (map (d&c trivial solve divide conquer) (divide p)) parallele Implementierungsstrategien: idealisierte Implementierung auf Prozessorbaum H-Baum Implementierung binärer d&c auf dem Grid:

338 Task Queue - Farm - Master/Worker Berechnungsschema: farm :: (a -> b -> c) -> a -> [b] -> [c] farm f env = map (f env) Implementierung: statische Lastverteilung:– dynamische Lastverteilung: Kostenmodell (statische Verteilung): t farm = t setup + n/p (t solve + 2t comm ) master W 1 W np-1 W 0 T TT PE... WW TTTT

339 Systolisches Schema - Pipelining Berechnungsschema: pipe :: [ [a] -> [a] ] -> [a] -> [a] pipe = foldr (.) id Implementierung: lineare Pipeline von Prozessen Kostenmodell:t pipe = t setup + (t stage + t comm )(p + n-1) f2f2 f3f3 f1f1 fpfp

340 Skelettprogrammierung feste Anzahl von Skeletten höherer Ordnung (algorithmische Skelette) verschiedene hoch optimierte Implementierungen für verschiedene Zielarchitekturen (Architekturskelette) Programmiermethodologie: wähle ein passendes Skelett verwende diese in einem Programm schätze die zu erwartende Leistung=> Kostenmodell revidiere Design, falls notwendig=> Transformationsregeln

341 Entwicklung Ursprung: PhD thesis von M. Cole (Univ. of Edinburgh, 1988) wenige komplexe Skelette: FDDC (fixed degree divide & conquer) IC (iterative combination) TQ (task queue) erste Systeme: P 3 L Pisa Parallel Programming Language [Pelagatti et al. 1995] basierend auf imperativer Berechnungssprache SCL Structured Coordination Language [Darlington et al. 1995] basierend auf funktionaler Berechnungssprache

342 SCL - Structured Coordination Language layered skeletal approach: provides lower level of detailed control through explicitly distributed arrays ParArray with skeletons: partition :: Partition_pattern -> SeqArray index a -> ParArray index (SeqArray index a) gather:: Partition_pattern -> ParArray index (SeqArray index a) -> SeqArray index a align :: ParArray index a -> ParArray index b -> ParArray index (a,b) higher level skeletons: elementary / computational / communication skeletons sequential code SCL programs parallel behavior, including data partitioning, placement, movement skeletons cannot be called from sequential code

343 SCL Skeletons elementary skeletons (data parallel operations over distributed arrays) map :: (a -> b) -> ParArray index a -> ParArray index b imap:: (index -> a -> b) -> ParArray index a -> ParArray index b fold :: (a -> a -> a) -> ParArray index a -> a scan :: (a -> a -> a) -> ParArray index a -> ParArray index a computational skeletons (parallel control flow) farm :: (a -> b -> c) -> a -> ParArray index b -> ParArray index c farm f e= map (f e) spmd :: [ (ParArray index a -> ParArray index a, index -> a -> a) ] -> ParArray index a -> ParArray index a spmd [ ] = id spmd ((gf, lf) : fs)= (spmd fs). gf. (imap lf)... communication rotate :: Int -> ParArray index a -> ParArray index a...

344 Standardisierung – Skelettbibliotheken für MPI – H. Kuchen (Univ. Münster, 2002) Skelette als C++ Bibliothek auf der Basis von MPI Polymorphie über Templates simulieren Funktionen höherer Ordnung mittels überladener Operatoren Unterscheidung datenparallele Skelette Manipulation verteilter Datenstrukturen Berechnungsskelette: map, fold, zip, scan... Kommunikationsskelette: rotate, broadcast, permute, gather... kontrollparallele Skelette pipe, farm, d&c, search 1.Erzeuge Prozesstopologie 2.starte Tasks (parallele Prozesse) TASK Datenstrom

345 M. Cole, A. Benoit (Univ. of Edinburgh, 2004) eSkel – Edinburgh Skeleton Library Ziel: Erweiterung von kollektiven Operationen (einfache Skelette) in MPI um algorithmische Skelette Zur Zeit: 5 Skelette 1.pipeline 2.farm 3.deal (wie farm, ohne farmer mit zyklischer Taskverteilung) 4.haloswap -> iterative Approximation Schleife mit local update check for termination 5.butterfly -> divide & conquer in hypercube Standardisierung – Skelettbibliotheken für MPI II –

346 Pipeline Skelett void Pipeline (int ns, Amode_t amode[], eSkel_molecule_t * (*stages[])(eSkel_molecule_t ), int col, Dmode t dmode, spread t spr[], MPI_Datatype ty[], void *in, int inlen, int inmul, void *out, int outlen, int *outmul, int outbuffsz, MPI_Comm comm) => 15 Parameter: 3 Parameter für Pipeline Eingaben 4 Parameter für Pipeline Ausgaben 3 Parameter für Pipeline-Stufen-Spezifikation 4 Parameter für Schnittstellen & Modi 1 Parameter für Kommunikator