Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation

Slides:



Advertisements
Ähnliche Präsentationen
Developing your Business to Success We are looking for business partners. Enterprise Content Management with OS|ECM Version 6.
Advertisements

Imperative Programmierung
Fast Fourier Transformation
Matrixmultiplikation
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
11. Matrizen. 11. Matrizen Eine mn-Matrix ist ein Raster aus mn Koeffizienten, die in m Zeilen und n Spalten angeordnet sind. = (aij)1  i  m, 1.
Streuung Bezeichnung Streuung=Dispersion=Variabilität Fragestellung:
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Trimino zum Kopf- oder halbschriftlichen Rechnen
= = = = 47 = 47 = 48 = =
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Vereinfachung von Termen Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2006 Dietmar.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Seminar parallele Programmierung SS 2003
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Berechnen Sie den Output Vektor wenn der Input Vektor (1,1,-1,-1) ist.
Diskrete Mathematik I Vorlesung Arrays-
Klausur „Diskrete Mathematik II“
Professionelles Projektmanagement In der Praxis
Differentieller Stromverstärker
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Inhalte und Maßnahmen eingegeben haben,
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Materialien zum Informatikunterricht (Pohlig-Häberle)
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
...ich seh´es kommen !.
Einführung in die Matrizenrechnung
Polynome und schnelle Fourier-Transformation
Präsentation läuft auch vollautomatisch ab … wie du möchtest
Auslegung eines Vorschubantriebes
Technische Informatik Reihungen – Felder - Arrays.
© Bibliothek und Archiv der Österreichischen Akademie der Wissenschaften Katalogisierung in RAK / MAB2 Beispiele 1. Teil Lösungen Verbund für Bildung und.
Analyse von Ablaufdiagrammen
PROCAM Score Alter (Jahre)
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Symmetrische Blockchiffren DES – der Data Encryption Standard
SK / – in Hochkössen, St. Johann i.Tirol und Hochfügen flow Ski- und Snowboardschule Intersport Menzel.
Managemententscheidungsunterstützungssysteme (Ausgewählte Methoden und Fallstudien) ( Die Thesen zur Vorlesung 3) Thema der Vorlesung Lösung der linearen.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Großer Altersunterschied bei Paaren fällt nicht auf!
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
2014 Januar 2014 So Mo Di Mi Do Fr Sa So
Pigmentierte Läsionen der Haut
Externspeicher- Algorithmen:Teil 2
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Komplexität von Algorithmen
Präzise Vorhersage der Rechnerkapazität bei Mehrzweckdiensten Gruppe 5 Modellierungswoche Lambrecht 23. Juni bis 28. Juni 2002.
1 Mathematical Programming Nichtlineare Programmierung.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Männer Gesundheit in Mecklenburg-Vorpommern Trends und Vergleiche
Der Erotik Kalender 2005.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
SAP Seminar 2007 Organisationsobjekte anlegen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
6. Thema: Arbeiten mit Feldern
 Präsentation transkript:

Parallele Programmierung und Parallele Algorithmen: Matrix-Vektor-Multiplikation

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Motivation Matrix-Vektor-Multiplikation: Kernoperation in vielen Berechnungen In unterschiedlichsten Anwendungsgebieten Naturwissenschaften, Wirtschaft, Computergrafik, …  Hohe Bedeutung & Häufigkeit Parallele Datenverarbeitung: Mehrkernprozessoren bereits im privaten Sektor etabliert  Gegenwart & Zukunft Parallele Matrix-Vektor-Multiplikation Höhere Leistung & Effizienz als serieller Ablauf

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Grundlagen: Serielle Matrix-Vektor-Multiplikation (1/2) Matrix-Vektor-Multiplikation: A ∙ x = y Beispiel: Ablauf: Folge von Skalarprodukten von Vektor x mit Zeilenvektoren von A Vektor x m x n Matrix A Vektor y m n

Grundlagen: Serielle Matrix-Vektor-Multiplikation (2/2) Zeitkomplexität: Skalarprodukt von zwei Vektoren der Länge n: n Multiplikationen n-1 Additionen  Θ(n) Serielle Matrix-Vektor-Multiplikation: m Skalarprodukte  Θ(m·n), für m = n: Θ(n2)

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Grundlagen: Daten-Dekomposition beim Parallelisieren (1/2) Parallelisieren der Matrix-Vektor-Multiplikation  Dekomposition von m x n Matrix A (und Vektor x) auf p Prozesse Beispiele für p = 4: Bestimmt Anzahl benötigter Kommunikations- und Rechenoperationen  Schlüsselentscheidung Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition

