Seminar Paralleles Rechnen
In dem Seminar sollen aktuelle Themen aus dem Bereich High Performance Computing bearbeitet werden.
Dabei wird ein Schwerpunkt auf selbständiges praktisches Arbeiten gelegt. Die Themen werden teilweise
in Kooperation mit wissenschaftlichen Einrichtungen wie beispielsweise dem GeoForschungszentrum (GFZ)
und dem Potsdamer Institut für Klimafolgenforschung (PIK) bzw. Anwendern aus den
naturwissenschaftlichen Instituten der Universität Potsdam gestellt.
Veranstalter
Prof. Dr. Bettina Schnor, Institut für Informatik
Steffen Christgau, Institut für Informatik
Ort/Termine
Das Seminar wird Mittwoch von 16:00 Uhr bis 20:00 Uhr im Raum 03.04.1.03 stattfinden.
Aktuelles
20.03.2013, 10:00 Uhr
Abschlussvorträge
30.01.2013
Zwischenstandstreffen
12.12.2012
Zwischenstandstreffen
24.10.2012
Themenvorstellung und Vergabe
Materialien
Anforderungen
-
Selbstständige Einarbeitung in die Aufgabenstellung und Absprachen mit den Betreuern
-
Teilnahme an den Zwischenstandstreffen und Berichte zum aktuellen Zwischenstand bzw. individuelle Vorträge
-
Abschlussvortrag
-
Schriftliche Ausarbeitung zwei Wochen nach Abschlussvortrag (doppelseitig ausgedruckt)
Themenliste
-
MPI-Backend für "odeint"
Bereich: MPI, Parallelisierung
Gewöhnliche Differentialgleichen spielen eine wichtige Rolle in vielen Wissenschafts- und Ingenieursdisziplinen. In
diesem Praktikum soll ein MPI-Backend für odeint - eine moderne und generische C++ Bibliothek zum Lösen von
gewöhnlichen Differentialgleichungen entwickelt werden und deren Performance und Anwendungsbereiche mit existierenden
Lösungen (OpenCL, Cuda, OpenMP) verglichen werden.
Betreuer: Karsten Ahnert
-
Leistungsanalyse von pCRASH
Bereich: Leistungsanalyse, Parallelisierung
pCRASH ist eine parallele Anwendung zur Simulation der ersten Sterne im Universum. Grundlage des Programms ist die
Berechnung von Strahlausbreitungen. Zu Beginn der Simulation konzentriert sich die Strahlausbreitung und damit die
Berechnung auf einen kleinen Bereich des simulierten Universums. Erst im Verlauf der Simulation verteilen sich die
Strahlen auf das gesamte berechnete Gebiet. Bei einer statischen Zerlegung der Berechnung ergibt sich somit im zeitlichen
Verlauf eine unausgewogene Last für die einzelnen Prozesse. Perspektivisch soll in das Programm eine dynamische
Lastverteilung integriert werden. Im Rahmen des Praktikums sollen jedoch zunächst Zeitmetriken für verschiedene Stufen
der Berechnung und verschiedene physikalische Parameter sowohl mit entsprechenden Analysetools (Scalasca, Intel Trace
Analyzer, Jumpshot, o.ä.) als auch durch die vorzunehmende Instrumentierung des Codes bestimmt werden.
Betreuer: Adrian Partl, Astrophysikalisches Institut Potsdam (AIP)
Bearbeitet von Hannes S.
-
Paralleler Dateizugriff für pCRASH
Bereich: MPI, Parallelisierung
pCRASH (vgl. Thema 3) verwendet zur Zeit einen zentralen Ansatz für das Einlesen und Schreiben der benötigen bzw.
erzeugten Daten. Dieser Ansatz funktioniert in kleineren Clustersystemen gut, skaliert allerdings nicht in großen
Umgebungen und großen Datenmengen. Jedoch sind im MPI-Standard Methoden zur parallelen Arbeit auf Dateien definiert
(vgl. Kapitel 13, MPI 2.2). Diese bieten die Möglichkeit, den bisher verwendeten zentralen Ansatz durch eine verteilte
Lösung zu ersetzen. Im Praktikum soll ein entsprechender Ansatz auf Basis der MPI-I/O-Routinen entwickelt und umgesetzt
werden.
Betreuer: Adrian Partl, Astrophysikalisches Institut Potsdam (AIP)
Bearbeitet von Sebastian T.
-
Parallelisierung mit k-d-Bäumen
Bereich: Bereich: MPI, Parallelisierung
Betreuer:Arman Khalatyan, Astrophysikalisches Institut Potsdam (AIP)
Bearbeitet von Patrick W. und Sebastian R.
-
Determinisierung von endlichen Automaten
Bereich: Parallelisierung
Die Determinisierung (gewichteter) endlicher Automaten ist eine wichtige Operation, nicht nur zur Erhöhung des
Durchsatzes von Systemen, die auf endlichen Automaten basieren, sondern z.B. auch Voraussetzung für die Berechnung des
Komplements einer regulären Sprachen oder die Entscheidung, ob zwei endliche Automaten die gleiche Sprache akzeptieren.
Grundlage der Automatendeterminisierung ist die Teilmengenkonstruktion, d.h. ein Zustand des deterministischen Automaten
ist eine Menge von Zuständen des gegebenen nicht-deterministischen Automaten. Bisher gibt es noch nicht allzuviele
Versuche, parallele Algorithmen für die Automatendeterminisierung zu finden. Dies liegt inhärent daran, dass endlichen
Automaten eigentlich Graphen zugrunde liegen, die man im allgemeinen Fall nicht so einfach in unabhängige Teile aufspalten
kann, die dann weitgehend sperrungsfrei von Teilprozessen weiterverarbeitet werden können. Potentielle Ansätze reichen von
naheliegenden Ideen der Parallelisierung einzelner Phasen des seriellen Algorithmus bis hin zur Anwendung
graphentheoretischer Begriffe zur Identifizierung weitgehend unabhängiger Teilgraphen.
Betreuer: Thomas Hanneforth, Department Linguistik, Computerlinguistik
Bearbeitet von Christian S.
-
GPU-API-Vergleich
Bereich: MPI, Multicore-Programmierung
Mit CUDA C, OpenCL und OpenACC stehen verschiedene Programmierschnittstellen zur Ausnutzung der massiven Parallelität in
Grafikkarten bereit. Im Rahmen des Praktikums soll zunächst eine einfache Stencil-Berechnung sequentiell implementiert und
für Multicore-Systeme parallelisiert werden. Im Anschluss wird das sequentielle Original mit den genannten Schnittstellen
auf die GPU portiert. Betrachtet werden sollen dabei zum einen die Benutzbarkeit für den Programmierer als auch die
Leistungsfähigkeit der GPU-Portierung.
Betreuer: Steffen Christgau
Bearbeitet von Torsten K und. Stefan P.
-
Non-blocking Collectives
Bereich: MPI, Parallelisierung
Nichtblockierende kollektive Operationen (z.B. IBcast in Analogie zu ISend) sind für den MPI-Standard Version 3 vorgesehen.
Es existieren bereits entsprechende Implementierungen. Im Rahmen des Praktikums sollen vorhandene Anwendungen (bereits
parallelisierte Klimasimulation POTSDAM-3, FFT) mit Blick auf die NBCs optimiert werden.
Betreuer: Steffen Christgau
-
Multicore Programming with OpenMP and MPI / Erweiterung des Zellularautomaten
Bereich: MPI, Multicore-Programmierung, NoC, SCC
Der aus der Vorlesung Paralleles Rechnen bekannte Zellularautomat soll um eine 2-dimensionale Zerlegungen erweitert werden.
Zusätzlich sollen Topologieinformationen (MPI-2) ergänzt werden, von der die Anwendung u.U. auf entsprechenden Plattformen
(Cluster und Intel SCC) profitieren kann. Weiterhin werden Muticorearchitekturen immer wichtiger. Daher kommen Fragen auf wie:
Wie verhalten sich reine MPI Anwendungen auf einem Cluster von Multicoremaschinen im Gegensatz zu hybriden Ansätzen die MPI
und OpenMP nutzen? Diese Frage soll beantwortet werden, indem der aus der Zellularautomat mit MPI, OpenMP und einer Hybriden
Variante implementiert und anschließend, die verschiedenen Varianten verglichen werden. Plattform: Zuse-Node mit Dual-Quadcore
Nehalem (8 Cores), ZEIK-Computeserver mit Quad-12 Core Magny Cours (48 Cores).
Betreuer: Steffen Christgau
Bearbeitet durch Mohammad K. und Jorge K.
Literatur
-
Michael J. Quinn: Parallel Programming, Mcgraw-Hill Higher Education, 2004
-
Peter Sanders, Thomas Worsch: Parallele Programmierung mit MPI, Logos Verlag, 1997
-
Ian Foster: Designing and Building Parallel Programs, Addison Wesley, 1995
-
Hwang/Xu: Scalable Parallel Computing: Technology, Architecture, Programming, Boston,
WCB/McGraw-Hill, 1998
-
Jakub Kurzak, David A. Bader, Jack Dongarra (Eds): Scientific Computing with Multicore
and Accelerators, CRC Press Taylor & Francis Group