Table of Contents

Thesis Proposals

This page lists the thesis (graduate and undergraduate) currently available on my research topics.

OpenCL Runtime Development for NUMA Architectures

The goal of this thesis is to analyze the performance bottlenecks of our current OpenCL runtime (OpenCRun) and improve over it by upgrading specific features identified as performance critical (e.g., the locking subsystem). The OpenCRun runtime is based on the LLVM compiler framework and is developed in C++.

This thesis is suitable for one or two students.

Contacts

Accelerating Cryptographic Primitives with Dynamic Parallelism-enabled Many-Core Architectures

The goal of this thesis is to assess the performance improvements that can be obtained on cryptographic primitives through a parallel implementation on many-core accelerators (NVIDIA Kepler and STM STHORM platforms), as well as to define best practice for efficient implementation on such devices. To this end, the OpenCL compiler needs to be extended to allow dynamic parallelism on STHORM.

This thesis is suitable for one or two students, and requires programming in C++ using the LLVM compiler framework, as well as extending and modifying CUDA and OpenCL benchmarks.

Contacts

A Domain-Specific Language for Performance Portability of Cryptographic Applications on Many-Core Heterogeneous Platforms

The goal of this thesis is to raise the abstraction level of OpenCL coding by means of a Domain Specific Language (DSL) based on aspect-oriented programming. The DSL will take into account characteristics of the specific platforms and provide suitable constructs to achieve the best performance, starting from a platform-neutral reference implementation. The DSL will have the elision property (i.e., removing all DSL-specific construct will result in a working C/OpenCL C code).

The thesis is suitable for one or two students, and includes a mix of programming languages (C/C++, OpenCL, LARA)

Contacts

Data Distribution for OpenMP in NUMA Architectures

Goal of this thesis is to design and implement a compiler pass to detect data access patterns in OpenMP programs, to drive data distribution on non-uniform memory access (NUMA) architectures. Since in NUMA architectures access time depends on the distance between memory and processor, allocating data on memories near to the processor that will use them is of capital importance for performance.

The proposed thesis is suitable for one student, requires writing a GCC analysis and transformation pass.

Contacts

Task Scheduling for NUMA Architectures

In certain scheduling policies, parallel tasks are allocated to different processing elements at the beginning of the execution. Faster processing elements, at the end of their own task queue, can steal work from slower ones. Conventional wisdom has it that stealing from a randomly chosen processing element gives the best results, but this does not take into account non uniform memory access architectures, where memory access have different costs depending on the involved processing elements.

We offer a thesis (for a single student) that aims at exploring the best work-stealing policies for NUMA architectures, depending on the memory hierarchy and its geometry.

The work requires programming in C/C++. Familiarity with OS concepts and simulators is a plus, but can be developed during the thesis.

Contacts

LLVM Back-end Development

We are offering several theses on the development of compiler back-ends targeting parallel architectures. The proposed theses will use the LLVM compiler infrastructure as a starting point, and will target one of the following architectures:

  • Cell processor
  • Nvidia PTX
  • STMicroelectronics xP70/Platform 2012

Each target is suitable for a single student. The work will be performed in C/C++. These theses are part of the 2PaRMA project.

Contacts

OpenCL and OpenMP implementation

We offer theses on the implementation of OpenCL and/or OpenMP languages on novel many-core platforms provided by our industrial partners. The goal is to produce a complete compilation toolchain within the FP7 European project 2PARMA starting in January 2010.

Main issues include the mapping of higher-level memory models onto lower level models (e.g., OpenMP “flat” shared memory on OpenCL explicit memory management) and (semi)automated vectorization.

This work requires familiarity with bison and flex, as well as good C and/or Python programming skills. It can be tailored to suit one or two students.

This thesis is part of the 2PARMA FP7 EU Project

Contact people for these thesis are:

Graduate Thesis ILDJIT Developments

Several thesis topics are available on developments of the ILDJIT system, including the following:

  • Extending support to the Java language (through gcc4net);
  • Extending support to C# 2.0 (adding support for generics);
  • Extending support to the Python language (2 students, includes support for generics);
  • Extending the level of optimization available in ILDJIT;
  • Extending the support for metadata to include non-standard QoS metadata.

You can have a look at the basics of the ILDJIT project in this presentation:

These theses are part of the OpenMediaPlatform and 2PARMA FP7 European projects.

Contact people for these thesis are:

Graduate Thesis: High Performance Algorithms for Logic Synthesis

This thesis, aimed at graduate students (laurea specialistica) aims at designing and implementing new algorithms for Logic Synthesis.

Such algorithms may address the P-equivalence problem for Boolean functions under relaxed conditions, such as don't care, or higher level technology mapping problems.

Undergraduate Thesis: Garbage Collection in ILDJIT

This thesis aims at implementing a generational garbage collection algorithm within the ILDJIT system, a dynamic compiler supporting the execution of CIL bytecode (a.k.a. ECMA-335).

The thesis is offered to undergraduate students (laurea di primo livello), and can be continued during graduate students by moving to more advanced dynamic compilation topics using the same environment.

This thesis work will be part of a Framework Programme 7 project.

Older entries >>