MSc Projects in Parallel Programming and High-Performance Computing
Index: Home - Open projects - Supervision - Schedule - Projects in Progress - Completed Projects
This page lists (MSc) projects and gives students an idea what a MSc project here comprises.
Take a look at the following list of open projects first. When you are interested, consider the info below it, and contact Ana Lucia Varbanescu and/or me to discuss your interests and project details.
This project list indicates a lot of choice, but we can only supervise a limited number of students simultaneously.
The coordinator for MSc projects in the PDS group is Dick Epema.
Have a look at the PDS groups's MSc projects page for some general info and links to projects in related topics.
- Parallelization of Mathematical Simulations/Models (generic title, exact topic depending on student's and Vortech's interests)
Location: Vortech, Delft (walking/biking distance from EWI)
Requirements: Knowledge of numerical solving methods, and/or differential equations (or the willingness to dive into it) is useful for some projects.
Vortech develops and maintains (parallel) software for mathematical modeling and simulation.
They are willing to provide an internship in the area of multi-/many-core programming to investigate parallel programming solutions for mathematical simulations.
Take a look at their Internships/Graduation projects.
Note that the listed projects are indicative of what they offer, but not necessarily the project(s) they are most interested in when you go there to discuss.
Last time I spoke them they had challenging research projects, as well as simulation software where a good speed-up would make their customers really happy (obviously not on their site).
- Dataflow Execution of Streaming Applications on Heterogeneous Platforms with GPUs (pdf, by Ana Balevic)
Status: available; please contact Ana Balevic (balevic AT liacs.nl) for the latest info
Location: Leiden University
In recent years, massively parallel accelerators such as GPUs became tremendously popular for acceleration of applications in fields of image/video processing, patter recognition, bio-tech, and astrophysics, with impressive speedups reported all over the world.
The latest trend in parallel computing is a move towards hybrid computing on heterogeneous platforms that combine CPUs, GPUs and FPGAs.
The emerging platforms offer enormous potential to exploit different forms of parallel processing, e.g. massive data parallelism, task and pipeline/streaming parallelism.
The goal of this project is to enable efficient mapping of streaming multimedia applications onto emerging heterogeneous platforms and to develop a clear understanding of technical and performance issues on the basis of benchmarks and case studies.
R & D Tasks/Topics
- Design and development of an experimental Pthreads+CUDA4.0/OpenCL framework for Dataflow execution on Hybrid CPU-GPU systems.
- Research on efficient execution of streaming apps in a coarse-grained pipeline fashion on hybrid architectures (e.g. NVIDIA Tegra, AMD Fusion APUs).
- Benchmark analysis and case studies, acceleration of hybrid apps in domain of audio/video codecs (MP3, MJPEG2000, MPEG4, etc), pattern recognition, bio-tech, astrophysics.
- Advanced code transformations & compiler optimizations.
What do you get?
- Opportunity to work on the edge of parallel computing today on highly relevant applications & studies with experts in the field.
- Learn in-depth about parallel programming & get hands-on experience with the latest GPUs.
- Project/Thesis. Team work may be possible on a project.
What do we look for?
- Strong interest in parallel computing concepts and practices, motivation & hands-on approach.
- Some of the topics require strong C/C++ programming skills (others not), contact me for more details.
To get an idea about previous CUDA/GPU student projects, check out my homepage at http://imagineparallel.com (Ana in the Coderland page).
- Extending the LIME Compilation Toolchain
Status: have to check
Location: NXP Research (formerly Philips (Semiconductor) Research), Eindhoven
Requirements: Completed Compiler Construction Lab with a decent grade; for the FPGA variant (3rd), some FPGA programming experience.
NXP Research uses a toolchain to map software-defined radio (SDR) applications from Matlab/C to FPGAs in various steps.
The final steps are performed by LIME, a parallel programming environment based on
C and XML.
Depending on the student's and NXP's interests, there are a number of opportunities to extend LIME:
For details, let's talk to Pjotr Kourzanov from NXP (and TUD), who will supervise.
- Also perform the first step(s) in the toolchain, allowing a programmer to start using LIME already from Matlab.
With the entire toolchain based on LIME, an integrated development environment can be set up that propagates all high-level information
from the Matlab code through the complete toolchain, better assisting the programmer in application mapping, task coordination and problem diagnosis.
- Auto-parallelization. Instead of the programmer specifying all communication and synchronization dependencies in XML files,
the toolchain should derive that from the C code automatically, where possible. Original kernels will still need to be written in
a certain way to expose dependencies. How and why.
- LIME backend for FPGAs. So far, the LIME backends only support software targets such as pthreads, CUDA, etc.
Mapping to FPGAs using e.g. FPGA_C would be of interest to them.
- Other Projects on Multi-/Many-Core Programming
Take a look at the following pages to see if there is something you like:
These projects can all be chosen (if still available) and will require some visits to the Vrije Universiteit (VU) (Amsterdam), or Leiden University, or ASTRON, Dwingeloo (northern part of the Netherlands).
- Your Project Idea/Proposal in Parallel Programming / HPC
Status: always available
Requirements: you have some ideas to discuss; you must be able to find our offices and/or email addresses :)
Also for those who already found a project and organization to do your internship on parallel programming and/or high-performance computing.
Regular discussion will take place with Ana Varbanescu, or an employee from the external organization (if applicable).
Ultimately, graduation is overseen by a permanent staff member, which for this topic is prof.dr.ir. Henk Sips. Before a project starts, we will have to write him a project description of ~¼ page.
Note: You must have completed all mandatory courses before starting a MSc project, and more importantly,
the thesis defense cannot take place before all other grades are with the educational student office.
Before the defense, the office will inform prof. Sips, so make sure you have completed all other courses in time!
After passing the defense, submit your thesis to the thesis repository
of the TUD library in time, that is, at least 5 working days before the next exam committee meeting.
A MSc project stands for 45 ECTS (possibly preceded by a research assignment of 15 ECTS).
These 45 ECTS correspond to roughly 9 months of work. This may slip a bit, after all, it is a large project on a new topic rather than
an overly tried out exercise (most courses). If you are eager for a good result and/or grade, rather than just receiving your degree,
or you still need to complete a course, it may take longer to finish as well.
Any project in this group will contain a large experimental part: programming, testing, and measuring various performance-related metrics.
Typically, a student will analyze existing application(s) behavior, come up with ways to better execute/distribute processing,
or to adapt existing solutions to a new problem, or to generalize some solutions, then implement some of those ideas, analyze the results,
and deliver a report (thesis). This leads us to the following generic schedule (not every item applies to every project):
It is highly encouraged to write down your plans, what you did, why something (did not) work(s), etc in intermediate reports/notes.
We will also steer towards delivering an intermediate report of 5 to 10 pages (.pdf) about half-way, such that not all the writing is
left until the (bitter) end. This often improves thesis quality and decreases time line overshoot.
It also pleases the upper echelon :) (depending on the content...).
- Month 1: Extend problem description / research statement. Literature study. Student-, project-specific schedule (planning).
- Month 2: Requirements engineering. Analysis, perhaps modeling, of provided application code(s), and input data sets.
- Month 3: Wild experimentation. Application restructuring. Formulate hypotheses and design alternative solutions.
- Month 4: Selection and first implementation of (sub-)solutions. Prototype / proof-of-concept.
- Month 5/6: Experimental design. Set up automated measurement and post-processing tool chain. Intermediate report. Implementation.
- Month 7: Further implementation. Performance Measurements.
- Month 8: Final measurements. Agree on thesis outline. Thesis writing.
- Month 9: Thesis writing, improve from reviews.
- Month N+1: Defense: Presentation at TUD. If the project is external, also a presentation at the external institute.
- Month N+1+m: Graduation ceremony!
You are hereby encouraged to write your thesis using Latex, possibly using
Provide the final, printed thesis to each member of the defense committee at least one full week ahead of the defense.
Most projects listed are intended for one student. We are willing to create/extend projects for (at most) two students who
would really like to cooperate. Such a project will be based on something listed with some common foundation, such that cooperation
allows to accomplish more than two students working separately. However, it will also contain a personal part to focus on for each student.
Having a personal (sub-)topic will be good when a future employer asks you about your MSc project, allows some grade differentiation,
and provides a safe-guard for one of the students in case the other needs to pause/stall/quit.
We are very willing to cooperate MSc project set-up and supervision with CE members. This makes sense especially for CS projects
near the "boundary" (energy-aware software, low-level optimizations, compiler back-end), or CE projects on hardware/software
co-design and/or if a larger software demonstrator is desired. The project can have a CS or a CE focus. This can also be a two-student project.
For external projects at a company, parts of the thesis and produced/provided source code may be considered confidential.
If this is the case for your project, please discuss the consequences with your company advisor(s).
The most common solution is to write a public thesis with confidential appendices. And to apply that split early on.
Then only the exam committee and company will receive all public and confidential thesis parts.
The university requires that a copy of the final (public) thesis is submitted to the on-line thesis repository.
- Large Scale Graph Processing with Pregel using MPI
Performed by Nefeli Papapetrou Lampraki, started Oct 2011.
Advisor: Ana Lucia Varbanescu.
- SWAN Performance Optimization for Flood Control
Performed by Puja Nanda, started mid Oct 2011 at IBM in Amsterdam.
Advisors: Bram Havers (IBM), Jeroen van Hoof (IBM), Si Yin (IBM) (until Jan), and Alexander van Amesfoort.
In coorperation with: Martin Verlaan (Deltares) and Marcel Zijlema (Dept. of Hydraulic Eng., CiTG faculty)
Performance analysis and optimization of SWAN (Simulating WAves Nearshore) for a Dutch coast model from Deltares.
Index: Home - Open projects - Supervision - Schedule - Projects in Progress - Completed Projects
- Programmability Analysis of Image Processing Kernels on Multi-/Many-core Platforms
Performed by Sjoerd Hemminga.
Advisor: Ana Lucia Varbanecu.
MSc defense was on June 8th, 2011.
- Adapting Particle Filter Algorithms to the GPU Architecture
Performed by Mehdi Chitchian.
Advisors: Alexander van Amesfoort, Andrea Simonetto (DCSC dept., 3ME faculty), and Tamás Keviczky (also DCSC).
MSc thesis defense was on May 20th, 2011.
Experimental follow-up work to run the application in a closed-loop with a robotic arm has been completed. A conference paper is under review.
- Low Complexity Feature Point Detection and Tracking using CUDA
Performed by Rajat Phull at IMEC, Leuven, Belgium.
Advisors: Qiong Yang (IMEC) and Henk Sips.
MSc thesis defense was on Jul 14th, 2010.
A paper has been accepted at the IEEE workshop on Signal Processing Systems (SiPS), 2010.
- An OpenCL-based Solution for Portable Bodyscan SAR Processing on Multicore Platforms
Performed by Miloš Rašković at TNO, The Hague.
Advisors: Maarten Ditzel (TNO), Wouter Vlothuizen (TNO) and Ana Lucia Varbanescu.
MSc thesis defense was on Jun 25th, 2010.
A paper has been accepted at the ICPP 2011 conference.
- Accelerating Computational Electromagnetic Diffraction Model on Programmable Graphics Processors
Performed by Shams Al Umairy at ASML Research, Eindhoven.
Advisors: Irwan Setija (ASML) and Alexander van Amesfoort.
MSc thesis defense was on Feb 8th, 2010.
A paper has been accepted at the A4MMC workshop, co-located with the ISCA 2010 conference.
- Abstract Reduction Operation Models in LIME Programming Model
Performed by Mani Zandifar at NXP Research, Eindhoven.
Advisors: Pjotr Kourzanov (NXP, TUD) and Henk Sips.
MSc thesis defense was in May, 2009.
After graduation Mani became a PhD student in the Parasol group at Texas A&M University.
The theses can be downloaded from the repository of the TUD library.
Page last modified: Jan 18th, 2013