Studentische Arbeiten
Inhaltsverzeichnis
Bachelor, Master und Diplomarbeitsthemen
(online seit 06.09.2022)
Der neue SPEChpc2021 Benchmark erlaubt es, aktuelle System-Archtekturen mittels verschiedener paralleler Programmierparadigmen (MPI, OpenMP, OpenACC, OpenMP target offloading) zu vermessen. Dabei kann grundsätzlich aus vier verschiedenen Problemgrösen gewählt werden (tiny, small, medium, large).
Ziel dieses Themas ist es, die vollständige Performance-Suite (d.h. alle vier Paradigmen) zu installieren, mit dem Laufzeit-Monitor Score-P zu instrumentieren und die erhobenen Spur-Daten mit dem Analyse-Werkzeug Vampir zu analysieren.
Schlussendlich sollen die einzelnen Anwendungen der Suite in ihren vier Versionen detailiert miteinander verglichen und auf zu erwartende Performance-Engpässe untersucht werden.
Da der Benchmark noch vergleichsweise neu ist, sind Probleme bei Portabilität und Rechenperformance zu erwarten, die wiederum mit den genannten Werkzeugen aufgedeckt und dokumentiert werden können.
Schwerpunkte:
- Arbeiten auf Hochleistungsrecheninfrastruktur in Linux Arbeitsumgebung
- Konfiguration und Installation des SPEChpc2021 Benchmarks
- Bash/C/C++/Fortran und GPU Programmierung
- Nutzung der Performance-Aufzeichnungs-Werkzeuge Score-P und Vampir
- Analyse und Interpretation der gewonnenen Daten im Hinblick auf Performance-Merkmale wie Skallierbarkeit, Speedup, Parallele Effiziens, Performance Boundness
Kontakt: Dr. Holger Brunst
(Online seit: 05.09.2022)
Konventionell werden Programmspuren als Zeitlinien von Funktionsaufrufen oder verarbeitet als Programmprofile dargestellt. Um periodische Effekte zu visualisieren, sollen verschiedene Transformationen und Visualisierungen auf ihre Eignung hin getestet werden. Beispielhaft seien Fourier-Analyse, Spektrogramme und Autokorrelation genannt. Nach Erarbeitung eines Konzeptes zur Visualisierung mit Fokus auf das Hervorheben von möglichen Störquellen, soll ein Prototyp in C++ und Qt entwickelt werden.
Inhaltliche Schwerpunkte:
- Literaturrecherche
- Tracing mit Score-P und OTF2
- C++
- Qt
- Signalverarbeitung
Kontakt: Maximilian Knespel
Hochskalierende Anwendungen stellen hohe Anforderungen an die gleichzeitig verfügbaren Ressourcen eines HPC-Clusters. Deshalb ist es wünschenswert, die Laufzeit zu minimieren und gleichfalls eine gute Auslastung der verfügbaren Ressourcen zu erreichen, ohne die Qualität der Ergebnisse zu beeinträchtigen. Ziel dieser Arbeit ist die Durchführung einer Performanceanalyse einer hochparallelen Anwendung auf dem Hochleistungsrechner des ZIH unter Verwendung der Werkzeuge Score-P, Lo2s und Vampir. Für die in der Analyse ermittelten kritischen Bereiche sollen Strategien zur Laufzeitverbesserung entwickelt, implementiert und evaluiert werden. Mögliche Ansatzpunkte können beispielsweise verbesserte Datenaufteilungsstrategien sein.
Schwerpunkte:
- Untersuchungen an hochskalierenden Anwendungen
- Performance-Analyse mittels Score-P, Lo2s & Vampir
- Parallelisierungsstrategien: z.B. (dynamische) Datenverteilung, Load-Balancing
- MPI-Programmierung in C/C++, Fortran, Python
Literatur:
- Andreas Knuepfer u. a. „The Vampir Performance Analysis Tool-Set“. In: Tools for High Performance Computing - Proceedings of the 2nd International Workshop on Parallel Tools for High Performance Computing, July 2008, HLRS, Stuttgart. Hrsg. von Michael M. Resch u. a. Springer, 2008, S. 139–155. DOI: 10.1007/978-3- 540-68564-7\_9. URL: https://doi.org/10.1007/978-3-540-68564-7_9
- Williams, William, and Holger Brunst. „Parallel Performance Engineering Using Score-P and Vampir.“ In Companion of the 2023 ACM/SPEC International Conference on Performance Engineering, ICPE 2023, Coimbra, Portugal, April 15-19, 2023, edited by Marco Vieira, Valeria Cardellini, Antinisca Di Marco, and Petr Tuma, 121–25. ACM, 2023. https://doi.org/10.1145/3578245.3583715.
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/sebastian-doebel
Vorkenntnisse erforderlich
Kokkos tasks presently are generated from a single root task that’s passed to a scheduler on the back end. Performance analysts and Kokkos developers would like to know how much idle time is involved in executing this root task. This is complicated by the following problems: (1) Since the individual tasks that execute on the back end are generated by the scheduler, it would be prohibitively expensive to collect performance data synchronously on a GPU back end and transfer it to the CPU--we must be able to measure, accumulate, and then transfer performance data at existing synchronization points. (2) Since the back end workers are continuously polling for work on GPU back ends, a naive hardware counter-based approach to measuring idle time will fail—the key distinction is between "looking for work" and "performing work" rather than "idle" vs. "working".
The goals of the work are:
- Integrate measurement of time spent seeking work/time working/any other overhead (such as task decomposition) into the Kokkos task scheduler for a single back-end, e.g. CUDA
- Measure the overhead induced by recording this data
- Create new Kokkos Tools API functions that provide callbacks at task graph submission and completion time, which provide necessary context and correlation information at submission and the above performance data at completion.
- Measure the actual idle time (work-seeking) of one or more task-based Kokkos applications, using a lightweight custom tool and the extended Kokkos Tools interface
- Allow the data recording to be efficiently disabled when no tool is registered to consume task-level performance data
If the above goals are met with time remaining:
- Extend this approach to additional back ends
- Extend all of the above from a simple custom tool to adding Kokkos tasks support to Score-P
Literature:
-
Edwards, Harold C., et al. Hierarchical Task-Data Parallelism using Kokkos and Qthreads. No. SAND2016-9613. Sandia National Lab.(SNL-NM), Albuquerque, NM (United States), 2016.
-
Sunderland, Daniel, Harold C. Edwards, and Christian Robert Trott. Extending Kokkos with Task Parallelism. No. SAND2017-1986C. Sandia National Lab.(SNL-NM), Albuquerque, NM (United States), 2017.
-
Dietrich, Robert, et al. "Enabling Performance Analysis of Kokkos Applications with Score-P." Tools for High Performance Computing 2018/2019. Springer, Cham, 2021. 169-182.
-
Hammond, Simon D., et al. "Profiling and debugging support for the kokkos programming model." International Conference on High Performance Computing. Springer, Cham, 2018.
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/bill-williams
Accelerating the text generation of Large language models [2,3,4] is a highly relevant topic for real time question answering applications. Though Inference via OpenAI API reaches already a low latency, the user is charged per input and output token. To save additional time and money spent for input token, several prompt compression techniques arised. One representative, LLMLingua[0][1] is using a smaller model to compress the prompt before sending it to the target model.
Although latency was measured within the literature, the analysis lacks completeness and an extensive investigation, under which circumstances prompt compression is really beneficial from a latency and cost perspective.
The following questions shall be answered in the thesis:
- When is LLMLingua beneficial from latency and costs perspective?
- Which latency have different compression setups?
- How many costs can be saved, using LLMLingua prompt compression?
Literature
[0] – Jiang, H., Wu, Q., Lin, C.-Y., Yang, Y., & Qiu, L. (2023). LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models.
[1] – Pan, Z., Wu, Q., Jiang, H., Xia, M., Luo, X., Zhang, J., Lin, Q., Rühle, V., Yang, Y., Lin, C.-Y., Zhao, H. V., Qiu, L., & Zhang, D. (2024). LLMLingua-2: Data Distillation for Efficient and Faithful Task-Agnostic Prompt Compression. http://arxiv.org/abs/2403.12968
[2] – Wan, Z., Wang, X., Liu, C., Alam, S., Zheng, Y., Liu, J., Qu, Z., Yan, S., Zhu, Y., Zhang, Q., Chowdhury, M., & Zhang, M. (2023). Efficient Large Language Models: A Survey.
[3] – Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L., & Polosukhin, I. (2017). Attention Is All You Need.
[4] – Brown, T. B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., Neelakantan, A., Shyam, P., Sastry, G., Askell, A., Agarwal, S., Herbert-Voss, A., Krueger, G., Henighan, T., Child, R., Ramesh, A., Ziegler, D. M., Wu, J., Winter, C., … Amodei, D. (2020). Language Models are Few-Shot Learners.
Belegarbeiten
(online seit: 19.04.2021, update 06.12.2021 )
R ist eine der führenden Lösungen für die statistische Datenanalyse und kann für Data Analytics und Visualisierung eingesetzt werden. In der Arbeit sollen die Möglichkeiten des parallelen Rechnens mit R untersucht und evaluiert werden. Im Anwendungsfall sollen Sensordaten aus einem HPC-System parallel ausgewertet werden. Zur Bearbeitung der Aufgabenstellung sind Vorkenntnisse der Programmiersprache R obligatorisch.
Schwerpunkte:
- Konzeptionelle Umsetzung verschiedener paralleler Programmierparadigmen in R.
- Möglichkeiten und Probleme bei der Code-Optimierung für R.
- Bezug zu aktuellen Architekturen.
Literatur:
- Terence Sloan et al. Mastering Parallel Programming with R. Packt Publishing, 2016.
- McCallum, Q. Ethan; Weston, Stephen. Parallel R. O'Reilly, 2012.
Kontakt: Dr. Taras Lazariv
(Online seit: 02.05.2022)
Apache Flink ist ein Framework, das es erlaubt, die Verarbeitung von Daten auf Knoten eines Rechenclusters zu verteilen. Verschiedene Möglichkeiten bei der Implementierung einer Anwendung und Konfiguration des Clusters können die Geschwindigkeit der Verarbeitung beeinflussen. Die Geschwindigkeit von Anwendungen muss daher konkret untersucht werden. Lo2s ermöglicht es, das Anwendungsverhalten aufzuzeichnen. Im Rahmen dieser Arbeit soll Lo2s auf Flink-Benchmarks angewendet und deren Verhalten untersucht werden.
Inhaltliche Schwerpunkte:
- Untersuchung der Integration von lo2s und Apache Flink
- Vergleich der Performance-Daten von lo2s mit dem Flink-internen Monitoring
- Unterschiede zur Aufzeichnung mit Score-P
- Messung des Overheads
Kontakt: Jan Frenzel
(Online seit: 02.05.2022)
AMD bietet mit den "AMD Optimizing CPU Libraries" (AOCL) optimierte Bibliotheken an, die spezifisch für Prozessoren ab der AMD Zen Architektur gedacht sind. Ziel dieser Arbeit ist es, die Einsatztauglichkeit dieser Bibliotheken zu prüfen. Hierfür soll die Romeo-Partition des HPC-Systems des ZIH genutzt werden. Zu analysieren ist die Performance im Vergleich zu etablierten Standardbibliotheken, wobei neben Benchmarks auch wissenschaftliche Anwendungen herangezogen werden können.
Zudem soll der Aufwand, diese Bibliotheken anstatt etablierter Standardbibliotheken einzubinden, überprüft werden.
Inhaltliche Schwerpunkte:
- Anpassung von Benchmarks für die Nutzung von AOCL Bibliotheken
- Messung der Performance von Benchmarks und ggf. Anwendungen auf dem HPC-System des ZIH
- Auswertung der Messungen
- Vergleich der AOCL-Ergebnisse mit etablierten Bibliotheken
Kontakt: Markus Velten
Sprachmodelle auf der Grundlage der Transformer Architektur sind ein sich rapide entwickelnder Bereich. Mit der zunehmenden Menge an vortrainierten Modellen wächst der Bedarf an effizienten Inferenzmethoden. Allerdings mangelt es bei der Inferenz immer noch an unausgelasteter Hardware und einer zu langsamen Generierung von Token auf kleinen Mengen von GPUs, um für große Datenmengen oder Echtzeitanwendungen geeignet zu sein. Um diese Probleme zu überwinden, sind in den letzten Jahren mehrere Methoden und Frameworks entwickelt worden. Dennoch ist die Vergleichbarkeit dieser Methoden ist noch ein offenes Thema. Ziel des Forschungsprojektes ist es daher, den Bereich der Literatur zur Inferenzbeschleunigung zu sichten und zu bewerten, um einen Überblick zu schaffen, der in der LLM Community noch fehlt.
Schwerpunkte:
- Neural Networks, speziell Large Language models
- Natural Language Processing
- Sprachmodellinferenz (nicht Training)
Contact: https://tu-dresden.de/zih/die-einrichtung/struktur/lena-jurkschat
Forschungsdatenmanagement (FDM) umfasst die Definition und die Umsetzung von Prozessen, um Forschungsdaten langfristig und personenunabhängig zugänglich, nachnutzbar und nachprüfbar zu halten. Dazu werden während des Lebenszyklus von Daten diese so aufbereitet, dass die wissenschaftliche Aussagekraft erhalten bleibt. Das System iRODS (integrated Rule-Oriented Data System) ist eine Open-Source-Implementierung einer Lösung für das Forschungsdatenmanagement und erlaubt es, Daten auf verschiedenen Speichersystemen abzulegen und diese mit Metadaten anzureichern, so dass Daten immer auffindbar und zugreifbar sind und trotzdem kostenoptimiert gespeichert werden können. Das System ist seit mehr als 25 Jahren in kontinuierlicher Entwicklung durch öffentliche Einrichtung, Labore und Industriepartner. Der übliche Einsatzbereich an Hochschulen ist die Langzeitarchivierung von Forschungsdaten. Die Aufgabe der Arbeit ist, einen Überblick über das System auszuarbeiten und die Schnittstellen zu beschreiben, über die Daten und Metadaten gelesen und geschrieben werden können. Parallel soll analysiert werden, wie zwei ausgewählte Anwendungsszenarien durch iRods implementiert werden könnten. Bei einer längeren Bearbeitungszeit sollen die technischen Grenzen des Systems durch Messungen ermittelt werden.
Schwerpunkte:
- Beschreibung der Architektur von iRods
- Exemplarische Unterstützung von wissenschaftlichen Daten-Workflows
- Performance-Analyse des Systems (optional, je nach Zeit)
Literatur:
- Nieroda, Lech, et al. "iRODS metadata management for a cancer genome analysis workflow." BMC bioinformatics 20.1 (2019): 1-8.
- Winters, Kevin D., et al. "Integrated Rule-Oriented Data System (iRODS) and High Performance Computing (HPC) Requirements Document." (2020).
- Xu, Hao, et al. iRODS primer 2: integrated rule-oriented data system. Williston: Morgan & Claypool, 2017.
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/michael-kluge
Moderne Compiler bieten eine Vielzahl von Plattformoptimierungen. Diese werden jedoch nicht von allen Anwendern genutzt, teils aus Gründen der Portabilität, teils aus anderen Gründen. Aus Sicht der Betreiber von HPC-Systemen ist es interessant, bestehende übersetzte Anwendungen daraufhin zu untersuchen. Spätestens seit ChatGPT sind Sprachmodelle zur Verarbeitung natürlicher Sprache allgegenwärtig. Ziel dieser Machbarkeitsstudie ist es, zu evaluieren, inwieweit Sprachmodelle geeignet sind, den Optimierungsgrad von vorhandenem Assemblercode zu erkennen.
Schwerpunkte:
- Evaluation vorhandener Sprachmodelle
- Trainieren von Sprachmodellen auf HPC-Ressourcen
- Verarbeitung von Assembler Code
Literatur:
- Touvron, Hugo, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, et al. “LLaMA: Open and Efficient Foundation Language Models,” 2023.
- https://pytorch.org/
- https://huggingface.co/models
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/sebastian-doebel
GPU Benchmark ermöglichen es, die Leistungsfähigkeit aktueller GPU Architekturen mittels verschiedener paralleler Programmierparadigmen auszumessen und zu bewerten.
Im Produktionsbetrieb eines Rechenzentrums ist es neben einer einmaligen Leistungsbewertung sinnvoll, wiederkehrend den Istzustand eines (GPU-)Rechenknotens mit seinem Sollzustand (Hardware und Software) mittels Benchmarks zu vergleichen, um Hardware- und Konfigurationsfehler zu entdecken.
Ziel dieser Arbeit ist es, einen geeigneten GPU Benchmark auszuwählen (z.B. aus der SPEC Familie) und mit diesem ein Konzept zu entwickeln, das beschreibt, wie wiederkehrende Messungen organisiert, durchgeführt und aufbereitet werden müssen, damit im kontinuierlichen Betrieb Fehler oder Beeinträchtigungen entdeckt werden können. Wenn das Thema im Rahmen einer Beleg- oder Bachelorarbeit verwendet wird, ist neben der konzeptionellen Arbeit auch eine prototypische Umsetzung vorgesehen. Studierende können dabei auf Vorarbeiten zurückgreifen, die zeigen, wie die SPEC Benchmark Familie verwendet und wie kontinuierlich Messungen in einem Produktionsbetrieb integriert werden können.
Dieses Thema beinhaltet offene Forschungsfragen, die ggf. eine intensive Zusammenarbeit mit dem Betreuer erforderlich machen.
Schwerpunkte:
- Literaturrecherche
- Konzeptionelle Arbeit basierend auf zwei studentischen Vorarbeiten
- Arbeiten auf Hochleistungsrecheninfrastruktur in Linux Arbeitsumgebung
- Nutzung der Bash Kommandozeile
- ggf. Konfiguration und Installation von Benchmarks (Vorarbeit vorhanden)
- ggf. Automatisierung der Messung (Vorarbeit vorhanden)
- ggf. Speicherung der Daten in einer Datenbank (Vorarbeit vorhanden)
- ggf. grafische Aufbereitung der Daten (Vorarbeit vorhanden)
Literatur:
- Brunst, Holger, et al. “First Experiences in Performance Benchmarking with the New SPEChpc 2021 Suites.” 2022 22nd IEEE International Symposium on Cluster, Cloud and Internet Computing (CCGrid) (2022): 675-684.
- Juckeland, Guido, et al. “SPEC ACCEL: A Standard Application Suite for Measuring Hardware Accelerator Performance.” PMBS@SC (2014).
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/holger-brunst
Aus einer Benchmarksammlung (UEABS, ARM-HPC, UoB-HPC) sollen mit Hilfe von verschiedenen Profilern geeignete HPC-Codemuster identifiert werden, die sich zur Codeoptimierung anbieten.
Ziel dieser Arbeit ist es, eine Performance-Analyse der genannten Benchmarks durchzuführen und eine Klassifizierung der Eigenschaften der HPC Codes zu erstellen. Neben der Zielsetzung und Funktionsweise der Benchmarks, ihre Konfigurationen und Nutzungsmöglichkeiten soll auch auf die Interpretation der Daten eingegangen werden. Zusätzlich soll der Benchmark auf verschiedenen Compilern und Hardware laufen und ein Performance-Vergleich gezogen werden.
Schwerpunkte:
- Arbeiten auf Hochleistungsrecheninfrastruktur in Linux Arbeitsumgebung
- Konfiguration und Installation von Benchmark
- Analyse der Benchmarks mit verschiedenen Profilern und Compilern auf verschiedenen Hardware-Architekturen
- Vergleich der Benchmark-Ergebnisse zwischen der Hardware
Literatur:
- Enabling Task Parallelism for Many-Core Architectures (https://research-information.bris.ac.uk/ws/portalfiles/portal/299713773/phd_thesis_patrick_atkinson_corrected.pdf)
- The Arch Project: Physics Mini-Apps for Algorithmic Exploration and Evaluating Programming Environments on HPC Architectures (https://doi.org/10.1109/CLUSTER.2017.126)
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/anja-gerbes
Mit Nvidia GPUDirect Storage (GDS) bietet Nvidia eine Schnittstelle, die es ermöglicht I/O-Ressourcen via Direct Memory Access (DMA) direkt von der GPU zu addressieren. Diese Technik ermöglicht es, den Hostprozessor zu entlasten und die Performance der Ein- und Ausgabe zu steigern. Ziel dieser Arbeit ist es, mithilfe von Benchmarks zu untersuchen inwieweit sich durch die Verwendung von GDS auf den HPC-Ressourcen des ZIHs Performance-Vorteile gegenüber klassischen I/O-Operationen erzielen lassen.
Schwerpunkte:
- Literaturrecherche
- Vorstellung der Funktionsweise und Architektur
- Einarbeitung und Verwendung auf Taurus-Infrastruktur
- Performance-Vergleich mit klassischen I/O-Verhalten
Literatur:
- D. Inupakutika, B. Davis, Q. Yang, D. Kim and D. Akopian, "Quantifying Performance Gains of GPUDirect Storage," 2022 IEEE International Conference on Networking, Architecture and Storage (NAS), Philadelphia, PA, USA, 2022, pp. 1-9, doi: 10.1109/NAS55553.2022.9925516.
- NVIDIA GPUDirect Storage Overview Guide https://docs.nvidia.com/gpudirect-storage/overview-guide/index.html
Kontakt: https://tu-dresden.de/zih/die-einrichtung/struktur/sebastian-doebel