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
Modulnummern
- Bachelor Informatik:
3520
- Bachelor Computational Science:
555701 Teilleistung zum Modul 6020
- Master Informatik:
3521
- Master Computational Science:
555111 Teilleistung zum Modul 10010
Ort/Termine
Das Seminar wird Mittwoch von 14:00 Uhr bis 18:00 Uhr im Raum 03.04.1.03 stattfinden.
Events
Aktuelles
Abschlussvorträge
24.09.2014, 9:30 Uhr
Zwischenstandstreffen
10.09.2014, 10:00 Uhr
Zwischenstandstreffen
27.08.2014, 10:00 Uhr
Zwischenstandstreffen
11.06.2014, 14:00 Uhr
Besprechung der Aufgabenstellungen
23.04.2014, 15:00 Uhr
Themenvorstellung
09.04.2014, 14:15 Uhr
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
-
Multicore Programming with OpenMP and MPI / Erweiterung des Zellularautomaten
Bereich: MPI, Multicore-Programmierung
Der aus der Vorlesung Paralleles Rechnen bekannte Zellularautomat soll um eine 2-dimensionale Zerlegungen
erweitert werden. 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 Vorlesung bekannte
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).
Bearbeitet von Kevin D.
-
Bewertung von 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.
-
Effiziente FFT-Implementierung auf Multicores
Bereich: Multicore-Programmierung
Schnelle Fourier-Transformationen (FFT) sind in der Signalverarbeitung und in den Naturwissenschaften unverzichtbar.
Es existieren verschiedene Implementierungen, die für diverse Architekturen optimiert worden sind. Eine
exemplarische Implementierung für Multicore-Systeme soll hinsichtlich der darin vorgenommenen Optimierungen
untersucht werden. Die Behandlung des Themas schließt den mathematischen Hintergrund mit ein. Siehe auch
Chow/Fossum/Brokenshire: "Scientific Computing with Multicores and Accelerators" S. 171 ff. (am Lehrstuhl verfügbar).
-
CHARM++
Bereich: Programmiermodelle
Programming multicore or manycore architectures is a hard challenge particularly if one wants to fully take
advantage of their computing power. Moreover, a hierarchical topology implies that communication performance is
heterogeneous and this characteristic should also be exploited. We developed two load balancers for Charm++ that
take into account both aspects, depending on the fact that the application is compute-bound or communication-bound.
This work is based on our TreeMatch library that computes process placement in order to reduce an application
communication costs based on the hardware topology. We show that the proposed load-balancing schemes manage to
improve the execution times for the two aforementioned classes of parallel applications.
Quelle: ieeecluster13conference.sched.org
-
OpenACC-Compiler-Vergleich
OpenACC ist ein offener Standard, der - ähnlich wie OpenMP - Anweisungen zur automatischen Parallelsierung von Code
durch den Compiler definiert. Der Code wird dabei primär für Grafikkarten erzeugt. Jedoch waren bisher nur
kommerzielle oder akademische Compiler, die OpenACC-Unterstützung bieten, verfügbar. In der GNU Compiler Collection
wird derzeit an einer Unterstützung für OpenACC gearbeitet. Bei der Bearbeitung des Themas soll ein Vergleich der
erreichbaren Performance zwischen den verfügbaren OpenACC-Compilern gezogen werden.
Bearbeitet von Alexander L.
-
Vergleich von OpenMP 4.0 und OpenCL für EasyWave
Bereich: Grafikkarten/Beschleunigerprogrammierung
OpenMP 4.0 definiert ähnlich wie OpenACC Anweisungen, um Code durch den Compiler parallelisieren zu lassen und diesen
auf Beschleunigern auszuführen (offloading). Im Gegensatz zur automatisierten Parallelisierung mit OpenMP wird mit
OpenCL eine explizite parallele Programmierung vorgenommen. Mit der existierenden Anwendung EasyWave soll der
Vergleich zwischen den beiden Programmieransätzen sowie existierenden Parallelisierungen mit CUDA und OpenACC
vorgenommen werden.
-
Tuning und Benchmarking und HPC-Systemen
Bereich: Clustercomputing
Für effizientes Clustercomputing ist die Leistungsfähigkeit der verwendeten Hard- und Software ein kritischer Aspekt.
Die Bewertung von Systemen erfolgt mittels Benchmarks. Hier soll eine Übersicht bestehender Benchmarks erstellt und
deren Aussagekraft für die Bewertung eines Systems verglichen werden. Weiterhin von Bedeutung ist eine effiziente
MPI-Implementierung. Diese bieten meist diverse Parameter, die ihre Leistungsfähigkeit beeinflussen können. Im Rahmen
dieses Themas sollen diese ebenfalls betrachtet werden sollen. Der Fokus liegt hier insbesondere auf OpenMPI oder
Intel MPI.
Bearbeitet von Tobias J.
-
Intel Xeon Phi
Bereich: Beschleunigerprogrammierung
Mit dem Intel Xeon Phi bietet Intel eine Beschleunigerkarte auf Basis bewährter x86-Technologie an. Die Karte bietet
(je nach Generation) mehr als 50 Prozessorkerne, die miteinander vernetzt sind. Zur Progammierung bietet sich daher
u.a. MPI an. Neuere Generationen besitzen mehrere Threads pro Kern, sodass zusätzlich bspw. auch OpenMP genutzt werden
kann. Im Rahmen der Aufgabenstellung soll eine existierende Anwendung auf den Xeon Phi portiert und die erreichbare
Performance bewertet werden.
Bearbeitet von Johannes S.
Die Themen 7 und 8 werden von CPU 24/7
vergeben.
Literatur
Parallel Programming
Michael J. Quinn
Mcgraw-Hill Higher Education, 2004
Parallele Programmierung mit MPI
Peter Sanders, Thomas Worsch
Logos Verlag, 1997
Designing and Building Parallel Programs
Ian Foster
Addison Wesley, 1995
Scalable Parallel Computing: Technology, Architecture, Programming
Hwang/Xu
WCB/McGraw-Hill, 1998
Scientific Computing with Multicore and Accelerators
Jakub Kurzak, David A. Bader, Jack Dongarra
CRC Press, 2010