Hosting OpenMP Programs on Java Virtual MachinesCitation formats

  • Authors:
  • Swapnil Gaikwad
  • Andrew Nisbet
  • Mikel Luján

Standard

Hosting OpenMP Programs on Java Virtual Machines. / Gaikwad, Swapnil; Nisbet, Andrew; Luján, Mikel.

Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19). Association for Computing Machinery, 2019.

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Harvard

Gaikwad, S, Nisbet, A & Luján, M 2019, Hosting OpenMP Programs on Java Virtual Machines. in Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19). Association for Computing Machinery. https://doi.org/10.1145/3357390.3361031

APA

Gaikwad, S., Nisbet, A., & Luján, M. (2019). Hosting OpenMP Programs on Java Virtual Machines. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19) Association for Computing Machinery. https://doi.org/10.1145/3357390.3361031

Vancouver

Gaikwad S, Nisbet A, Luján M. Hosting OpenMP Programs on Java Virtual Machines. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19). Association for Computing Machinery. 2019 https://doi.org/10.1145/3357390.3361031

Author

Gaikwad, Swapnil ; Nisbet, Andrew ; Luján, Mikel. / Hosting OpenMP Programs on Java Virtual Machines. Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19). Association for Computing Machinery, 2019.

Bibtex

@inproceedings{0e32eba79bb14f86a3f204411f7ea5c2,
title = "Hosting OpenMP Programs on Java Virtual Machines",
abstract = "To leverage existing virtual machine infrastructures is attractive for programming language implementors because competitive runtime performance may be achieved with a reduced effort. For example, the Truffle framework has en- abled Ruby (TruffleRuby), and C (Sulong) guest language implementations to be hosted on a Java Virtual Machine (JVM). In this paper, we present Sulong-OpenMP, the first Truffle-based implementation to support parallel programs written in C/C++ and OpenMP. Our implementation adds OpenMP support to Sulong that executes LLVM Intermediate Representation (LLVM IR) for C/C++ programs on a JVM.We outline the challenges faced in supporting OpenMP execution semantics, and the current limitations of Sulong-OpenMP. The geometric mean overhead of 1 thread Sulong- OpenMP compared to sequential Sulong execution was 2.6% for the NAS Parallel Benchmark suite, at peak runtime pe formance. Although this paper focuses on the correctness of our implementation concerning the OpenMP memory model, we also highlight the diminishing performance gap between the native execution with clang -O2 and our Sulong-OpenMP as only 1.2x in the best case using 4 OpenMP threads.",
author = "Swapnil Gaikwad and Andrew Nisbet and Mikel Luj{\'a}n",
year = "2019",
month = oct,
day = "21",
doi = "10.1145/3357390.3361031",
language = "English",
booktitle = "Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19)",
publisher = "Association for Computing Machinery",
address = "United States",

}

RIS

TY - GEN

T1 - Hosting OpenMP Programs on Java Virtual Machines

AU - Gaikwad, Swapnil

AU - Nisbet, Andrew

AU - Luján, Mikel

PY - 2019/10/21

Y1 - 2019/10/21

N2 - To leverage existing virtual machine infrastructures is attractive for programming language implementors because competitive runtime performance may be achieved with a reduced effort. For example, the Truffle framework has en- abled Ruby (TruffleRuby), and C (Sulong) guest language implementations to be hosted on a Java Virtual Machine (JVM). In this paper, we present Sulong-OpenMP, the first Truffle-based implementation to support parallel programs written in C/C++ and OpenMP. Our implementation adds OpenMP support to Sulong that executes LLVM Intermediate Representation (LLVM IR) for C/C++ programs on a JVM.We outline the challenges faced in supporting OpenMP execution semantics, and the current limitations of Sulong-OpenMP. The geometric mean overhead of 1 thread Sulong- OpenMP compared to sequential Sulong execution was 2.6% for the NAS Parallel Benchmark suite, at peak runtime pe formance. Although this paper focuses on the correctness of our implementation concerning the OpenMP memory model, we also highlight the diminishing performance gap between the native execution with clang -O2 and our Sulong-OpenMP as only 1.2x in the best case using 4 OpenMP threads.

AB - To leverage existing virtual machine infrastructures is attractive for programming language implementors because competitive runtime performance may be achieved with a reduced effort. For example, the Truffle framework has en- abled Ruby (TruffleRuby), and C (Sulong) guest language implementations to be hosted on a Java Virtual Machine (JVM). In this paper, we present Sulong-OpenMP, the first Truffle-based implementation to support parallel programs written in C/C++ and OpenMP. Our implementation adds OpenMP support to Sulong that executes LLVM Intermediate Representation (LLVM IR) for C/C++ programs on a JVM.We outline the challenges faced in supporting OpenMP execution semantics, and the current limitations of Sulong-OpenMP. The geometric mean overhead of 1 thread Sulong- OpenMP compared to sequential Sulong execution was 2.6% for the NAS Parallel Benchmark suite, at peak runtime pe formance. Although this paper focuses on the correctness of our implementation concerning the OpenMP memory model, we also highlight the diminishing performance gap between the native execution with clang -O2 and our Sulong-OpenMP as only 1.2x in the best case using 4 OpenMP threads.

U2 - 10.1145/3357390.3361031

DO - 10.1145/3357390.3361031

M3 - Conference contribution

BT - Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR '19)

PB - Association for Computing Machinery

ER -