Grundlagen: Daten-Dekomposition beim Parallelisieren (2/2) Möglichst ausgeglichene Dekomposition  hohe Leistung & Effizienz Aufteilung von Matrix A in Teilstücke mit: Zeilenweise: oder benachbarten Zeilen Spaltenweise: oder benachbarten Spalten Blockweise: zwischen und großen Matrixblöcken

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Parallele Algorithmen: Zeilenweise Dekomposition Algorithmus Jeder Prozess erhält: Zusammenhängende Zeilen der Matrix A Kopie des Vektors x Hauptschritte des Algorithmus: x 1) Skalarprodukt- berechnung 1. Zeile von A x 1. Zeile von A y1 Prozess 1 x 1. Zeile von A y Prozess 1 2) All-gather- Kommunikation Prozess 1

Parallele Algorithmen: Zeilenweise Dekomposition Implementierung (1/2) Implementierung nach Quinn(2003): Hauptschritte:

Parallele Algorithmen: Zeilenweise Dekomposition Implementierung (2/2) Blockvektor replizieren: 1) Gemischte xfer Arrays erzeugen 2) All-gather-Kommunikation

Parallele Algorithmen: Zeilenweise Dekomposition Analyse (1/2) Zeitkomplexität (unter der Annahme m = n): Kommunikationskomplexität: All-gather-Kommunikation (in einem Hypercube-Netzwerk  ) Jeder Prozess sendet Nachrichten (durch paarweisen Datenaustausch zwischen den Prozessen) Elemente je Nachricht nehmen zu (in Schritt i: Elemente)  Elemente insgesamt 

Parallele Algorithmen: Zeilenweise Dekomposition Analyse (2/2) Berechnungskomplexität: Je Prozess höchstens Zeilen Je Zeile eine Skalarproduktberechnung mit Θ(n)  Gesamtkomplexität: Algorithmus ist nicht sehr gut skalierbar!

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Parallele Algorithmen: Spaltenweise Dekomposition Algorithmus Jeder Prozess erhält: Zusammenhängende Spalten der Matrix A Zusammenhängende Elemente des Vektors x Hauptschritte des Algorithmus: 1) Teilskalarprodukt- berechnung 1. Spalte von A x1 Teilskalar- produkte 1. Spalte von A 2) All-to-all- Austausch Prozess 1 x1 Summanden von y1 1. Spalte von A x1 Prozess 1 1. Spalte von A y1 Prozess 1 3) Teil- ergebnisse summieren x1 Prozess 1

Parallele Algorithmen: Spaltenweise Dekomposition Implementierung (1/2) Implementierung nach Quinn(2003): Hauptschritte:

Parallele Algorithmen: Spaltenweise Dekomposition Implementierung (2/2) Teilskalarproduktergebnisse verteilen: 1) Gemischte xfer Arrays erzeugen ( Senden) 2) Gleichförmige xfer Arrays erzeugen ( Empfangen) Wie gemischte xfer Arrays, aber mit gleichen Count Array-Einträgen 3) All-to-all-Kommunikation

Parallele Algorithmen: Spaltenweise Dekomposition Analyse (1/2) Zeitkomplexität (unter der Annahme m = n): Kommunikationskomplexität: All-to-all-Kommunikation Jeder Prozess sendet Nachricht an anderen Prozess  p –1 Nachrichten insgesamt Jeder Prozess erhält nur die von ihm benötigten Elemente  maximal n Elemente insgesamt 

Parallele Algorithmen: Spaltenweise Dekomposition Analyse (2/2) Berechnungskomplexität: Je Prozess höchstens Spalten mit je n Einträgen Je Spalteneintrag Multiplikation mit Vektorelement  Gesamtkomplexität: Algorithmus ist nicht sehr gut skalierbar!

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Parallele Algorithmen: Blockweise Dekomposition Algorithmus Jeder Prozess erhält: Zusammenhängende Elementblöcke der Matrix A Zusammenhängende Elemente des Vektors x Hauptschritte des Algorithmus: 1) Vektor x umver- teilen x A xi xi ai,j ai,j 2) Matrix-Vektor- Multiplikation Teilskalarproduktergebnisse y 3) Summen- Reduzierung

