Kick-Off Paralleles Programmieren

Ähnliche Dokumente
LMU München LFE Medieninformatik Mensch-Maschine Interaktion (Prof. Dr. Florian Alt) SS2016. Mensch-Maschine-Interaktion

Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden

Software-Engineering Seminar, Summer AG Softech FB Informatik TU Kaiserslautern

Moore's Law. Mitja Schmakeit

Programmiersprachen Proseminar

HFWU Nürtingen-Geislingen, Automobilwirtschaft (B.A.) Digitale Revolution. Nikolaj Lunze, M.Sc.

Multi-threaded Programming with Cilk

Proseminar: Parallele Algorithmen

(Pro-)Seminar - Data Mining

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

Kapitel Grundlagen zur Parallelverarbeitung

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

Memory Models Frederik Zipp

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

III.1 Prinzipien der funktionalen Programmierung - 1 -

CUDA Workshop. Ausblick. Daniel Tenbrinck

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Ideen der Informatik. Eine Vorlesung für Hörer aller Fakultäten. Kurt Mehlhorn und Adrian Neumann

Instrumentation von Android Anwendungen mit ExplorViz

Funktionale Programmiersprachen

Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design) Prof. Dr.-Ing. J. Teich

CE-Bachelor Studiengang

2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"

Chancen und Risiken von Multi-Core. Matthias Pruksch

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

Eine Vorlesung für Hörer aller Fakultäten

Performanceoptimierung von parallelen Programmen Die Formel 1 der Informatik. Philipp Gschwandtner, Universität Innsbruck, 28.

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Computergrundlagen Computergestützte Physik

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Grundlagen der Programmierung 2 (1.A)

Programmiersprachenkonzepte

Verteidigung der Bachelorarbeit, Willi Mentzel

Der Evolution mit Hochleistungsrechnern auf der Spur. Alexandros Stamatakis Scientific Computing Group HITS

Tutorium Softwaretechnik I

Vorlesung Ausgewählte Kapitel aus dem Übersetzerbau

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Multi- und Many-Core

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

27. Parallel Programming I

Gemeinsames TUM-LMU Seminar

Einführung in die Programmierung

Stream Processing und High- Level GPGPU Sprachen

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Lehrstuhl 1 / Fakultät für Informatik. Haskell. Karsten Lettow

I Grundlagen der parallelen Programmierung 1

Kapitel 4 Grundlagen zur Parallelverarbeitung

Beispiel: Hamming-Folge Erzeuge eine Folge X = x 0,x 2,... mit folgenden Eigenschaften: 1. x i+1 > x i für alle i

Performance Engineering: Forschung und Dienstleistung für HPC-Kunden. Dirk Schmidl

Cell and Larrabee Microarchitecture

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

Aufbau und Funktionsweise eines Computers

Patrick Scharpfenecker May 23, Proseminar Algorithmen Organisatorisches & Themen

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien

HW/SW Codesign 5 - Performance

General Purpose Computation on GPUs

FPGA-Based Architecture for Pattern Recognition

Objektorientiertes Programmieren

Komponentenbasierter

Computer-Generationen

Einführung in die Programmierung

Transkript:

Fakultät Informatik Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie Kick-Off Paralleles Programmieren 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! 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 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 4 / 12

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... 5 / 12

Szenario: SequentialBank 6 / 12

Szenario: SequentialBank Muster Role Object Pattern Abbildung 3: Strukture des Role Object Patterns [5] 7 / 12

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) 8 / 12

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 9 / 12

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 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) 11 / 12

Kick-Off Paralleles Programmieren Ende 12 / 12