My workplace

Curriculum vitae

(as PDF)

Fabian Gruber

Inria CORSE & Université Grenoble Alpes
fabian.gruber@fadeopolis.com

I am a PhD student at the Inria team CORSE (Compiler Optimization and Runtime SystEms) and the Université Grenoble Alpes.

I work on performance debugging, that is analysing an applications performance and finding hotspots and bottlenecks.

The main focus of my work has been on:

  • Disassembling optimized binaries & re-constructing higher-level information.
  • Program instrumentation using dynamic binary translation with tools such as QEMU and DynamoRIO.
  • Performance evaluation of modern x86 & ARM CPUs, as well as reverse engineering parts of their instruction pipelines.
  • Work with the machine description system of the LLVM compiler infrastructure (tablegen).

Experience


Inria / Université Grenoble Alpes

Winter Semester 2018

Teaching assistant

class: Programming Language Semantics and Compiler Design for Yliès Falcone

Colorado State University

04.2018

Visiting researcher

Worked on using techniques from polyhedral compilation to give optimization feedback to progammers.

PPoPP 2018 conference

Colorado State University

10.2017 - 11.2017

Visiting researcher

Worked on reverse engineering performance aspects of modern OoO x86 & ARM CPUs with Louis-Noel Pouchet.

Inria / Université Grenoble Alpes

Winter Semester 2016

Teaching assistant

class INF 302: Langages & Automates (formal languages & automata) for Yliès Falcone


10.2016 - current

PhD student in the CORSE team

Advisor: Fabrice Rastello
Co-advisor: Ylies Falcone

Work on performance debugging & performance analysis.

Work with a dynamic binary instrumentation framework on top of the QEMU CPU emulator for re-constructing call graphs & inter-procedural loop forests from optimized binaries as well as tracking data dependencies. Using this information code transformations are proposed using a polyhedral optimizer.

Inria

10.2014 - 09.2016

Research Engineer in the CORSE team

Worked on the TIREX project, a machine-code level compiler IR exchange format.
Wrote LLVM based tools for instruction level code analysis & hybrid (both static & dynamic/instrumentation based) alias analysis.

misc


Summer 2010

Internship at Christian Doppler Laboratory SE-Flex-AS

Software Development & Quality Assurance


10.2006 - 06.2007

Civil service at nursing home “Bezirksalten- und Pflegeheim Ried im Innkreis”

Nurse & custodial duties



Publications


Runtime pointer disambiguation

Péricles Alves, Fabian Gruber, Johannes Doerfert, Alexandros Lamprineas, Tobias Grosser, Fabrice Rastello, and Fernando Magno Quintão Pereira.


Education


Technical University of Vienna

08.2011 - 08.2014

Master programme Software & Information Engineering (graduated with distinction)

Thesis: “Invokedynamic for the CACAO JVM” with advisor Andreas Krall.
Implemented JSR-292 (Supporting Dynamically Typed Languages on the Java Platform) on the CACAO JVM.


09.2007 - 08.2011

Bachelor programme Software & Information Engineering



Skills


Programming
C/C++, x86 assembly (& disassembly), Python, Java, Haskell, bash

Languages
fluent English & French, native German. Basic knowledge of Italian and Korean.


Misc


Hobbies
Hiking, cooking, video games (playing & making them), currently trying to learn Korean