Internship Topics 2013
-
Java bytecode rewriting
Positions: 1
Lab: CARV
Description: Learn to use a bytecode parser and rewriting
tool to automate program transformations for class files. Implement
an example transformation (Java Futures).
-
LLVM Tasks
Positions: 2
Lab: CARV
Description: Work with the LLVM compiler and virtual
machine to implement a task-parallel programming model. Link LLVM
runtime with BDDT for task creation and scheduling.
-
Testing server
Positions: 1
Lab: CARV
Description: Develop and set up a building and testing
server that synchronizes with a code repository and performs nightly
or on-commit builds and tests.
Diploma Thesis Projects 2012-2013
-
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.
-
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.
-
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.
-
Parallelization of static analyses
Modularize and parallelize an existing static analysis engine.
Factorize the Locksmith pointer analysis engine.
Internship Topics 2012
-
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.
Diploma Thesis Projects 2011-2012
-
Cyclone compiler
Learn
Cyclone
and work on the Cyclone compiler. Add task parallelism to the Cyclone
language, and link produced C code with existing task-parallel and
region-based runtime systems. Test your compiler extensions with
small benchmarks.
-
Mechanized theorem proving
Learn
the Coq proof assistant
and encode a simple language's abstract syntax, type system and
semantics. Use Coq to prove simple properties about the system.