Fax +49 (0)351 463 39995
Karl Friebel received his Diploma degree in Computer Science from TU Dresden in December 2020. He wrote his Diploma-Thesis at the Chair for Adaptive Dynamical Systems, centered on using polyhedral modelling for source-to-source compilation as a strategy to improve High-Level Synthesis results for FPGA platforms. While the main focus of his studies has been on hardware design and tooling, Karl gained considerable experience in end-user applications, mainly in the area of scientific computing and fluid dynamics in particular.
After previously collaborating in research at the Chair for Compiler Construction in 2018, Karl continued to concentrate his efforts on improving and proliferating compiler tooling. In February 2021, he joined the chair as research assistant, where he works on the project “EVEREST: Design environment for extreme-scale big data analytics on heterogeneous platforms”, funded by the European Union’s Horizon 2020 research and innovation program under grant agreement no 957269.
It is my personal conviction that the availability and flexibility of compiler tooling dictates the extent to which innovations in hardware design are feasible and/or practically profitable. As a proponent of specialized hardware designs for application-specific tasks, I try to dedicate myself to creating the conditions required to make the hardware platforms of the future more heterogeneous. With most of my expertise focusing towards the interface and software part of the problem, my primary research goal is making compilers more flexible, powerful, and, hopefully, more usable.
In that regard, my current main topics are roughly:
- Designing languages and libraries that bring users and their applications closer together
- Polyhedral modelling and its opportunities and shortcomings in modelling computational kernels
- Using FPGAs (and other custom) acellerators for scientific computing
- Evaluating and developing models for distributing workloads in heterogeneous systems
With a background studying various aspects and applications of scientific simulations, but also having worked in application development in the industry, I realize that it is the use-cases that ultimately make or break my vision. As a result, I strive for at least the intermediate knowledge required to be able to understand them, and consequently evaluate the results that we might produce.
Here, I have specifically acquired interest and experience in these points:
- Particle methods as a common abstraction for implementing general numerical scientific simulations
- Computational mechanics and specifically fluid dynamics as a high-performance application
- Tailoring operating/embedded systems for application-specific guarantees
I feel that most of my work lives from the use it can provide to other people, and so, as I want to be a mediator in that regard, I encourage anyone to approach me if they are interested in bringing some of my vision into their application. On the other hand, I have learned that this kind of work leads to tunnel vision with respect to the approaches chosen, so I welcome all working on similar facets who whish to share their vision with me!
On a side note, as a developer around compilers for more than four years, I may have developed a new sense in code, which draws me to strain the limits of our modern languages and compilers in strive of artificial goals of abstractness and conciseness. If you can relate, I am always keen on seeing that applied elsewhere, so don't hesitate to share your opinion or ask for mine.