For sale
The content on this page was translated automatically.
For sale
The department currently uses the APGAS library in its research, which extends Java with parallel and distributed programming. APGAS divides up the global address space and the processors of a computer cluster and offers the option of dynamically generating tasks (subtasks that can be executed in parallel). The tasks are managed in a task pool and assigned to free processes or threads for processing. In the current APGAS version, this assignment can be made system-wide, which ensures global load balancing.
The task-based programming model of APGAS opens up new possibilities for handling hardware errors: it is sufficient to simply re-execute the affected tasks, provided that their inputs can be reconstructed from saved information.
The department is currently developing APGAS and error handling in various directions. The following theses are available in this field:
1. implementation of task pool benchmarks (several Bachelor's/Master's theses)
Further benchmarks are required to evaluate fault-tolerant task pool algorithms. By this we mean programs that implement parallel algorithms efficiently with the help of task pools. Examples are graph algorithms or game tree searches. The selection is made in consultation with the interested parties. The benchmarks must be implemented with Java in combination with APGAS and comprehensively tested.
2. comparison between HClib and APGAS (Bachelor thesis)
The Habanero C/C++ (HClib) library has some similarities to the APGAS library. For example, both libraries support the development of distributed programs based on tasks. In this bachelor thesis, the two libraries are to be compared both conceptually and experimentally. As a basis for the comparison, an existing benchmark will be ported from HClib to APGAS. The comparison should take into account the usability, i.e. one's own experience with familiarization, installation and programming, as well as the performance of the programs. The measurements are to be carried out via ssh on the high-performance computer at the University of Kassel.
3. comparison between Charm4py and APGAS (Bachelor thesis)
The Charm4py-framework realizes a parallel programming modell for Python. The framework is based on Charm++ (a C++-extension), but offers a much simpler API. So it connects it the Python advantage of a highn productivity in theprogrammingingwith the C++ advantage better performancer applications. Charm4py has some similarities to the APGAS library for Java. Both libraries support the development of distributed programs: APGAS by means of asynchronous tasks; and Charm4py by means of cooperating message-driven objects. In this bachelor thesis, the two librariesboth conceptually and experimentally compared with each other. As a basis for the comparison an existing benchmark of Charm4py will be ported to APGAS. On the one hand, the comparison should take into account usability, i.e. personal experience with familiarization, installation and programming, and on the other hand the performance of the programs. The measurements are to be carried out via ssh on the high-performance computer at the University of Kassel.
Alternatively, the topic can be dealt with in a master's thesis if anexisting APGAS benchmarkis ported to Charm4py and an analysis of the various load balancing methods is carried out.
4. evaluation of the usability and performance of the parallel programming system Legion (Bachelor thesis)
Legion is a task-based parallel programming system for high-performance computers that is currently being developed at Stanford University. It therefore represents an alternative to the conventional MPI. A special feature is the concept of logical regions, with which the distribution of data in the cluster can be described in abstract form. In the bachelor thesis, several simple benchmarks (e.g. pi calculation, k-means, stencil calculation) are to be implemented with Legion and MPI and the programs compared. On the one hand, the comparison should take into account the usability, i.e. one's own experience with familiarization, installation and programming, and on the other hand the performance of the programs.
5. evaluation of the usability and performance of Fibers in Java (Bachelor thesis)
The Loom project aims to bring the concept of so-called fibers to Java. Fibers are lightweight threads that are managed by the Java Virtual Machine (and not the operating system). So far, this functionality is only available in an early access version of an OpenJDK. In the bachelor thesis, simple benchmarks (e.g. UTS, NQueens) are to be implemented with the help of Fibers and the traditional fork/join pool concept. After implementation, the performance of the two variants will be compared and discussed. The measurements are to be carried out via ssh on the high-performance computer at the University of Kassel.
6. evaluation of the usability and performance of GraalVM for APGAS (Bachelor thesis)
GraalVM is a new universal Java virtual machine that can run applications in JavaScript, Python, R and Java, but also in C/C++. The common runtime environment enables the interoperability of the programming languages. GraalVM can also be used to compile Java applications into independent executable files. In this bachelor thesis, the performance-critical sections of existing APGAS benchmarks will be ported to C and then the code will be called with the help of GraalVM. After implementation, the performance of the new variant will be compared with that of the previous pure Java implementation when executed with GraalVM or Oracle JDK and differences will be discussed. The measurements are to be carried out via ssh on the high-performance computer at the University of Kassel.
7. checkpoint/restart at application level for task pools (Master's thesis)
Several variants of fault-tolerant task pools have been developed in the field and implemented in APGAS. What all variants have in common is that they save the task descriptors and previous results of each worker in the working memory of another worker. In the event of a worker failure, the data is restored by another worker at runtime. In this master's thesis, an existing scheme is to be modified so that it is more closely aligned with the known technique of application-based checkpoint/restart. In particular, the relevant data must be written to a distributed file system (instead of the working memory). This must be designed as efficiently as possible and the backups must always be kept up-to-date and consistent. These backups should then be used to continue the application: a) automatically in the event of an error, or b) at a later point in time, for example if the duration of the calculation exceeds the maximum time limit of the cluster. A new start routine must be implemented within APGAS for the restart. After implementation, performance and correctness should be analyzed. The measurements are to be carried out via ssh on the high-performance computer at the University of Kassel.
8. fault tolerance for task pools with randomized workstealing (Master thesis)
The fault tolerance schemes developed in the field have so far only been tested for task pools that implement workstealing using the so-called lifeline scheme. Although this is a sophisticated method for load balancing, task pools based on a simpler randomized workstealing scheme are more common. In the master thesis, one to three of the fault tolerance schemes for distributed task pools with randomized workstealing will be re-implemented. This may require adjustments to the algorithms. After consultation with the supervisors, the implementation can be carried out with the help of MPI or the APGAS library. Subsequently, the runtime overheads for fault tolerance are to be measured and compared with previous results regarding the lifeline scheme. The measurements are to be carried out via ssh on the high-performance computer at the University of Kassel.
9. other topics
Further topics may be possible after consultation, for example on program development and/or parallelization of C++ programs from the Center for Environmental System Research at the University of Kassel. These programs deal with the simulation of the effects of climate change, including on land use and the water balance.
You can suggest your own topics, but they must be closely related to research in the field, especially parallel programming.
If you would like to write your thesis in Latex, the Latex template may be helpful.
If you are interested, please contact us, write an e-mail to Prof. Dr. Claudia Fohry or come to our office hours on Tuesdays between 2 and 3 pm.