Julian Brandner

Julian Brandner, M. Sc.

Department Informatik (INF)
Lehrstuhl für Informatik 2 (Programmiersysteme)

Raum: Raum 05.156
Martensstr. 3
91058 Erlangen

Sprechzeiten

n.V. per E-Mail

Projekte

  • OpenMP für rekonfigurierbare heterogene Architekturen

    (Drittmittelfinanzierte Gruppenförderung – Teilprojekt)

    Titel des Gesamtprojektes: OpenMP für rekonfigurierbare heterogene Architekturen
    Laufzeit: 01.11.2017 - 31.12.2023
    Mittelgeber: Bundesministerium für Bildung und Forschung (BMBF)
    URL: https://www2.cs.fau.de/research/ORKA/
    High-Performance Computing (HPC) ist ein wichtiger Bestandteil für die europäische Innovationskapazität und wird auch als ein Baustein bei der Digitalisierung der europäischen Industrie gesehen. Rekonfigurierbare Technologien wie Field Programmable Gate  Array (FPGA) Module gewinnen hier wegen ihrer Energieeffizienz, Performance und ihrer Flexibilität immer größere Bedeutung.
    Es wird außerdem zunehmend auf HPC-Systeme mit heterogenen Architekturen gesetzt, auch auf solche mit FPGA-Beschleunigern. Die große Flexibilität dieser FPGAs ermöglicht es, dass eine große Klasse von HPC-Applikationen mit FPGAs realisiert werden kann. Allerdings ist deren Programmierung bisher vorwiegend Spezialisten vorbehalten und sehr zeitaufwendig, wodurch deren Verwendung in Bereichen des wissenschaftlichen Höchstleistungsrechnens derzeit noch selten ist.
    Im HPC-Umfeld gibt es verschiedenste Programmiermodelle für heterogene Rechnersysteme mit einigen Typen von Beschleunigern. Gängige Programmiermodelle sind zum Beispiel OpenCL (opencl.org), OpenACC (openacc.org) und OpenMP (OpenMP.org). Eine produktive Verwendbarkeit dieser Standards für FPGAs ist heute jedoch noch nicht gegeben.

    Ziele des ORKA Projektes sind:

    1. Nutzung des OpenMP-4.0-Standards als Programmiermodell, um ohne Spezialkenntnisse heterogene Rechnerplattformen mit FPGAs als rekonfigurierbare Architekturen durch portable Implementierungen eine breitere Community im HPC-Umfeld zu erschließen.
    2. Entwurf und Implementierung eines Source-to-Source-Frameworks, welches C/C++-Code mit OpenMP-4.0-Direktiven in ein ausführbares Programm transformiert, das die Host-CPUs und FPGAs nutzt.
    3. Nutzung und Erweiterung existierender Lösungen von Teilproblemen für die optimale Abbildung von Algorithmen auf heterogene Systeme und FPGA-Hardware.
    4. Erforschung neuer (ggf. heuristischer) Methoden zur Optimierung von Programmen für inhärent parallele Architekturen.

    Im Jahr 2018 wurden folgende wesentlichen Beiträge geleistet:

    • Entwicklung eines source-to-source Übersetzerprototypen für die Umschreibung von OpenMP-C-Quellcode (vgl. Ziel 2).
    • Entwicklung eines HLS-Übersetzerprototypen, der in der Lage ist, C-Code in Hardware zu übersetzen. Dieser Prototyp bildet die Basis für die Ziele 3 und 4.
    • Entwicklung mehrerer experimenteller FPGA-Infrastrukturen für die Ausführung von Beschleunigerkernen (nötig für die Ziele 1 und 2).

    Im Jahr 2019 wurden folgende wesentlichen Beiträge geleistet:

    • Veröffentlichung zweier Papiere: "OpenMP on FPGAs - A Survey" und "OpenMP to FPGA Offloading Prototype using OpenCL SDK".
    • Erweiterung des source-to-source Übersetzerprototypen um OpenMP-Target-Outlining (incl. Smoke-Tests).
    • Fertigstellung des technischen Durchstichs für den ORKA-HPC-Prototypen (OpenMP-zu-FPGA-Übersetzer).
    • Benchmark-Suite für die quantitative Leistungsanalyse von ORKA-HPC.
    • Erweiterung des source-to-source Übersetzerprototypen um das Genom für die genetische Optimierung der High-Level-Synthese durch Einstellen von HLS-Pragmas.
    • Prototypische Erweiterung des TaPaSCo-Composers um ein (optionales) automatisches Einfügen von Hardware-Synchronisationsprimitiven in TaPaSCo-Systeme.

    Im Jahr 2020 wurden folgende wesentlichen Beiträge geleistet:

    • Weiterentwicklung der Genetischen Optimierung.
    • Aufbau eines Docker-Containers für zuverlässige Reproduzierbarkeit der Ergebnisse.
    • Integration der Softwarekomponenten der Projektpartner.
    • Plugin-Architektur für Low-Level-Platformen.
    • Implementation und Integration zweier LLP-Plugin-Komponenten.
    • Erweiterung des akzeptierten OpenMP-Sprachstandards.
    • Erweiterung der Test-Suite.

    Im Jahr 2021 wurden folgende wesentlichen Beiträge geleistet:

    • Erweiterung der Benchmark-Suite.
    • Erweiterung der Test-Infrastruktur.
    • Erfolgreicher Projektabschluss mit Live-Demo für den Projektträger.
    • Evaluation des Projekts.
    • Veröffentlichung der Publikation "ORKA-HPC - Practical OpenMP for FPGAs".
    • Veröffentlichung des Quell-Codes und der Disseminationsumgebung auf Github.
    • Erweiterung des akzeptierten OpenMP-Sprachstandards um neue OpenMP-Klauseln für die Steuerung der FPGA-bezogenen Transformationen.
    • Weiterentwicklung der Genetischen Optimierung.
    • Untersuchung des Verhältnisses von HLS-Leistungsschätzwerten und tatsächlichen Leistungskennzahlen.
    • Aufbau eines linearen Regressionsmodells für die Vorhersage der tatsächlichen Leistungskennzahlen auf Basis der HLS-Schätzwerte.
    • Entwicklung von Infrastruktur für die Übersetzung von OpenMP-Reduktionsklauseln.
    • Erweiterung um die Übersetzung vom OpenMP-Pragma `parallel for` in ein paralleles FPGA-System.

    Im Jahr 2022 wurden folgende wesentlichen Beiträge geleistet:

    • Generierung und Veröffentlichung eines Datensatzes zur Untersuchung des Verhältnisses von HLS-Ressourcenschätzwerten und tatsächlichen Leistungskennzahlen.
    • Erstellung und vergleichende Evaluierung verschiedener Regressionsmodelle zur Vorhersage der tatsächlichen Systemperformanz aus frühen Schätzwerten.
    • Analyse und Bewertung der durch die HLS generierten Ressourcenabschätzungen.
    • Veröffentlichung der Publikation “Reducing OpenMP to FPGA Round-trip Times with Predictive Modelling”.
    • Entwicklung eines auf dem Polyeder-Modell beruhenden Verfahrens zur Detektion und Entfernung von redundanten Lese-Operationen in FPGA-Stencil-Codes.
    • Implementierung dieses Verfahrens in ORKA-HPC.
    • Quantitative Evaluation der Stärken dieses Verfahrens und Ermittlung der Voraussetzungen, unter denen das Verfahren anwendbar ist.
    • Veröffentlichung der Publikation “Employing Polyhedral Methods to Reduce Data Movement in FPGA Stencil Codes”.

    Im Jahr 2023 wurden folgende wesentlichen Beiträge geleistet:

    • Entwicklung und Implementierung eines Optimierungsverfahrens von kanonischen Schleifenschachteln (z.B. aus OpenMP-Target-Regionen) für die FPGA-Hardware-Erzeugung mittels HLS. Der Kern des Verfahrens ist eine auf dem Polyeder-Modell basierende Schleifenrestrukturierung, welche mithilfe von Schleifen-Kachelungen, Fließbandverarbeitung, und Port-Verbreiterung unnötige Datentransfers vom/zum FPGA-Board-RAM vermeidet, die Anzahl der parallel aktiven Schaltkreise erhöht, den Datendurchsatz zum FPGA-Board-RAM maximiert und Schreib/Lese-Latenzen versteckt.
    • Quantitative Evaluation der Stärken und Anwendungsfelder dieses Optimierungsverfahrens mithilfe von ORKA-HPC.
    • Veröffentlichung des Verfahrens im Konferenz-Papier “Employing polyhedral methods to optimize stencils on FPGAs with stencil-specific caches, data reuse, and wide data bursts”.
    • Veröffentlichung eines Reproduktionspakets für das Optimierungsverfahrens.
    • Vorstellung des Verfahrens auf der Tagung “14th International Workshop on Polyhedral Compilation Techniques” im Rahmen eines halbstündigen Vortrags.
    • Entwicklung eines Verfahrens für die vollautomatische Integration von Multi-Purpose-Caches in aus OpenMP generierte FPGA-Lösungen.
    • Evaluation von Multi-Purpose-Caches in Kombination mit HLS-generierten Hardwareblöcken.
    • Veröffentlichung der Publikation “Multipurpose Cacheing to Accelerate OpenMP Target Regions on FPGAs” (Best Paper Award).
    • International Collegiate Programming Contest an der FAU

      (Projekt aus Eigenmitteln)

      Seit 1977 wird der International Collegiate Programming Contest (ICPC) ausgetragen. Dabei sollen Teams aus je drei Studierenden ca. 13 Programmieraufgaben lösen. Als Erschwernis kommt hinzu, dass nur ein Computer pro Gruppe zur Verfügung steht. Die Aufgaben erfordern solide Kenntnisse von Algorithmen aus allen Gebieten der Informatik und Mathematik, wie z.B. Graphen, Kombinatorik, Zeichenketten, Algebra und Geometrie. Bei der Lösung kommt es darauf an, einen effizienten und richtigen Algorithmus zu finden und zu implementieren.
      Der ICPC wird jedes Jahr in drei Stufen ausgetragen. Zuerst werden innerhalb der Universitäten in lokalen Ausscheidungen die maximal drei Teams bestimmt, die dann zu den regionalen Wettbewerben entsandt werden. Erlangen liegt seit dem Jahr 2009 im Einzugsbereich des Northwestern European Regional Contest (NWERC), an dem u.a. auch Teams aus Großbritannien, den Benelux-Staaten und Skandinavien teilnehmen. Die Sieger aller regionalen Wettbewerbe der Welt (und einige Zweitplatzierte) erreichen die World Finals, die im Frühjahr des jeweils darauffolgenden Jahres (2024 in Sharm El Sheikh, Egypten) stattfinden.

      Am 28. Januar 2023 fand erneut der Winter Contest statt. Daran beteiligten sich 75 Teams von 16 Hochschulen und Universitäten, darunter 13 Teams aus Erlangen. Unser bestes Team erreichte den 10. Platz. Am 17. Juni wurde der German Collegiate Programming Contest an verschiedenen deutschen Universitäten und Hochschulen ausgetragen, mit 14 Teams aus Erlangen. Das beste FAU-Team belegte den 11. Platz unter den 105 teilnehmenden Teams aus ganz Deutschland. Der NWERC fand am 26. November in Delft statt. Dort wurde die FAU durch 3 Teams vertreten, die die Plätze 32, 96 und 125i von insgesamt 143 teilnehmenden Teams erreichten. Das Hauptseminar "Hallo Welt! - Programmieren für Fortgeschrittene" fand auch im Jahr 2023 wieder statt.

    Aktuelle Lehrveranstaltungen

    Ausgewählte Kapitel aus dem Übersetzerbau

    Titel Ausgewählte Kapitel aus dem Übersetzerbau
    Kurztext inf2-ueb3
    Turnus des Angebots nur im Wintersemester
    Semesterwochenstunden 2

    Es ist keine Anmeldung erforderlich.

    In der Vorlesung werden Aspekte des Übersetzerbaus beleuchtet, die über die Vorlesungen "Grundlagen des Übersetzerbaus" und "Optimierungen in Übersetzern" hinausgehen.

    Voraussichtliche Themen sind:
    - Übersetzer u. Optimierungen für funktionale Programmiersprachen
    - Übersetzung aspektorientierter Programmiersprachen
    - Erkennung von Wettlaufsituationen
    - Software Watermarking
    - Statische Analyse und symbolische Ausführung
    - Binden von Objektcode und Unterstützung für dynamische Bibliotheken
    - Strategien zur Ausnahmebehandlung
    - Just-in-Time-Übersetzer
    - Speicherverwaltung und Speicherbereinigung
    - LLVM

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html

    1. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mi, 08:15 - 09:45 18.10.2023 - 07.02.2024 01.11.2023
    27.12.2023
    03.01.2024
    • Tobias Heineken
    • Florian Mayer
    • Julian Brandner
    • Prof. Dr. Michael Philippsen
    11302.02.133

    Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau

    Titel Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
    Kurztext inf2-ueb3-ex
    Turnus des Angebots nur im Wintersemester
    Semesterwochenstunden 2

    Blockveranstaltung n.V. nach der Vorlesungszeit.

    Die Übungen zu Übersetzerbau 3 stellen eine Ergänzung zur
    Vorlesung dar. In der Vorlesung wird unter anderem die
    Architektur und Funktionsweise einer virtuellen Maschine
    beleuchtet. In den Übungen soll dies praktisch umgesetzt werden.
    Hierzu sollen die Studenten in einer Blockveranstaltung eine
    kleine virtuelle Maschine selbst implementieren. Den Anfang
    bildet das Einlesen des Byte-Codes und am Ende soll ein
    funktionsfähiger optimierender Just-in-Time-Übersetzer entstehen.

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs4533480.html

    1. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    Blockveranstaltung Mo, 09:00 - 18:00 04.03.2024 - 08.03.2024
    • Tobias Heineken
    • Julian Brandner
    • Florian Mayer
    11302.02.135

    Übungen zu Parallele und Funktionale Programmierung

    Titel Übungen zu Parallele und Funktionale Programmierung
    Kurztext UePFP
    Turnus des Angebots nur im Wintersemester
    Semesterwochenstunden 2

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    2. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Fr, 12:00 - 14:00 20.10.2023 - 09.02.2024 29.12.2023
    05.01.2024
    14201.00.001

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    5. Parallelgruppe

    Maximale Anzahl Teilnehmer/-innen: 41

    Link zu Campo

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mi, 14:15 - 15:45 18.10.2023 - 07.02.2024 03.01.2024
    01.11.2023
    27.12.2023
    12801.01.255

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    6. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mo, 16:00 - 18:00 16.10.2023 - 05.02.2024 01.01.2024
    25.12.2023
    14201.00.001

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    8. Parallelgruppe

    Maximale Anzahl Teilnehmer/-innen: 41

    Link zu Campo

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Di, 14:15 - 15:45 17.10.2023 - 06.02.2024 02.01.2024
    26.12.2023
    12801.01.151

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    9. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Di, 14:00 - 16:00 17.10.2023 - 06.02.2024 02.01.2024
    26.12.2023
    14201.00.001

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    10. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Do, 16:00 - 18:00 19.10.2023 - 08.02.2024 04.01.2024
    28.12.2023
    14201.00.001

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    11. Parallelgruppe

    Maximale Anzahl Teilnehmer/-innen: 41

    Link zu Campo

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mi, 16:15 - 17:45 18.10.2023 - 07.02.2024 01.11.2023
    27.12.2023
    03.01.2024
    11302.02.133

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    13. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Di, 16:00 - 18:00 17.10.2023 - 06.02.2024 02.01.2024
    26.12.2023
    14201.00.001

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    15. Parallelgruppe

    Maximale Anzahl Teilnehmer/-innen: 41

    Link zu Campo

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Fr, 08:15 - 09:45 20.10.2023 - 09.02.2024 29.12.2023
    05.01.2024
    11302.00.151

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    16. Parallelgruppe

    Maximale Anzahl Teilnehmer/-innen: 42

    Link zu Campo

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mo, 10:15 - 11:45 16.10.2023 - 05.02.2024 01.01.2024
    25.12.2023
    11302.02.133

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    17. Parallelgruppe

    Maximale Anzahl Teilnehmer/-innen: 42

    Link zu Campo

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mo, 12:15 - 13:45 16.10.2023 - 05.02.2024 25.12.2023
    01.01.2024
    12801.01.151

    Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

    19. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mi, 14:00 - 16:00 18.10.2023 - 07.02.2024 01.11.2023
    03.01.2024
    27.12.2023
    11302.00.153

    20. Parallelgruppe

    Zeitpunkt Startdatum - Enddatum Ausfalltermin Durchführende/-r Bemerkung Raum
    wöchentlich Mo, 14:00 - 16:00 23.10.2023 - 05.02.2024 25.12.2023
    01.01.2024
    14201.00.001

    Publikationen

    2024

    2023

    2022

    2021

    2018

    Betreute Examensarbeiten

    Alphabetisch sortiert im UnivIS