Available Theses

Title Student(s) Supervisor Description
Enhancing VM Image Storage and Distribution in a Federated Cloud Environment 1 Radu Prodan details
Enhancing Cloud Simulation Efficiency by considering virtualization techniques
1 Radu Prodan details
Produktives Arbeiten mit einem Tauchlackier-Simulationstool der Automobilindustrie 1 Thomas Fahringer details
Offloading Graphics Computations on the Cloud 1 Radu Prodan details
Compilation environment of the Insieme Compiler Framework 1 Thomas Fahringer details
Cloud hosting for the GamingAnywhere platform 1-2 Radu Prodan details
Workflow system comparison 1 Simon Ostermann details
Saga and GAT evaluation and integration into ASKALON 1 Simon Ostermann details
Using Amazon EC2 Cluster Compute instances for scientific computing 1 Radu Prodan details
Using Amazon EC2 Cluster GPU instances for scientific computing 1 Radu Prodan details
A Visualization Tool for Code-Performance Association 1 Thomas Fahringer details
Automated test data generation 1 Thomas Fahringer details
Task parallelism using Insieme 1 Thomas Fahringer details
Support for recursive data types in the Insieme Runtime 1 Thomas Fahringer details
Insieme INSPIRE property deduction 1 Thomas Fahringer details
Automated Characterizing of OpenCL Devices Using Micro Benchmarks 1 Thomas Fahringer details
OpenCL Host Code Frontend for the Insieme Compiler Environment 1 Thomas Fahringer details
Using Amazon EC2 spot instances for scientific computing 1 Radu Prodan details

 

Title Enhancing VM Image Storage and Distribution in a Federated Cloud Environment
Number of students 1
Language English
Supervisors Radu prodan
Description The emerging trend of Federated Cloud models enlist virtualization as a significant concept to offer a large scale distributed Infrastructure as a Service collaborative paradigm to end users. Virtualization leverage Virtual Machines(VM) instantiated from user specific templates labelled as VM Images (VMI). To this extent, the rapid provisioning of VMs with varying user requests ensuring Quality of Service(QoS) across multiple cloud providers largely depends upon the image repository architecture, storage techniques and distribution policies.

The purpose of this thesis is to research Distributed Cloud computing mechanisms to encompass following goals :

1. Distributed Cloud environment for VM Image storage.
2. Faster VM Image Distribution.
3. Interoperability of VM Images in Federated Environment.
4. Optimized VM Provisioning and Deployment.

Tasks The tasks of this Master thesis are as follows but not limited to :

1. A distributed environment has to be implemented attached with S3 and other compatible storage systems for different cloud providers namely OpenStack, Amazon, Google cloud, OpenNebulla based Cloud technologies.
2. The comparison of various distribution mechanisms including unicast, binary distribution, multicast and bit torrent techniques etc. needed to assess the behavior of each technique within federated cloud environment has to be studied.
3. Interoperability of images in various cloud providers including Openstack, Amazon and other environments are to be studied. There are already some existing tools like qemu available : usability of such tools in a federated environment has to be studied.
4. Analysis Study about the rate of VM provisioning, deployment and elastic auto-scaling of inter-operable images in such federated environment with regard to storage and distribution techniques has to be performed.

Theoretical Skills Distributed System Concepts, Parallel Programming
Practical Skills Java, Shell Scripts
Additonal Information For Additonal Information, mail at (nishant”at”dps.uibk.ac.at) with subject heading “Masters Thesis” + “Project Title”

 

Title Enhancing Cloud Simulation Efficiency by considering virtualization techniques
Number of students 1
Language English
Supervisors Radu prodan
Description The simulation allows to model the complex dynamics of a Virtualized data center and carry out experiments otherwise difficult to conduct on
large-scale infrastructure.
Although there are several simulation toolkit like Cloudsim, GridSim, GangSim and GroudSim, still none of those supports the modelling of the
resource sharing realized by the modern virtualization technologies.
The purpose of this thesis is to extend the Groudsim simulation engine to encompass the following virtualization features :

  • Transparent Page Sharing
  • CPUs and Memory over commitment

The Thesis work is composed of two phases:

  • The analysis of the virtualization technologies and of theirs foundation techniques in order to understand how they work together to deliver the Cloud Services
  • The implementation of these techniques in Groudsim .
Tasks Literature review about data center virtualization technologies. Analysis of the virtualization techniques for resource sharing and overcommitment (cpu scheduling, ballooning, memory swapping, page sharing).

