Diploma Thesis Projects 2018-2019

  1. MPI benchmarking
    Description: Write tests and test automation, port existing benchmarks, and evaluate MPI applications on experimental hardware platforms with DMA-accelerated MPI.
  2. MPI collectives
    Description: Understand the existing implementation of MPI collectives and investigate alternative implementations better tailored for DMA-accelerated communication and very low custom networks in experimental HPC hardware.
  3. Linux Kernel
    Description: Extend the perf tool (implemneting all required in-kernel support) with additional counters for experimental HPC architectures.
  4. LLVM and tasks
    Description: Extend LLVM with OpenMP tasks, and link it with the PARTEE task-parallel runtime system.
  5. Fault-tolerant PARTEE tasks
    Description: Extend the PARTEE runtime system with support for local and global checkpointing and recovery from both transient and permanent errors. Measure the overhead of fault tolerance on task-parallel programs.
  6. OpenMP tasks in Eclipse
    Description: Learn the Eclipse C internal representation, learn the workings of an existing static analysis engine and interface the two.
  7. Twitter Graph Analytics
    Description: Reimplement an existing analytics pipeline in a distributed analytics runtime system (Spark or Flink) so that it scales to a billion tweets per hour or 10 million node graphs, on a small cluster.
  8. Java static analysis
    Description: Develop a static analysis for Java that computes NUMA locality and object lifetime.
  9. Parallelization of static analyses
    Modularize and parallelize an existing static analysis engine. Factorize the Locksmith pointer analysis engine.

Diploma Thesis Projects 2017-2018

  1. Benchmarking Kernel Memory Allocators
    Compare kernel allocation accross an off-the-shelf platform based on x86 machines and an experimental ARM-based blade. Develop benchmarks and draw conclusions.
  2. Twitter Graph Analytics for Targetted Marketing
    Parallelize and optimize existing algorithms for distributed analytics. Develop a marketing application for the Twitter graph for the Spark and Spark/GraphX analytics engines.
  3. Graph Analytics for Flink Gelly
    Benchmark Flink Gelly with large social network graphs. Replicate existing anaytics pipelines for twitter in Flink.

Diploma Thesis Projects 2016-2017

  1. Alternative RDD implementations for Spark
    Description: Learn to code in Scala and Spark and write one or more extensions of Spark RDDs optimized for specific algorithms.

Diploma Thesis Projects 2013-2014

  1. LLVM and tasks
    Description: Extend LLVM with a "spawn" keyword that calls a function in parallel, as in Cilk, and link it with the PARTEE task-parallel runtime system.

Diploma Thesis Projects 2012-2013

  1. Task-parallel Fault Tolerance
    Extend the BDDT runtime system with fault-tolerance. Define a realistic fault model for permanent and transient faults on existing multicore computers. Extend the BDDT runtime system with support for local and global checkpointing and recovery from both transient and permanent errors. Measure the overhead of fault tolerance on task-parallel programs.
  2. Runtime Dependencies in Recursively Parallel Programs
    Implement a runtime analysis for dependencies among recursively-parallel tasks, and extend an existing runtime system (e.g., Cilk) with a dependency-aware scheduler.
  3. Static analysis in Eclipse
    Learn the architecture of the Eclipse IDE (for either Java or C programming), including the AST and analysis frameworks, and write an Eclipse interface for an existing static analysis engine.

Internship Topics 2012

  1. A fault-tolerant task parallel runtime
    Positions: 1
    Lab: CARV
    Description: Understand the BDDT runtime and add support for checkpointing of computations, and restoring to an earlier point on fault.