Johannes Doerfert is op 36-jarige leeftijd overleden na een strijd tegen kanker. Hij was een uiterst productieve en gerespecteerde kernontwikkelaar binnen het LLVM-compilerproject.
Zijn belangrijkste technische bijdragen omvatten:
- Het ontwerpen van het Attributor-framework voor inter-procedurale optimalisatie.
- Het leiden van de OpenMP target offloading voor GPU's (NVIDIA, AMD, Intel).
- Kernontwikkeling voor Polly, gericht op polyhedrale loop-optimalisatie.
Naast zijn code-bijdragen was Doerfert zeer actief in de gemeenschap. Hij organiseerde diverse workshops en conferenties (zoals EuroLLVM), trad op als mentor voor talloze Google Summer of Code (GSoC) projecten en was tussen 2015 en 2024 een constante spreker op internationale LLVM-bijeenkomsten.
Ter nagedachtenis aan zijn werk vraagt zijn familie om donaties aan de LLVM Foundation in plaats van bloemen.
In herinnering aan Johannes Doerfert
Met grote droefheid delen we het nieuws van het overlijden van Johannes Doerfert op 17 september 2026 op 36-jarige leeftijd, na een strijd tegen kanker. Johannes was een van de meest productieve en gerespecteerde bijdragers aan het LLVM-compilerproject, en zijn verlies zal diep worden gevoeld.
Johannes werd geboren op 5 november 1989. Hij behaalde in 2018 zijn PhD in computerwetenschappen aan de Saarland Universiteit in Saarbrücken, Duitsland, waar zijn onderzoek zich richtte op het toepassen van polyhedrale compilertechnologieën op low-level code. Sinds 2014 was hij een actieve LLVM-bijdrager in het compiler-designlab van prof. Sebastian Hack, en hij werd al in 2012 een kernontwikkelaar van het Polly-project voor polyhedrale optimalisatie.
In het daaropvolgende decennium bouwde Johannes een carrière op op het snijvlak van compileronderzoek en high-performance computing (HPC), meest recentelijk als onderzoeker gericht op OpenMP, LLVM en parallelle programma-optimalisatie.
Bijdragen aan LLVM
Johannes werkte aan vele onderdelen van het LLVM-project. Hieronder volgen enkele van zijn belangrijkste bijdragen:
- Het Attributor-framework: Johannes ontwierp en promootte de Attributor, het veelzijdige inter-procedurale fixpunt-iteratie-framework van LLVM voor het afleiden en propageren van functie- en argumentattributen binnen een programma. Hij introduceerde dit aan de gemeenschap tijdens de LLVM Developers’ Meeting van 2019, waarna het een essentieel onderdeel is geworden van de inter-procedurale optimalisatie-infrastructuur van LLVM.
- OpenMP en GPU-offloading: In 2021 werd Johannes de code owner van LLVM voor OpenMP target offloading. Hij leidde de compiler- en runtime-ondersteuning die het mogelijk maakt dat OpenMP-programma's efficiënt draaien op GPU's van NVIDIA, AMD en Intel. Zijn werk omvatte de OpenMP-runtime, just-in-time compilatie en link-time optimalisatie voor target offloading, en technieken voor GPU-executie met bijna nul overhead.
- Polly en polyhedrale optimalisatie: In het begin van zijn carrière was Johannes een kernontwikkelaar van Polly, de polyhedrale loop-optimalisatie-infrastructuur van LLVM. Hij publiceerde onderzoek over polyhedrale scheduling in de aanwezigheid van reducties en over optimistische loop-optimalisatie.
Daarnaast schreef of co-auteurde hij tientallen papers over compiler-optimalisatie, automatische differentiatie van GPU-kernels, performance-portabiliteit en OpenMP.
Gemeenschapsopbouw
Johannes hielp bij de organisatie van EuroLLVM 2017 in Saarbrücken, Duitsland, de LLVM-HPC workshop op CGO vanaf 2017, en de LLVM-evenementen op ISC vanaf 2019, waarmee hij hielp de LLVM- en HPC-gemeenschappen samen te brengen.
Hij was regelmatig aanwezig bij de 'Newcomer' en 'Community' sessies van de LLVM Developers’ Meeting. Hij verwelkomde nieuwkomers bij de bijeenkomsten en deelde zijn advies en wijsheid over hoe men actiever betrokken kan raken bij het project.
Daarnaast hield Johannes wekelijks LLVM-spreekuren, waar hij vragen beantwoordde over OpenMP, LLVM-IR, inter-procedurale optimalisaties, Attributor, workshops, onderzoek en meer.
Begeleiding van de volgende generatie
Johannes was gedurende meerdere jaren mentor voor LLVM binnen Google Summer of Code (GSoC) en hielp studenten bij diverse projecten. Enkele voorbeelden hiervan zijn:
2016
- Polly as an Analysis Pass in LLVM
2019
- Improve (function) attribute inference (met Brian Homerding)
- Improve (function) attribute inference - 2 (met Brian Homerding)
- Generation of Annotated Sources (met Brian Homerding)
2020
- Improve Parallelism-Aware Analyses and Optimizations (met Jon Chesterfield)
- Advanced Heuristics for Ordering Compiler Optimization Passes (met EJ Park en Giorgis Georgakoudis)
- Improve inter-procedural analyses and optimizations (met Brian Homerding)
- Advanced Heuristics for Ordering Compiler Optimization Passes - 2 (met EJ Park en Giorgis Georgakoudis)
- Latency Hiding for Host to Device Memory Transfers (met Jon Chesterfield)
- Improve inter-procedural analyses and optimizations - 2 (met Brian Homerding)
- Deduce attributes for non-exact functions (met Brian Homerding)
2021
- Learning Loop Transformation Heuristics (met Mircea Trofin)
- Integrate custom derivatives of Numerical Computing routines like BLAS and Eigen into Enzyme (met William Moses en Vassil Vassilev)
- Improving OpenMP code generation with prediction of runtime parameters (met Jon Chesterfield)
- Integrate Enzyme into Rust to Provide High-performance Differentiation in Rust (met William Moses)
- Improve inter-procedural analyses and optimizations (met Jon Chesterfield)
- Use official isl C++ bindings for polly (met Michael Kruse)
- Integrating Enzyme into Rust (met William Moses)
2022
- Non-Determinacy based optimizations in Parallel Programs (met William Moses)
- Learning loop transformation policy and its effect on RISC-V (met Mircea Trofin)
2023
- Machine Learning Guided Ordering of Compiler Optimization Passes (met Tarindu Jayatilaka en Mircea Trofin)
2024
- The 1001 Thresholds in LLVM (met Jan Hückelheim en William Moses)
- GPU Libc Benchmarking (met Joseph Huber)
- Statistical Analysis of LLVM-IR Compilation (met Aiden Grossman)
2025
- Improve Rust-Enzyme Reliability and Compile Times (met Manuel Drehwald en Kevin Sala)
- LLVM Compiler Remarks Visualization Tool for Offloading (met Jose M Monsalve Diaz en Kevin Sala)
Tien jaar op het podium
Naast zijn talloze code-bijdragen, mentorship en community-opbouw, was Johannes een constante aanwezigheid bij de Amerikaanse LLVM Developers’ Meetings en EuroLLVM. Hij sprak gedurende 11 jaar (2015–2024) op 11 verschillende bijeenkomsten, met ten minste 26 presentaties en nog meer sessies die hij hielp schrijven.
2015 — US DevMtg (San Jose)
- Input Space Splitting for OpenCL
- Tutorial: Polly - Optimistic Loop Nest Optimizations with Schedule Trees (met Tobias Grosser)
2016 — EuroLLVM (Barcelona)
- Analyzing and Optimizing your Loops with Polly (met Tobias Grosser)
- BoF: Polly - Loop Optimization Infrastructure (met Tobias Grosser en Zino Benaissa)
2017 — US DevMtg (San Jose)
- BoF: Thoughts and State for Representing Parallelism with Minimal IR Extensions in LLVM (met Xinmin Tian, Hal Finkel, Tb Schardl en Vikram Adve)
- Polyhedral Value & Memory Analysis
2017 — EuroLLVM (Saarbrücken)
2018 — US DevMtg (San Jose)
- Optimizing Indirections, using abstractions without remorse
- BoF: Ideal versus Reality: Optimal Parallelism and Offloading Support in LLVM (met Xinmin Tian, Hal Finkel, TB Schardl, en Vikram Adve)
2019 — EuroLLVM (Brussels)
- Compiler Optimizations for (OpenMP) Target Offloading to GPUs
- BoF: IPO — Where are we, where do we want to go? (met Kit Barton)
2019 — US DevMtg (San Jose)
- The Attributor: A Versatile Inter-procedural Fixpoint Iteration Framework
- Tutorial: The Attributor: A Versatile Inter-procedural Fixpoint Iteration Framework
- Tutorial: An overview of LLVM
- Poster: Attributor, a Framework for Interprocedural Information Deduction (met Hideto Ueno en Stefan Stipanovic)
2020 — US DevMtg (virtueel)
- The Present and Future of Interprocedural Optimization in LLVM (met Brian Homerding, Stefanos Baziotis, Stefan Stipanovic, Hideto Ueno, Kuter Dinel, Shinji Okumura, Luofan Chen)
- (OpenMP) Parallelism-Aware Optimizations (met S. Stipanovic, H. Mosquera, J. Chesterfield, G. Georgakoudis, J. Huber)
- Tutorial: A Deep Dive into the Interprocedural Optimization Infrastructure (met B. Homerding, S. Baziotis, S. Stipanovic, H. Ueno, K. Dinel, S. Okumura, L. Chen)
2021 — US DevMtg (virtueel)
- Panel: Machine Learning Guided Optimizations in LLVM
- Optimizing OpenMP GPU Execution in LLVM (met Giorgis Georgakoudis en Joseph Huber)
2022 — US DevMtg (San Jose)
- Panel: Machine Learning Guided Optimizations (MLGO) in LLVM
- Panel: High-level IRs for a C/C++ Optimizing Compiler
- CUDA-OMP — Or, Breaking the Vendor Lock (met Joseph Huber)
- Thoughts on GPUs as First-Class Citizens
2023 — EuroLLVM (Glasgow)
- How to run the LLVM-Test Suite on GPUs and what you’ll find
- OpenMP as GPU Kernel Language
2024 — US DevMtg (Santa Clara)
- (Offload) ASAN via Software Managed Virtual Memory
Johannes zal worden gemist
Naast de commits, de presentaties en de papers, herinneren zij die met Johannes hebben samengewerkt hem als een persoon vol leven en met een goed gevoel voor humor. In zijn bio op sociale media omschreef hij zichzelf simpelweg als: “LLVM Developer, OpenMP contributor, Beer drinker, not in this order.”
Er zal een herdenkingsdienst worden gehouden op zaterdag 3 oktober 2026, van 13:00 tot 17:00 uur bij San Jose Funeral Service in San Jose, Californië; er is tevens een aparte dienst gepland in Duitsland. Hij laat zijn echtgenote Xuejin Zhang, zijn vader Jürgen Doerfert en andere familieleden en vrienden over de hele wereld achter.
In plaats van bloemen heeft zijn familie gevraagd om, voor wie zijn nagedachtenis wil eren, een donatie te overwegen aan de LLVM Foundation (via Everloved of rechtstreeks), de organisatie waarvan hij zijn hele carrière het doel heeft ondersteund en bevorderd. Een zeer gulle donor is ermee ingestemd om donaties tot een bedrag van 50.000 dollar te matchen ter ere van Johannes. Indien u rechtstreeks aan de LLVM Foundation doneert via een DAF, wordt verzocht te vermelden dat dit "in memory of Johannes Doerfert" is.
Meer details en een plek om herinneringen en condoleances te delen, zijn te vinden op de herdenkingspagina van Johannes.
In herinnering aan Johannes Doerfert
Met grote droefheid delen we het nieuws van het overlijden van Johannes Doerfert op 17 september 2026 op 36-jarige leeftijd, na een strijd tegen kanker. Johannes was een van de meest productieve en gerespecteerde bijdragers aan het LLVM-compilerproject, en zijn verlies zal diep worden gevoeld.
Johannes werd geboren op 5 november 1989. Hij behaalde in 2018 zijn PhD in computerwetenschappen aan de Saarland Universiteit in Saarbrücken, Duitsland, waar zijn onderzoek zich richtte op het toepassen van polyhedrale compilertechnologieën op low-level code. Sinds 2014 was hij een actieve LLVM-bijdrager in het compiler-designlab van prof. Sebastian Hack, en hij werd al in 2012 een kernontwikkelaar van het Polly-project voor polyhedrale optimalisatie.
In het daaropvolgende decennium bouwde Johannes een carrière op op het snijvlak van compileronderzoek en high-performance computing (HPC), meest recentelijk als onderzoeker gericht op OpenMP, LLVM en parallelle programma-optimalisatie.
Bijdragen aan LLVM
Johannes werkte aan vele onderdelen van het LLVM-project. Hieronder volgen enkele van zijn belangrijkste bijdragen:
- Het Attributor-framework: Johannes ontwierp en promootte de Attributor, het veelzijdige inter-procedurale fixpunt-iteratie-framework van LLVM voor het afleiden en propageren van functie- en argumentattributen binnen een programma. Hij introduceerde dit aan de gemeenschap tijdens de LLVM Developers’ Meeting van 2019, waarna het een essentieel onderdeel is geworden van de inter-procedurale optimalisatie-infrastructuur van LLVM.
- OpenMP en GPU-offloading: In 2021 werd Johannes de code owner van LLVM voor OpenMP target offloading. Hij leidde de compiler- en runtime-ondersteuning die het mogelijk maakt dat OpenMP-programma's efficiënt draaien op GPU's van NVIDIA, AMD en Intel. Zijn werk omvatte de OpenMP-runtime, just-in-time compilatie en link-time optimalisatie voor target offloading, en technieken voor GPU-executie met bijna nul overhead.
- Polly en polyhedrale optimalisatie: In het begin van zijn carrière was Johannes een kernontwikkelaar van Polly, de polyhedrale loop-optimalisatie-infrastructuur van LLVM. Hij publiceerde onderzoek over polyhedrale scheduling in de aanwezigheid van reducties en over optimistische loop-optimalisatie.
Daarnaast schreef of co-auteurde hij tientallen papers over compiler-optimalisatie, automatische differentiatie van GPU-kernels, performance-portabiliteit en OpenMP.
Gemeenschapsopbouw
Johannes hielp bij de organisatie van EuroLLVM 2017 in Saarbrücken, Duitsland, de LLVM-HPC workshop op CGO vanaf 2017, en de LLVM-evenementen op ISC vanaf 2019, waarmee hij hielp de LLVM- en HPC-gemeenschappen samen te brengen.
Hij was regelmatig aanwezig bij de 'Newcomer' en 'Community' sessies van de LLVM Developers’ Meeting. Hij verwelkomde nieuwkomers bij de bijeenkomsten en deelde zijn advies en wijsheid over hoe men actiever betrokken kan raken bij het project.
Daarnaast hield Johannes wekelijks LLVM-spreekuren, waar hij vragen beantwoordde over OpenMP, LLVM-IR, inter-procedurale optimalisaties, Attributor, workshops, onderzoek en meer.
Begeleiding van de volgende generatie
Johannes was gedurende meerdere jaren mentor voor LLVM binnen Google Summer of Code (GSoC) en hielp studenten bij diverse projecten. Enkele voorbeelden hiervan zijn:
2016
- Polly as an Analysis Pass in LLVM
2019
- Improve (function) attribute inference (met Brian Homerding)
- Improve (function) attribute inference - 2 (met Brian Homerding)
- Generation of Annotated Sources (met Brian Homerding)
2020
- Improve Parallelism-Aware Analyses and Optimizations (met Jon Chesterfield)
- Advanced Heuristics for Ordering Compiler Optimization Passes (met EJ Park en Giorgis Georgakoudis)
- Improve inter-procedural analyses and optimizations (met Brian Homerding)
- Advanced Heuristics for Ordering Compiler Optimization Passes - 2 (met EJ Park en Giorgis Georgakoudis)
- Latency Hiding for Host to Device Memory Transfers (met Jon Chesterfield)
- Improve inter-procedural analyses and optimizations - 2 (met Brian Homerding)
- Deduce attributes for non-exact functions (met Brian Homerding)
2021
- Learning Loop Transformation Heuristics (met Mircea Trofin)
- Integrate custom derivatives of Numerical Computing routines like BLAS and Eigen into Enzyme (met William Moses en Vassil Vassilev)
- Improving OpenMP code generation with prediction of runtime parameters (met Jon Chesterfield)
- Integrate Enzyme into Rust to Provide High-performance Differentiation in Rust (met William Moses)
- Improve inter-procedural analyses and optimizations (met Jon Chesterfield)
- Use official isl C++ bindings for polly (met Michael Kruse)
- Integrating Enzyme into Rust (met William Moses)
2022
- Non-Determinacy based optimizations in Parallel Programs (met William Moses)
- Learning loop transformation policy and its effect on RISC-V (met Mircea Trofin)
2023
- Machine Learning Guided Ordering of Compiler Optimization Passes (met Tarindu Jayatilaka en Mircea Trofin)
2024
- The 1001 Thresholds in LLVM (met Jan Hückelheim en William Moses)
- GPU Libc Benchmarking (met Joseph Huber)
- Statistical Analysis of LLVM-IR Compilation (met Aiden Grossman)
2025
- Improve Rust-Enzyme Reliability and Compile Times (met Manuel Drehwald en Kevin Sala)
- LLVM Compiler Remarks Visualization Tool for Offloading (met Jose M Monsalve Diaz en Kevin Sala)
Tien jaar op het podium
Naast zijn talloze code-bijdragen, mentorship en community-opbouw, was Johannes een constante aanwezigheid bij de Amerikaanse LLVM Developers’ Meetings en EuroLLVM. Hij sprak gedurende 11 jaar (2015–2024) op 11 verschillende bijeenkomsten, met ten minste 26 presentaties en nog meer sessies die hij hielp schrijven.
2015 — US DevMtg (San Jose)
- Input Space Splitting for OpenCL
- Tutorial: Polly - Optimistic Loop Nest Optimizations with Schedule Trees (met Tobias Grosser)
2016 — EuroLLVM (Barcelona)
- Analyzing and Optimizing your Loops with Polly (met Tobias Grosser)
- BoF: Polly - Loop Optimization Infrastructure (met Tobias Grosser en Zino Benaissa)
2017 — US DevMtg (San Jose)
- BoF: Thoughts and State for Representing Parallelism with Minimal IR Extensions in LLVM (met Xinmin Tian, Hal Finkel, Tb Schardl en Vikram Adve)
- Polyhedral Value & Memory Analysis
2017 — EuroLLVM (Saarbrücken)
2018 — US DevMtg (San Jose)
- Optimizing Indirections, using abstractions without remorse
- BoF: Ideal versus Reality: Optimal Parallelism and Offloading Support in LLVM (met Xinmin Tian, Hal Finkel, TB Schardl, en Vikram Adve)
2019 — EuroLLVM (Brussels)
- Compiler Optimizations for (OpenMP) Target Offloading to GPUs
- BoF: IPO — Where are we, where do we want to go? (met Kit Barton)
2019 — US DevMtg (San Jose)
- The Attributor: A Versatile Inter-procedural Fixpoint Iteration Framework
- Tutorial: The Attributor: A Versatile Inter-procedural Fixpoint Iteration Framework
- Tutorial: An overview of LLVM
- Poster: Attributor, a Framework for Interprocedural Information Deduction (met Hideto Ueno en Stefan Stipanovic)
2020 — US DevMtg (virtueel)
- The Present and Future of Interprocedural Optimization in LLVM (met Brian Homerding, Stefanos Baziotis, Stefan Stipanovic, Hideto Ueno, Kuter Dinel, Shinji Okumura, Luofan Chen)
- (OpenMP) Parallelism-Aware Optimizations (met S. Stipanovic, H. Mosquera, J. Chesterfield, G. Georgakoudis, J. Huber)
- Tutorial: A Deep Dive into the Interprocedural Optimization Infrastructure (met B. Homerding, S. Baziotis, S. Stipanovic, H. Ueno, K. Dinel, S. Okumura, L. Chen)
2021 — US DevMtg (virtueel)
- Panel: Machine Learning Guided Optimizations in LLVM
- Optimizing OpenMP GPU Execution in LLVM (met Giorgis Georgakoudis en Joseph Huber)
2022 — US DevMtg (San Jose)
- Panel: Machine Learning Guided Optimizations (MLGO) in LLVM
- Panel: High-level IRs for a C/C++ Optimizing Compiler
- CUDA-OMP — Or, Breaking the Vendor Lock (met Joseph Huber)
- Thoughts on GPUs as First-Class Citizens
2023 — EuroLLVM (Glasgow)
- How to run the LLVM-Test Suite on GPUs and what you’ll find
- OpenMP as GPU Kernel Language
2024 — US DevMtg (Santa Clara)
- (Offload) ASAN via Software Managed Virtual Memory
Johannes zal worden gemist
Naast de commits, de presentaties en de papers, herinneren zij die met Johannes hebben samengewerkt hem als een persoon vol leven en met een goed gevoel voor humor. In zijn bio op sociale media omschreef hij zichzelf simpelweg als: “LLVM Developer, OpenMP contributor, Beer drinker, not in this order.”
Er zal een herdenkingsdienst worden gehouden op zaterdag 3 oktober 2026, van 13:00 tot 17:00 uur bij San Jose Funeral Service in San Jose, Californië; er is tevens een aparte dienst gepland in Duitsland. Hij laat zijn echtgenote Xuejin Zhang, zijn vader Jürgen Doerfert en andere familieleden en vrienden over de hele wereld achter.
In plaats van bloemen heeft zijn familie gevraagd om, voor wie zijn nagedachtenis wil eren, een donatie te overwegen aan de LLVM Foundation (via Everloved of rechtstreeks), de organisatie waarvan hij zijn hele carrière het doel heeft ondersteund en bevorderd. Een zeer gulle donor is ermee ingestemd om donaties tot een bedrag van 50.000 dollar te matchen ter ere van Johannes. Indien u rechtstreeks aan de LLVM Foundation doneert via een DAF, wordt verzocht te vermelden dat dit "in memory of Johannes Doerfert" is.
Meer details en een plek om herinneringen en condoleances te delen, zijn te vinden op de herdenkingspagina van Johannes.