Parallele Algorithmen: Blockweise Dekomposition Implementierung (1/2) Implementierung nach Quinn(2003): Hauptschritte:

Parallele Algorithmen: Blockweise Dekomposition Implementierung (2/2) Vektor umverteilen (für quadratisches p):

Parallele Algorithmen: Blockweise Dekomposition Analyse (1/2) Zeitkomplexität (unter den Annahmen m = n und p ist quadratisch): Kommunikationskomplexität: Vektor x umverteilen & Summen-Reduzierung: Jeder Prozess der 1. Spalte sendet Vektorblock ( Elemente) an 1. Zeile-Prozess Spaltenverteilung & Summen-Reduzierung: je 

Parallele Algorithmen: Blockweise Dekomposition Analyse (2/2) Berechnungskomplexität: Je Prozess höchstens Matrixelemente Je Element Multiplikation mit Vektorelement  Gesamtkomplexität: Algorithmus ist besser skalierbar!

Parallele Algorithmen: Vergleichsüberblick Analysevergleich der drei Algorithmen: Serieller Algorithmus: Θ(n2)  Blockweise Dekomposition liefert besten Algorithmus Zeilenweise Spaltenweise Blockweise Zeit-komplexität nicht gut skalierbar  besser skalierbar

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Benchmarking-Werte nach Quinn(2003) Benchmarking nach Quinn(2003): Cluster mit 450 MHz Pentium II Prozessoren 1.000 x 1.000 Matrix, 100 Durchläufe Speedupergebnisse: Speedup Prozessoren

Eigene Benchmarking-Werte Eigenes Benchmarking: Cluster mit Dual Quad Core Twin Servern mit je zwei 2,1 GHz Quad Core AMD Opteron CPUs 10.000 x 10.000 Matrix, 50 Durchläufe Speedupergebnisse: Speedup Prozessoren

Benchmarking-Vergleich Quinn(2003) Eigene Werte Beste Implementierung Blockweise Dekomposition Zeilen- und blockweise Dekomposition Schlechteste Implementierung Zeilen- und spaltenweise Dekomposition Spaltenweise Dekomposition Mögliche Erklärungen: Anzahl Prozessoren für neue Hardware nicht groß genug Messfehler

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit

Zusammenfassung & Fazit Matrix-Vektor-Multiplikation sehr verbreitet & wichtig Parallelisieren  Daten-Dekomposition: Zeilenweise Matrix-Dekomposition Spaltenweise Matrix-Dekomposition Blockweise Matrix-Dekomposition Resultierende Algorithmen, deren Analyse & mgl. Implementierung Benchmarking Theorie: Blockweise Dekomposition liefert besten Algorithmus Eigene Praxis: Zeilenweise Dekomposition ebenfalls sehr gut Abgrenzung: Parallele Matrix-Vektor-Multiplikation sehr einfach & elementar Nur vollbesetzte Matrizen (ohne Sonderfall dünnbesetzte Matrizen)

Fragen & Diskussion Hauptquelle: Michael J. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003.

Backup: Zeilenweise Dekomposition Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: All-gather-Kommunikation Für großes n: Eigentliche Kommunikationszeit übersteigt Latenzzeit  Kommunikationskomplexität vereinfacht: Θ(n)  mit , , Skalierbarkeitsfunktion: Speicherauslastungsfunktion für n x n Matrix: M(n) = n2   nicht sehr skalierbar!

Backup: Spaltenweise Dekomposition Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: All-to-all-Kommunikation Für großes n: Eigentliche Kommunikationszeit übersteigt Latenzzeit  Kommunikationskomplexität vereinfacht: Θ(n)  mit , , Skalierbarkeitsfunktion: Gleiche Isoeffizienzfunktion wie bei zeilenweiser Dekomposition  Gleiche Skalierbarkeitsfunktion  nicht sehr skalierbar!

Backup: Blockweise Dekomposition Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: Kommunikationskomplexität je Prozessor   mit , Skalierbarkeitsfunktion:  besser skalierbar!