Integration of Task-Parallelism into the JaMP-Framework

Student:Benjamin Röder
Title:Integration of Task-Parallelism into the JaMP-Framework
Type:bachelor thesis
Advisors:Dotzler, G.; Philippsen, M.
State:submitted on September 8, 2015


JaMP is an implementation of the well-known OpenMP standard adapted to Java. JaMP currently supports all of OpenMP 2.0 with partial support for 3.0 features. The current implementation is pure Java and based on the Eclipse Java Compiler.


The current JaMP version implements the data parallel features of OpenMP 2.0. It is the goal of this project to add the task parallel features of OpenMP 3.1 to JaMP. For familiarization, the first milestone of the project is to change the current Eclipse Java Compiler version used in JaMP to the most recent one. To define the best integration of the task features into the current framework is the next step of the thesis. The challenge of the integration is the occurring nested parallelism. It is possible to declare tasks inside other tasks and also to declare tasks inside parallel for loops. It is part of the thesis to develop a efficient scheduling for this problem. The third step is the evaluation of how to use the classes of the Java 1.7 concurrent package (e.g. ExecutorService, ForkJoinPool) efficiently in the framework. The performance of the different possibilities shall be measured with standard benchmarks (e.g. the Java Grande Benchmarks, EPCC OpenMP Microbenchmarks 3.0).


  • Adaption of the JaMP to the newest Eclipse Java Compiler
  • Implementation of the task features in JaMP
  • Evaluation of the integration of the Java concurrent Package
  • Porting of the EPCC OpenMP Microbenchmarks 3.0 to Java
  • Benchmarking of the new JaMP features
  • Write the thesis


watermark seal