Fakultät Informatik Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie
Kick-Off Paralleles Programmieren
Hauptseminar T...
Fakultät Informatik Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie
Kick-Off Paralleles Programmieren
Hauptseminar Thomas Kühn
Motivation Moore's Law „The complexity for minimum component costs has increased at a rate of roughly a factor of two per year.“ – G. Moore [1]
Physikalische Grenze der Prozessorgeschwindigkeit erreicht ● Taktfrequenz ● Leistung (Energieverbrauch) Trend geht zu Mehrkern- und Co-Prozessorarchitekturen ● Mehrkern CPU's ● CPU und GPU in einem Chip
Abbildung 1: Intel CPU Introductions [2]
Moore's Law gilt weiterhin! HS Paralleles Programmieren
2 / 12
Motivation
The Free Lunch is Over „Software is getting slower more rapidly than hardware becomes faster.“ – N. Wirth [3]
Programme profitieren ● direkt von schnelleren Prozessoren ● indirekt von Optimierungen des Compilers für bestimmte Prozessortypen Programme profitieren nicht ● direkt von mehr Kernen im Computer ● indirekt von Spezial-Prozessoren (z.B. GPUs) Nicht jedes Programm ist parallelisierbar [4] Parallelisierung unentscheidbar für Compiler
Programmiersprachen müssen Konzepte bereitstellen um paralleles Programmieren zu ermöglichen HS Paralleles Programmieren
3 / 12
Motivation
Anforderungen an Programmiersprachen
Welche Konzepte moderner Programmiersprachen erleichtern die Entwicklung von parallelen Anwendungen? Abbildung 2: Programmierung der ENIAC [U. S. Army Photo]
Unterstützen des Objekt-orientierten Paradigmas Bereitstellen einfacher Konzepte für Parallelität Unterstützen von Synchronisationsmechanismen HS Paralleles Programmieren
4 / 12
Hauptseminar
Themenvorschläge
Erlang von Ericsson http://www.erlang.org C# zusammen mit Rx von Microsoft http://msdn.microsoft.com/de-de/data/gg577609.aspx Eiffel SCOOP von Bertrand Meyer http://docs.eiffel.com/book/solutions/concurrent-eiffel-scoop Concurrent Haskell von Simon Peyton Jones et. al. http://www.haskell.org/haskellwiki/GHC/Concurrency Go von Google Corperation http://golang.org Rust von Mozilla Research http://www.rust-lang.org ParaSail von Tucker Taft http://parasail-programming-language.blogspot.de B von Mark S. Miller, Dan Bornstein http://www.erights.org Weitere Vorschläge ... HS Paralleles Programmieren
5 / 12
Hauptseminar
Szenario: SequentialBank
HS Paralleles Programmieren
6 / 12
Hauptseminar
Szenario: SequentialBank Muster Role Object Pattern
Abbildung 3: Strukture des Role Object Patterns [5] HS Paralleles Programmieren
7 / 12
Hauptseminar
Szenario: ParallelBank
Abbildung 3: Titan HPC [Courtesy of Oak Ridge National Laboratory, U.S. Dept. of Energy]
Implementierung einer parallelen Bankanwendung Implementieren der SequentialBank Parallelisierung der Anwendung mit modernen Sprachkonzepten Anforderungen Transaktionen werden zu jeder Zeit (parallel) durchgeführt Überweisungen können zu jeder Zeit durchgeführt werden Jede Transaktion wird irgendwann ausgeführt (fairness) HS Paralleles Programmieren
8 / 12
Hauptseminar
Aufgabenstellung
Auswahl einer Programmiersprache Einzelne Bearbeitung der Themen Implementierung des Szenarios mit der gewählten Sprache Präsentation der Programmiersprache ● 45 min. Vortrag ● Sprachfeatures für Parallelität / Nebenläufigkeit ● Implementierung des Szenarios Schriftliche Ausarbeitung ● 7-9 Seiten ● Erstellt mit Hilfe von Latex ● Style Lecture Notes On Computer Science (LNCS) ● Sprachfeatures für Parallelität / Nebenläufigkeit ● Implementierung des Szenarios
HS Paralleles Programmieren
9 / 12
Hauptseminar
Organisation
Nächster Termin 24.10.2013 Themenauswahl Kurze Beschreibung der Sprache (5 min) Weitere Organisation Weitere Plannung Einreichen der Inhaltsangabe und Gliederung Anfang Dezember Abgabe des schriftlichen Teils im Anfang Januar Gemeinsamer Reviewprozess der Arbeiten mit EasyChair.org Vorträge in (einer) Blockveranstaltung im Ende Januar
HS Paralleles Programmieren
10 / 12
Referenzen
[1] Cramming more Components onto Integrated Circuits Gordon E. Moore Electronics Magazine (1965) [2] The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software Herberd Sutter Dr. Dobb's Journal (2005) [3] A Plea for Lean Software Niklaus Wirth Computer 28.2 (1995) [4] Limits to Parallel Computation: P-completeness Theory Raymond Greenlaw, H. James Hoover, and Walter L. Ruzzo. Oxford university press (1995) [5] The Role Object Pattern Dirk Bäumer, et al. Washington University Dept. of Computer Science (1998)