Research Subjects
The following are open thesis and internship subjects. We are looking for motivated students, with an interest on high-level parallel programming models to address any of these subjects, or other interesting subjects in the domain.
PhD Subjects
- High-level GPGPU Programming with Algorithmic Skeletons.
This subject proposes the study of algorithmic skeletons for Personal Supercomputer programming, in particular multi-core and GPGPU programming. Multi-core and GPGPU architectures are hard to program with current technologies and tools. On the other hand, algorithmic skeletons offer a high-level abstraction which simplifies programming of parallel and distributed applications. The application of algorithmic skeletons to multi-core and GPGPU infrastructures can help overcome these difficulties.
Master Subjects
- Combined stateless and stateful Algorithmic Skeletons in distributed programming.
A recurrent hypothesis in Algorithmic Skeleton distributed programming is to have stateless skeletons which can be distributed more efficiently. Nevertheless, this hypothesis acts as a restriction for programmers which must change their application design to be stateless. This subject aims to combine both stateless and stateful skeletons, thus providing more expressiveness to algorithmic skeleton programming.
- Design and implementation of a Workflow runtime using Algorithmic Skeletons.
Workflows are a well known high-level tools to program parallel and distributed computations. The goal of this research is to determine if algorithmic skeletons are as expressive as workflows, by designing and implementing a workflow runtime on top of algorithmic skeletons. This research can be either theoretical, practical or both.
Engineering Subjects
- Design and Implementation of Skandium library in C++.
The goal of this research is to port the Java Skandium Library to the C++ language.
- Exception Management in Algorithmic Skeletons.
One of the disadvantages of providing Algorithmic Skeletons as a library is that the exception stack is relative to the host language, not to the algorithmic skeleton patterns. The goal of this research is to provide a stack exception transformation to have a logic view of the stacks with respect to the nested skeleton pattern.
- Event Management in Algorithmic Skeletons.
The execution of an an algorithmic skeleton program entails the generation of many events. The goal of this research is to design and develop a uniform event management for Skandium which can be used to monitor the execution, trigger associated executions, etc.
- Parallel implementation of DNSSEC with Algorithmic Skeletons.
DNSSEC corresponds to the security extension to the DNS system, which cryptographically signs domain zones. The process of signing is CPU intensive and can be parallelized to improve performance. Thus, this problem provides a "real world" use case for algorithmic skeletons.
- Design and implementation of a Benchmark Set for Algorithmic Skeletons.
The goal of this research is to provide a set of standard problems which can be used to benchmark algorithmic skeletons. The result should be something like the NAS Parallel Benchmarks but specific for each skeleton pattern.