Implementation of the virtualization techniques in Groudsim.

Investigation of the virtualization benefits and its drawbacks

Theoretical skills Distribute and Parallel Systems
Practical skills Java skills
Additional information

 

Title Produktives Arbeiten mit einem Tauchlackier-Simulationstool der Automobilindustrie
Number of students 1
Language Deutsch
Supervisors Thomas Fahringer, Partner: ESS Engineering Software Steyr
Description Wurde in den Pionierzeiten des Automobils der Lack in Handarbeit auf die Karosserie aufgetragen, durchlaufen Fahrzeige heute vollautomatische Lackierstraßen, sowie ein oder mehrere Tauchbäder. Dieser Prozess der Tauchlackierung ist einer der finalen Schritte in der Automobilproduktion, deshalb ist es sehr problematisch, wenn sich Designfehler erst in dieser Phase auswirken. Als Lösung hierfür bietet das Engineering Software Steyr (ESS) ein Simulationstool (ALSIM) zur dynamischen Simulation der Tauchlackierung. Hiermit können die Entstehung und Wanderung von unterwünschten Luftblasen, welche die Ursache für nicht benetzte und damit nicht beschichtete Bereiche sind, beim Eintauchen und im Baddurchlauf visualisiert werden. Ebenso können unterwünschte Pfützen-Bildungen beim Austauchen aus dem Bad und in der anschließenden Ablaufstrecke sichtbar gemacht werden.

Dieser rechenaufwändige Simulationsvorgang ist an sich ein sequenzieller Prozess und kann grob in folgende Schritte unterteilt werden:
1. Eintauchen des Fahrzeugs in das Bad
2. Rotierung des Fahrzeugs im Bad
3. Austauchen

Tasks
Theoretical skills
Practical skills
  • Simulation
  • Parallelität
  • Software-Entwicklung
  • Verifizieren von Algorithmen
Additional information Der/die Student/in bekommt für die Erstellung der Masterarbeit eine marktübliche Entlohnung.
Die Arbeiten sollte primär direkt bei der Firma ESS in Steyr durchgeführt werden.

 

Title Offloading Graphics Computations on the Cloud
Number of students 1
Language English
Supervisors Radu Prodan, Vincenzo de Maio
Description Global Illumination (GI) algorithms provide a way to produce very realistic images of 3-dimensional scenery. They take in account not just direct lighting from light sources, but also indirect light contribution
from object surfaces. The resulting 3D rendering is very realistic, substantially better than today’s most eye-catching computer games. However, it is very expensive to compute. On the other hand, Cloud computing offers a way to offload such computations, so that also a simple mobile phone may potentially visualize realistic images based on physically based, GI algorithms.
Tasks The goal of this thesis is to design a rendering system on the cloud by extending existing physically-based rendering engines such as Mitsuba renderer (with a cluster-based parallelization support) to offload computation on the cloud.

The student will have to investigate critical aspects such as the impact of latency and interactivity, trade-off between image quality and performance in fps, and cloud elasticity

Theoretical skills
Practical skills
Additional information

 

 

Title Compilation environment of the Insieme Compiler Framework
Number of students 1
Language English
Supervisors Thomas Fahringer
Description The purpose of the work is to analyse the current built environment of the Insieme Compiler in order to improve usability and compilation time. The Work consists on two phases: – Analyse the code dependencies and build a new CMake infrastructure that handles automatically those dependencies. – Study Compilation techniques to improve compilation time, compare and implement some of those in within the compiler infrastructure.
Tasks
  • Familiarize yourself with the Insieme infrastructure (with support from its developers)
  • Master the usage of CMake in large developments
  • Study compilation techniques applicable to any development
Theoretical skills Operating Systems
Practical skills
  • Good general programming skills
  • Familiar with compilation tools (Make, CMake, Ant…)
Additional information

 

