Dr. Norman Rink

portrait Dr. Norman Rink




Visitor's Address


+49 (0)351 463 43711

+49 (0)351 463 39995

Georg-Schumann-Str. 7A
2nd floor, room 205
01187 Dresden


Curriculum Vitae

Norman has been a postdoctoral researcher at the Chair for Compiler Construction since 2014. His main areas of interest are fault-tolerant computing and domain-specific program optimization.

Prior to joining the Chair for Compiler Construction, Norman spent two years working in the R&D department of an international semiconductor IP company. During this time in industry, he developed compilers and driver software for the latest generation of embedded GPUs. By working in a diverse but closely knit team of hardware and software engineers, Norman gained in-depth knowledge of design issues across the entire system stack.

Norman obtained his PhD in theoretical physics from the University of Cambridge. As a graduate student, Norman researched applications of geometry and topology in high energy particle physics. He still enjoys working on formal, mathematically flavoured problems.

Norman holds a Diplom degree in physics from the University of Heidelberg and a Master's degree in applied mathematics from the University of Cambridge.



Building a fault-tolerant software stack

As hardware feature sizes are shrinking, processors and memory are becoming less and less reliable. As a result, computations and the quality of their results suffer increasingly from hardware faults. One approach to dealing with faults is to make the software stack fault-tolerant. In addition to being cheaper than adding hardware mechanisms for fault handling, software-based solutions are also more flexible and adaptable to the reliability needs of a specific application.

In the future, dealing with faulty computations and imprecise results may become an inherent aspect of computing as emerging paradigms of computation (e.g. biologically and brain-inspired computing, quantum computing) enter the mainstream. Hence, fault tolerance must necessarily be taken into consideration when designing algorithms and software under these new paradigms. Even today, long-running applications that use large numbers of CPUs (e.g. data analytics) are prone to incurring hardware faults during their runtime.

There are many aspects to making the software stack fault-tolerant: the operating system, libraries, and compilers must all interact to provide a comprehensive solution. In fact, applications themselves may have to include components that define the application's behaviour in case of a hardware fault. Of course, system components will have to be responsible for communicating information about faults to running applications.

Our current research focus is on evaluating and optimizing different strategies of adding fault tolerance to operating systems and application software. Crucial aspects of our work are

  • identifying and dealing with reliability-critical software components,
  • analyzing fault tolerance strategies in different metrics and subject to statistics.

Hands-on work in this area is very varied and ranges from low-level interaction with operating systems and compilers to high-level simulations and analysis.

Please also refer to the Chair for Compiler Construction's research page for related information.

If you are a student and interested in working on fault tolerance (either as a SHK, WHK, or towards a thesis), please contact me. Various projects are currently available.


Domain-specific language and optimization for fluid dynamics applications

Large-scale numerical simulations, as required, e.g., for solving differential equations that govern fluid dynamics, use up huge amounts of CPU time. Given long runtimes and rents for computing resources, it is paramount that programmers squeeze every bit of performance out of their code. However, manual code optimization is a time-consuming task, which may have to be started afresh when applications are migrated to new systems and architectures.

Our research addresses the problems of performance maintenance and portability. We explore suitable high-level representations of numerical operators that capture enough information to serve as the starting point for efficient code generation. Since efficient code must be generated for different CPU and GPU architectures, different code variants must be generated, potentially followed by a design space search that can also be informed by the high-level representations. Our ultimate goal is to offer expert researchers in numerics a domain-specific language (DSL) that can understand annotated mathematical expressions. 

Please also refer to the Chair for Compiler Construction's research page for related projects.

If you are a student and interested in working on fault tolerance (either as a SHK, WHK, or towards a thesis), please contact me. Various projects are currently available, especially in the areas of code transformation and variant generation.



  • 2018

  • Norman A. Rink, Immo Huismann, Adilla Susungi, Jeronimo Castrillon, Jörg Stiller, Jochen Fröhlich, Claude Tadonki, "CFDlang: High-level code generation for high-order methods in fluid dynamics" (to appear), Proceedings of 3rd International Workshop on Real World Domain Specific Languages (RWDSL 2018), Feb 2018. [Bibtex & Downloads]
  • 2017

  • Adilla Susungi, Norman A. Rink, Jeronimo Castrillon, Immo Huismann, Albert Cohen, Claude Tadonki, Jörg Stiller, Jochen Fröhlich, "Towards Compositional and Generative Tensor Optimizations" , Proceedings of 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE 17), ACM, pp. 169–175, New York, NY, USA, Oct 2017. [doi] [Bibtex & Downloads]
  • Norman A. Rink, Jeronimo Castrillon, "Extending a Compiler Backend for Complete Memory Error Detection" , In Proceeding: Lecture Notes in Informatics: Automotive - Safety & Security 2017 (Peter Dencker and Herbert Klenk and Hubert Kelle and Erhard Plödereder) , pp. 61–74, May 2017. (Best paper award) [Bibtex & Downloads]
  • Norman A. Rink, Jeronimo Castrillon, "Trading Fault Tolerance for Performance in AN Encoding" , Proceedings of the ACM International Conference on Computing Frontiers (CF 17), ACM, pp. 183–190, New York, NY, USA, May 2017. [doi] [Bibtex & Downloads]
  • Norman A. Rink, Jeronimo Castrillon, "flexMEDiC: flexible Memory Error Detection by Combined data encoding and duplication" , Proceedings of the 2nd International Workshop on Resiliency in Embedded Electronic Systems (REES), co-located with DATE 2017, pp. 15–22, Mar 2017. [Bibtex & Downloads]
  • 2016

  • Norman A. Rink, Jeronimo Castrillon, "Comprehensive Backend Support for Local Memory Fault Tolerance" , Technical report, Technische Universität Dresden, pp. 11, Dec 2016. [Bibtex & Downloads]
  • Sven Karol, Norman A. Rink, Bálint Gyapjas, Jeronimo Castrillon, "Fault Tolerance with Aspects: a Feasibility Study" , Proceedings of the 15th International Conference on Modularity, ACM, pp. 66–69, New York, NY, USA, Mar 2016. [doi] [Bibtex & Downloads]
  • 2015

  • Norman A. Rink, Jeronimo Castrillon, "Improving Code Generation for Software-based Error Detection" , Proceedings of the 1st International Workshop on Resiliency in Embedded Electronic Systems (REES), co-located with ESWEEK 2015, pp. 16–30, Amsterdam, The Netherlands, Oct 2015. ([link]) [Bibtex & Downloads]
  • Norman A. Rink, Dmitrii Kuvaiskii, Jeronimo Castrillon, Christof Fetzer, "Compiling for Resilience: the Performance Gap" , Chapter in Parallel Computing: On the Road to Exascale (ParCo 2015). Extended from Proceedings of the Mini-Symposium on Energy and Resilience in Parallel Programming (ERPP 2015) (Gerhard R. Joubert and Hugh Leather and Mark Parsons and Frans Peters and Mark Sawyer) , IOS Press, vol. 27, pp. 721–730, Edinburgh, Scotland, Sep 2015. [doi] [Bibtex & Downloads]
  • "The structure of LLVM backends", Bloomberg LLVM Sprint Weekend, 6-7 February 2016, London, UK [pdf]
  • "Syntax Macros: a Case Study in Extending Clang", LLVM Cauldron, 8 September 2016, Hebden Bridge, UK [pdf]
  • "flexMEDiC: flexible Memory Error Detection by Combined data encoding and duplication", 2nd REES Workshop (co-located with DATE 2017), 31 March 2017, Lausanne, Switzerland [pdf]