XJava: Exploiting Parallelism with Object-Oriented Stream Programming

  • Tagung:

    Konferenzartikel 

  • Autoren:

    Frank Otto
    Victor Pankratius
    Walter F. Tichy
     

  • Summary

    This paper presents the XJava compiler for parallel programs. It exploits parallelism based on an object-oriented stream programming paradigm. XJava extends Java with new parallel constructs that do not expose programmers to low-level details of parallel programming on shared memory machines. Tasks define composable parallel activities, and new operators allow an easier expression of parallel patterns, such as pipelines, divide and conquer, or master/worker. We also present an automatic run-time mechanism that extends our previous work to automatically map tasks and parallel statements to threads.We conducted several case studies with an open source desktop search application and a suite of benchmark programs. The results show that XJava reduces the opportunities to introduce synchronization errors. Compared to threaded Java, the amount of code could be reduced by up to 39%. The run-time mechanism helped reduce effort for performance tuning and achieved speedups up to 31.5 on an eight core machine.

  • Jahr:

    2009 

  • Links:

Bibtex

@inproceedings{,
author={Frank Otto, Victor Pankratius, Walter F. Tichy},
title={XJava: Exploiting Parallelism with Object-Oriented Stream Programming},
year=2009,
month=Aug,
booktitle={Proceedings of the 15th International Euro-Par Conference on Parallel Processing},
volume={LNCS 5704},
editor={H. Sips, H.-X. Lin},
url={https://ps.ipd.kit.edu/downloads/ka_2009_xjava_exploiting_parallelism.pdf},
abstract={This paper presents the XJava compiler for parallel programs. It exploits parallelism based on an object-oriented stream programming paradigm. XJava extends Java with new parallel constructs that do not expose programmers to low-level details of parallel programming on shared memory machines. Tasks define composable parallel activities, and new operators allow an easier expression of parallel patterns, such as pipelines, divide and conquer, or master/worker. We also present an automatic run-time mechanism that extends our previous work to automatically map tasks and parallel statements to threads.We conducted several case studies with an open source desktop search application and a suite of benchmark programs. The results show that XJava reduces the opportunities to introduce synchronization errors. Compared to threaded Java, the amount of code could be reduced by up to 39%. The run-time mechanism helped reduce effort for performance tuning and achieved speedups up to 31.5 on an eight core machine.},
pages={875--886},