Title Cloud hosting for the GamingAnywhere platform
Number of students 1
Language English or German
Supervisors Simon Ostermann
Description GamingAnywhere is an open-source clouding gaming platform. In addition to its openness, we design GamingAnywhere for high extensibility, portability, and reconfigurability. GamingAnywhere currently supports Windows and Linux, and can be ported to other OS’s including OS X and Android. In order to work, GamingAnywhere needs to be manually installed on a server machine. The goal of this thesis is to develop a Cloud-enabled hosting mechanism for the GamingAnywhere platform.
Tasks Possible topics for the thesis may include one (but are not limited to) of the following tasks:

  • Investigation of the performance and scalability of GamingAnywhere for multiplayer games
  • Management of game instances and Virtual Machines with game-dependent Quality of Experience (QoE)
  • Multi-objective optimization of different streaming QoE parameters such as bit rate, compression, resolution, audio/video mode, frame rate, game-dependent QoS parameters, etc.
  • On-demand provisioning, of VM resources to game servers matching the QoE needs and optimising utilisation, energy consumption, availability, etc. at the data centre (including seamless VM migration and consolidation).
  • Any other interesting task proposed by the student…
Theoretical skills Advanced Distributed and Parallel Systems (useful by not required)
Practical skills C++, Android clients (optional)
Additional information

http://gaminganywhere.org/

 

Title
Saga and GAT evaluation and integration into ASKALON
Number of students 1
Language English or German
Supervisor Simon Ostermann
Description

The goal of ASKALON is to simplify the development and optimization of applications that can harness the power of Cloud and Grid computing. The ASKALON project crafts a novel environment based on new innovative tools, services, and methodologies to make Cloud application development and optimization for real applications an everyday practice.

Currently ASKALON uses the Java COG kit for job submission and file transfer in Cloud, Grid and simulated environments. The topic of this thesis is to compare GAT, SAGA and the CoG kit, identify the best of the new two possible middle wares and integrate it into ASKALON

Tasks
  • Get in touch with the ASKALON system
  • Get in touch with the CoG kit
  • Get in touch with the SAGA
  • Get in touch with the GAT
  • Study if there are any alternatives that support: Java, Globus Grid based job submissions, Cloud SSH based job submissions
  • Evaluate the systems and integrate SAGA or GAT or … into ASKALON:
    • Replace filetransfer mechanisms
    • Replace job submission mechanisms
    • Replace security mechanisms and integrate an existing security service
    • Make sure this works ob both, Grid and Cloud resources
    • Extend SAGA or GAT to support our integrated simulation framework
Theoretical skills Grid lecture and exercises
Practical skills Java, Grid computing, Cloud computing, Security
Additional information

Askalon

http://www.cs.vu.nl/ibis/javagat.html

http://saga-project.github.com/

 

 

Title
Using Amazon EC2 Cluster Compute instances for scientific computing
Number of students 1
Language English
Supervisor Radu Prodan
Description The goal of this thesis is to investigate the use of Apache Hadoop framework for scientific computing. A budget of about 1000 Euro for running EC2 experiments is available.
Tasks
  • study the Amazon EC2 API and create a tutorial;
  • analyse the cluster compute instances using well-known benchmarks such as latency measurement and HPL;
  • based on the benchmark analysis, simulate the execution of traces of large traces from the Parallel Workflow Archive and Grid Workflow Archive;
  • quantify time and cost-wise the suitability of these instances for scientific computing.
Theoretical skills Parallel computing
Practical skills C, Virtualisation, Java
Additional information Amazon EC2

 

Title
Using Amazon EC2 Cluster GPU instances for scientific computing
Number of students 1
Language English
Supervisor Radu Prodan
Description The goal of this thesis is to investigate the use of Apache Hadoop framework for scientific computing. A budget of 1000 Euro for running EC2 experiments is available.
Tasks
  • study the Amazon EC2 API and create a tutorial;
  • analyse the cluster GPU instances using well-known benchmarks such as latency measurement and HPL;
  • based on the benchmark analysis, simulate the execution of traces of large traces from the Parallel Workflow Archive and Grid Workflow Archive;
  • quantify time and cost-wise the suitability of these instances for scientific computing,
Theoretical skills Parallel GPU computing
Practical skills C, CUDA/OpenCL, Virtualisation, Java
Additional information Amazon EC2

 

Title
A Visualization Tool for Code-Performance Association
Number of students 1
Language English
Supervisor Thomas Fahringer
Description The aim of this master thesis is to develop a graphical user interface tool that visualizes given performance data for given source code for parallel programs. When doing performance analysis, one usually measures performance data (run time, cache misses, retired instructions, …) for several code regions of the program. The tool developed in the course of this thesis should visualize this performance data and associate it to the code (e.g. show performance bars with numbers, units, etc… next to the code)
Tasks
  • Familiarize with existing editors and graphics libraries that can be extended
  • Implement an editor or extend an existing one to support visualizing performance data next to program code.
