Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Big Data – Anwendungen
Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 – 10:00 a.m. Room HS 021, B4 1
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 2
• Effiziente Speicherung/Verarbeitung von Big Data erfordert Alternativen zu Standardtechnologien
• Column-Stores als alternative Software-Lösung für Datenhaltung • Cloud-Computing als alternative Hardware-Lösung für Datenhaltung
• Hauptproblem ist nicht das Speichern sondern der Zugriff auf Daten • Anwendungs-Design für Big Data hat ebenfalls spezielle Anforderungen
! verteilte Speicherung/Verarbeitung " parallele Algorithmen
Wrap-Up
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 3
• Modell über Beschleunigung von Programmen durch parallele Ausführung Gene M. Amdahl. 1967. Validity of the single processor approach to achieving large scale computing capabilities. In Proceedings of the April 18-20, 1967, spring joint computer conference (AFIPS '67 (Spring)). ACM, New York, NY, USA, 483-485.
• Aufteilung des Programms in sequentielle und parallel ausführbare Teile • p sei Anteil der parallel ausführbaren Teile an Gesamtlaufzeit • s ist Anteil der sequentiellen Teile an Gesamtlaufzeit
• Gesamtlaufzeit 10h, davon 1h sequentiell (s) und 9h parallel ausführbar (p) • Bei einem Prozessor 1h + 9h = 10h • Bei zwei Prozessoren 1h + 9h / 2 = 5,5h • Bei unendlich vielen Prozessoren 1h + 9h / ∞ = 1h
• Mit Anzahl der Prozessoren n steigt aber auch der Overhead o(n), um die Parallelisierung zu realisieren (z.B. für Kommunikation)
Amdahlsches Gesetz
Speedup(n) = s+ p
s+ pn+ o(n)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 4
Amdahlsches Gesetz
o(n)= 1min * n2
Prozessoren
Speedup
o(n) = 1min * n
Prozessoren
Speedup
p/s = 1/4
p/s = 2/3
p/s = 3/2
p/s = 4/1
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 5
• Amdahl: Die Verarbeitung eines gegebenen Problem (fixe Gesamtlaufzeit) kann nur bis zu einem bestimmten Grad durch Parallelisierung optimiert werden
• Gustafson: Mit einem höheren Grad an Parallelisierung können größere Probleme gelöst werden (variable Gesamtlaufzeit) John L. Gustafson. 1988. Reevaluating Amdahl's law. Commun. ACM 31, 5 (May 1988), 532-533.
Gustafsons Gesetz
Speedup(n) = ss+ p
+ n ps+ p
p/s = 1/1
p/s = 2/1
p/s = 3/1
p/s = 4/1
Prozessoren
Speedup
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 6
1. Partitionierung • Partitionierung der Daten • Problem Dekomposition: Problem wird in Teilprobleme (Tasks)
zerlegt, die durch mehrere Prozessoren gelöst werden können
2. Kommunikation • Festlegung der Struktur des Kommunikationskanals • Bestimmung eines Protokolls zur Koordinierung der Tasks
3. Agglomeration • Evaluierung der Partitionierungs- und Kommunikationsstruktur
hinsichtlich Performanz und Implementierungsaufwand • Ggf. Rekombination der Tasks
4. Mapping • Zuweisung der Tasks an Prozessoren • Optimale Ressourcen-Ausnutzung (Prozessorauslastung vs. Kommunikationsaufwand) • Statisch (Zuweisung im Voraus) oder dynamisch (Load-Balancing zur Laufzeit)
Methodisches Design paralleler Algorithmen
http://www.mcs.anl.gov/~itf/dbpp/text/book.html
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 7
• Eigenschaften der Tasks • Ist die Lösung eines Tasks abhängig von der Lösung eines anderen? • Festlegung der Tasks im Voraus oder zur Laufzeit? • Aufwand der Tasks gleichverteilt, ungleichmäßig oder unbekannt? • Interaktion zw. Tasks vorbestimmt (statisch) oder dynamisch? • Interaktion zw. Tasks zeigt Regelmäßigkeiten oder ist unregelmäßig?
• Skalierbare Designs • Vermeidung redundanter Berechnungen und Bereitstellung von Daten • Anzahl der Tasks steigt proportional zur Größe des Gesamtproblems • Tasks haben ähnlich großen Aufwand
• Flexibles Design (hinsichtl. Kommunikation, Agglomeration und Mapping) • Fein-granulare Zerlegung (Vielfaches an Tasks im Vergleich zu Prozessoren) • Alternative Zerlegungen identifizieren (Daten- und prozessgetriebene Dekomposition)
Partitionierung
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 8
• Daten- vs. prozessgetriebene Dekomposition • Daten Dekomposition (auch: Geometrische Dekomposition, Domänen Dekomposition):
Zerlegung in Tasks richtet sich nach Partitionierung der Daten, Tasks für „benachbarte“ Datensegmente sind ggf. von einander abhängig
• Funktionale Dekomposition: Zerlegung in Tasks entsprechend der Operationen, die auf den Daten ausgeführt werden
• Abhängigkeiten zw. Tasks • Iterative Dekomposition: Zerlegung in unabhängige Tasks, die nach wiederkehrendem
Schema gelöst werden können • Rekursive Dekomposition: Hierarchische Zerlegung in (Sub-)Tasks, die nach Bottom-
Up-Prinzip gelöst werden können • Explorative Dekomposition: Tasks sind voneinander abhängig, Überprüfung aller
möglichen Lösungspfade • Spekulative Dekomposition: Tasks sind voneinander abhängig, Auswahl des
vielversprechendsten Lösungspfades erfolgt schrittweise während der Lösung der einzelnen Tasks
Partitionierung
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 9
• Kommunikationskanal: • Topologie (Bus, Ring, Stern, etc.) • Bandbreite
• Eigenschaften der Kommunikation • Lokal/Global:
Komm. mit wenigen „benachbarten“ Tasks oder Komm. mit vielen Tasks
• Strukturiert/Unstrukturiert: Regelmäßigkeit der Kommunikationsstruktur (z.B. Baum vs. beliebiger Graph) " Unstrukturierte Komm. erschwert Agglomeration und Mapping
• Statisch/Dynamisch: Feste vs. wechselnde Kommunikationspartner
• Synchron/Asynchron: • Synchron: Empfänger-Tasks warten auf Sender-Tasks (Blockierung) • Asynchron: Empfänger-Tasks fordern Informationen von Sendern an
Kommunikation
http://www.mcs.anl.gov/~itf/dbpp/text/book.html
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 10
• Skalierbares Design • Ein Task kommuniziert mit möglichst wenig anderen Tasks • Lokale Kommunikation anstelle globaler Kommunikation • Tasks erfordern ähnlich viele Kommunikations-Operationen • Tasks und Kommunikation zw. Tasks sollten möglichst nebenläufig ablaufen
• Situation Big Data • Tasks greifen periodisch auf geteilte Datenstruktur zu
" asynchrone Kommunikation • Geteilte Datenstruktur ist zu groß bzw. zu viele Zugriffe für einen Task
" Verteilung auf mehrere Tasks • Strategien
• Datenstruktur wird auf die verarbeitenden Tasks verteilt; Kommunikation mit anderen Tasks, um Eingabedaten zu beziehen bzw. Teilergebnisse zu senden
• Zugriff auf Datenstruktur wird in zusätzliche Tasks gekapselt (Encapuslation) • Zugriff auf Datenstruktur über DBMS
Kommunikation
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 11
• Zusammenfassen von Tasks für effiziente parallele Berechnung
• Reduktion der Kosten für Task-Erstellung • Reduktion der Kommunikationskosten (Größe/
Frequenz der Nachrichten)
• Ggf. Einführung von Redundanzen für effizientere Kommunikation
• Erhaltung der Flexibilität
" Granularität als Parameter • Entwicklungskosten beachten
" Agglomeration vs. Code-Reuse (z.B. Modularität, Separation-of-Concerns)
Agglomeration
http://www.mcs.anl.gov/~itf/dbpp/text/book.html
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 12
Agglomeration
http://www.mcs.anl.gov/~itf/dbpp/text/book.html
(z.B. spaltenorientierte Speicherung)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 13
• Generalisiertes Zuweisungsproblem: NP-vollständiges Problem (alle bekannten deterministischen Algorithmen erfordern exponentiellen Rechenaufwand) " Kann zum Performance-Flaschenhals werden
• Gegeben ist eine Menge Prozessoren und einer Menge Tasks. Prozessoren können Tasks zugewiesen werden. Ein Prozessor hat ein „Budget“, ein Task hat „Kosten“, die Zuweisung von einem Prozessor zu einem Task hat einen „Profit“.
• Finde eine Zuweisungs-Funktion, bei der das Budget jedes Prozessors nicht durch die Kosten der zugewiesenen Tasks überschritten wird und der Gesamtprofit maximiert wird
• (Ggf. mehrfache Ausführung wg. dynamischen Veränderungen)
• (Globale/Lokale) Load-Balancing-Algorithmen für komplexe Probleme (unstrukturierte Komm., heterogene Tasks)
• Task-Scheduling-Algorithmen für simplere Probleme (viele Tasks, wenig lokale Abhängigkeit)
• Zuweisung von Manager- und Worker-Rollen (zentralisiert, hierarchisch, dezentral)
Mapping
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 14
• Funktionale Dekomposition (Tasks entsprechen Operationen auf Eingabedaten)
• Festlegung von Prozessketten • Abhängig von angemessener Verteilung über Prozessschritte • Bsp.: Render-Pipeline
Paradigmen: Data-Pipelining (Data Flow Parallelism)
L. M. e Silva and R. Buyya, Parallel Programming Models and Paradigms, vol. 2, High Performance Cluster Computing: Programming and Applications, Prentice-Hall (1999).
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 15
• Daten Dekomposition (Tasks entsprechen Partitionierung der Eingabedaten)
• Erfordert homogenes System, Kommunikation sollte klar strukturiert und vorhersehbar sein
• Gefährdung bei Ausfall einzelner Prozesse
• Bsp.: Faltung bei Bildverarbeitung
Paradigmen: Single-Program-Multiple-Data (SPMD)
L. M. e Silva and R. Buyya, Parallel Programming Models and Paradigms, vol. 2, High Performance
Cluster Computing: Programming and Applications, Prentice-Hall (1999).
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 16
• Iterative Dekomposition (unabhängige Tasks)
• Ein Master-Knoten: • Aufteilung des Problems und Verteilung
der Tasks an Slave-Knoten • Sammeln der Teilergebnisse und
Zusammenführung zu Gesamtlösung
• Slave-Knoten generieren Teilergebnisse für Tasks
• Gefährdung bei Ausfall des Master-Knoten
• Bsp.: Suche
Paradigmen: Task-Farming (Master/Slave)
L. M. e Silva and R. Buyya, Parallel Programming Models and Paradigms, vol. 2, High Performance
Cluster Computing: Programming and Applications, Prentice-Hall (1999).
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 17
• Rekursive Dekomposition (Aufteilung in Sub-Probleme)
• Abbildung der Baum-Struktur auf Prozessoren
• Bsp.: Schnelle Fourier-Transformation (FFT)
Paradigmen: Divide-and-Conquer
L. M. e Silva and R. Buyya, Parallel Programming Models and Paradigms, vol. 2, High Performance
Cluster Computing: Programming and Applications, Prentice-Hall (1999).
http://www.cmlab.csie.ntu.edu.tw/cml/ dsp/training/coding/transform/fft.html
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 18
Map-Funktion (links), Reduce-Funktion (rechts)
Alexander Alexandrov, Stephan Ewen, Max Heimel, Fabian Hueske, Odej Kao, Volker Markl, Erik Nijkamp, Daniel Warneke: MapReduce and PACT - Comparing Data Parallel Programming
Models. BTW 2011: 25-44
• MapReduce Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. In OSDI, pages 137–150, 2004.
• SPMD + gegenwärtig als Task-Farming implementiert (z.B. Hadoop)
• Map und Reduce als Funktionen zweiter Ordnung mit Parameter:
• Key-Value-Set • Berechnungsfunktion (Funktion erster Ordnung)
• Generalisierung: Parallelization Contracts (PACT) Dominic Battré, Stephan Ewen, Fabian Hueske, Odej Kao, Volker Markl, and Daniel Warneke. 2010. Nephele/PACTs: a programming model and execution framework for web-scale analytical processing. In Proceedings of the 1st ACM symposium on Cloud computing (SoCC '10). ACM, New York, NY, USA, 119-130.
Map Reduce Framework
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 19
Map Reduce Framework
MapReduce Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters.
In OSDI, pages 137–150, 2004.
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 20
• SPMD • OpenMP
http://openmp.org/wp/about-openmp/
• Data-Pipelining • Definieren von Data-Flow-Graphen (gerichtete azyklische Graphen) • Framework bildet Komponenten des Graphen auf Prozessoren ab • Dryad (Microsoft)
Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly. 2007. Dryad: distributed data-parallel programs from sequential building blocks. SIGOPS Oper. Syst. Rev. 41, 3 (March 2007), 59-72.
• FlumeJava Craig Chambers, Ashish Raniwala, Frances Perry, Stephen Adams, Robert R. Henry, Robert Bradshaw, and Nathan Weizenbaum. 2010. FlumeJava: easy, efficient data-parallel pipelines. SIGPLAN Not. 45, 6 (June 2010), 363-375.
Weitere Frameworks
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 21
Artikel: • L. M. e Silva and R. Buyya, Parallel Programming Models and Paradigms, vol. 2, High Performance Cluster
Computing: Programming and Applications, Prentice-Hall (1999). • Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. In OSDI,
pages 137–150, 2004. • Alexander Alexandrov, Stephan Ewen, Max Heimel, Fabian Hueske, Odej Kao, Volker Markl, Erik Nijkamp,
Daniel Warneke: MapReduce and PACT - Comparing Data Parallel Programming Models. BTW 2011: 25-44
Web: • Ian Foster: Designing and Building Parallel Programs
http://www.mcs.anl.gov/~itf/dbpp/text/book.html • White Paper von Oracle „Developing Parallel Programs – A Discussion of Popular Models“
http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation/oss-parallel-programs-170709.pdf
Literatur
Univ.-Prof. Dr.-Ing. Wolfgang Maass
31.01.12 Slide 22
Univ.-Prof. Dr.-Ing. Wolfgang Maass
Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Saarland University, Germany