Parallel java code generation for layer-unified coarse grain task parallel processing

Akimasa Yoshida, Yuki Ochi, Nagatsugu Yamanouchi

Research output: Contribution to journalArticle

1 Citation (Scopus)

Abstract

Multicore processors are widely used for various types of computers. In order to achieve high-performance on such multicore systems, it is necessary to extract coarse grain task parallelism from a target program in addition to loop parallelism. Regarding the development of parallel programs, Java or a Java-extension language represents an attractive choice recently, thanks to its performance improvement as well as its platform independence. Therefore, this paper proposes a parallel Java code generation scheme that realizes coarse grain task parallel processing with layer-unified execution control. In this parallel processing, coarse grain tasks of all layers are collectively managed through a dynamic scheduler. In addition, we have developed a prototype parallelizing compiler for Java programs with directives. In performance evaluations, the compiler-generated parallel Java code was confirmed to attain high performance. Concretely, we obtained 7.82 times faster speed-up for the Jacobi program, 7.38 times faster speed-up for the Turb3d program, 6.54 times faster speed-up for the Crypt program, and 6.15 times faster speed-up for the MolDyn program on eight cores of Xeon E5-2660.

Original languageEnglish
Pages (from-to)168-178
Number of pages11
JournalIPSJ Online Transactions
Volume7
Issue number2014
DOIs
Publication statusPublished - 1 Jan 2014

Keywords

  • Coarse grain parallelization
  • Compiler
  • Dynamic scheduling
  • Java
  • Multicore

Cite this