Practical skills
  • Programming in C/C++ or Java
  • No skills or background in parallel programming necessary

 

 

Title
Automated test data generation
Number of students 1
Language English
Supervisor Thomas Fahringer
Description One goal of the Insieme project is the development of a compiler capable of optimizing parallel programs. Iterative compilation will be one of the major concepts. This approach is based on the repeated compilation of a given code fragment and collection of information regarding the dynamic execution. The results are used to steer the compilation process, especially the selection of code transformations to be applied to the programs.

To enable the compiler to handle larger applications, sub-regions of the code have to be handled individually. Unfortunately, this makes it harder to apply iterative compilation, since for this approach executable programs equipped with representative input data sets are required.

In the Insieme compiler, every program is represented using INSPIRE – the Insieme parallel intermediate representation – which is a compact, semi-functional, strongly typed formal language for parallel applications. Within this representations, candidates for sub-regions can be easily identified and converted into executables.

The goal of this thesis is to automatically provide valid input data for those executables covering sub-regions. For instance, if the extracted region is a function processing two vectors of a given type, matching input data should be generated and passed to the executable. The generation process should also be extended to support the generation of sequences of input values for more extensive investigations of the sub-regions in the context of machine learning driven optimizations. Particularly, the generated input values may be required to satisfy certain statistical properties.

Tasks all in cooperation with the Insieme team:

  • Familiarize yourself with the Insieme project, in particular INSPIRE
  • Investigate the potential data types occuring as input for sub-regions
  • Formally limit the potential input types based on the INSPIRE types
  • Investigate literature regarding the automated generation of test data
  • Implement a test data generator
  • Integrate the test data generation into the Insieme project by offering a modul for generating an executable based on a sub-region and the generated data
Theoretical skills
Practical skills
  • C/C++ skills (the compiler is implemented using C++0x, the target code is C99)
Additional information

 

Title
Task parallelism using Insieme
Number of students 1
Language English
Supervisor Thomas Fahringer
Description The Insieme project aims to develop an optimizing programming tool chain for parallel programs including a compiler capable of static analysis and transformations and a runtime managing and tuning the execution of programs within shared and distributed memory systems. The system should be able to cover basic parallel paradigms like data or functional parallelism as well as task based work distribution.

The goal of this thesis is to verify and improve the system’s ability to handle task based parallelism. Therefore, a certain number of task parallel test cases close to real-world examples should be implemented using a format which can be handled by the Insieme compiler (e.g. OpenMP). The test cases should cover a wide range of potential task-based parallel algorithms, and at least some of them should be parameterized for benchmarking.

The processing of these input codes should be investigated throughout the various compiler stages and, if possible, improved. Finally, the handling and mapping of the individual tasks within the runtime should be examined and refined.

Tasks all in cooperation with the Insieme team:

  • Familiarize yourself with the Insieme project, in particular INSPIRE and the runtime process model
  • Find and implement 3-5 real world examples for task parallelism fitting the test case requirements
  • Investigate the processing of the examples throughout the various compiler stages and the runtime
  • Derive proposals for improving Insieme’s capability of handling tasks => Specification
  • Implement improvements to verify expected effects
Theoretical skills
  • Parallel Systems
Practical skills
  • C/C++ skills (the compiler is implemented using C++0x, the target code and runtime system is C99)
Additional information

 

Title
Support for recursive data types in the Insieme Runtime
Number of students 1
Language English
Supervisor Thomas Fahringer
Description The core of the Insieme Compiler project is formed by a compact, semi-functional, strongly typed formal language for parallel programs called INSPIRE. Within the backend of the compiler, this representation is converted into equivalent C code using functionality offered by the Insiem Runtime. This runtime is capable of processing units of work within shared and distributed memory systems. However, to allow the runtime to control the distribution of data among its managed environment, the compiler has to provide the necessary meta information.

The INSPIRE language allows the specification of recursive data types, that is, types including their own definition as an element. For instance, a linked list defined by a struct including a value element and a next pointer to the same struct is a recursive type. The goal of this thesis is to investigate possibilities of mapping such recursive types to the virtual environment offered by the runtime such that recursive data like lists or trees can be effectively managed.

Tasks all in cooperation with the Insieme team:

  • Familiarize yourself with the Insieme project, in particular INSPIRE and the runtime process model
  • Investigate the concept of recursive data types and propose potential beneficial modifications
  • Investigate and propose a specification on how to map recursive types to the runtime
  • Implement your proposal
Theoretical skills
  • Parallel Systems
  • Functional Programming
Practical skills
  • C/C++ skills (the compiler is implemented using C++0x, the target code and runtime system is C99)
Additional information

 

Title
Insieme INSPIRE property deduction
Number of students 1
Language English
Supervisor Thomas Fahringer
Description The core of the Insieme Compiler project is formed by a compact, semi-functional, strongly typed formal language for parallel programs called INSPIRE. This language is the basis for all analysis and transformations within the compiler.

For this language, a generic property deduction framework is required. For instance, the framework should allow the identification of dead code regions or replicated code as well as live variable, alias and exit analysis. The goal of this thesis is the design, specification and implementation of such a framework and the demonstration of its abilities by realizing one or two well known analyses.

Tasks all in cooperation with the Insieme team:

  • Familiarize yourself with the Insieme project, in particular INSPIRE
  • Familiarize yourself with Control Flow Graphs and related analyses
  • Derive a proposal for a property deduction system based on INSPIRE
  • Implement your system
  • Demonstrate its abilities by realizing 1-2 concrete analyses
Theoretical skills
  • functional programming
  • compiler construction
  • interest in logic and program analyses
Practical skills
  • C++ skills (the compiler is implemented using C++0x)
Additional information

 

Title
Automated Characterizing of OpenCL Devices Using Micro Benchmarks
Number of students 1
Language English
Supervisor Thomas Fahringer
Description uCLbench is a benchmark suite to determine the most importatn characterisits of an OpenCL device such as GPUs or CPUs. The goal of this thesis is to develop further this benchmark suite in terms of scope of operation and ease of use. New benchamrks characterizing important poperties should be implemented and added to this benchmark suite. Furthermore the output of all benchmarks should be formatted in a common and machine readable format.
Tasks
  • Familiarize with uCLbench
  • Extend suite with new benchmarks
  • Brint the output in a machine readable form
Theoretical skills Basic knowledge of OpenCL device characteristics (mainly GPUs)
Practical skills Programming C and OpenCL
Additional information OpenCL: http://www.khronos.org/opencl/

 

Title
OpenCL Host Code Frontend for the Insieme Compiler Environment
Number of students 1
Language English
Supervisor Thomas Fahringer
Description The Insieme compiler frontend is aiming at translating several C dialects, like C with OpenMP/MPI or OpenCL to a common intermediate representation (called INSPIRE). Goal of this thesis is to implement a forntend for OpenCL host code. The OpenCL host language consists of many pre-implemented functions for allocating/copying memory, compiling OpenCL kernels at runtime etc. The first task is to port the semantics of these pre-implemented functions to INSPIRE. The second task is to implement mechanisms to aquire the OpenCL kernel code at compile time and add it to the program.
Tasks
  • Familiarize with the Insieme project, in particular INSPIRE and the runtime process model
  • Read into OpenCL standard
  • Implement a subset of the pre-implemented OpenCL host functionalities in INSPIRE
Theoretical skills Basic knowledge of compiler construction
Practical skills Programming C++
Additional information OpenCL: http://www.khronos.org/opencl/
Insieme: http://www.dps.uibk.ac.at/insieme/

 

Title
Using Amazon EC2 spot instances for scientific computing
Number of students 1
Language English or German
Supervisor Radu Prodan
Description Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. Spot Instances enable you to bid for unused Amazon EC2 capacity. Instances are charged the Spot Price, which is set by Amazon EC2 and fluctuates periodically depending on the supply of and demand for Spot Instance capacity. To use Spot Instances, you place a Spot Instance request, specifying the instance type, the Region desired, the number of Spot Instances you want to run, and the maximum price you are willing to pay per instance hour. To determine how that maximum price compares to past Spot Prices, the Spot Price history is available via the Amazon EC2 API and the AWS Management Console. If your maximum price bid exceeds the current Spot Price, your request is fulfilled and your instances will run until either you choose to terminate them or the Spot Price increases above your maximum price (whichever is sooner).

The goal of this thesis is to investigate the use of EC2 spot instances for scientific application with respect to price, fault tolerance, and Quality of Service.

A budget of 1000 Euro for running EC2 experiments is available.

Tasks
Theoretical skills Distributed and parallel systems
Practical skills Java
Additional information