Design, implementation, and application of GPU-based Java bytecode interpreters

Design, implementation, and application of GPU-based Java bytecode interpreters
复制标题

基于GPU的Java字节码解释器的设计、实现与应用

DOI:
10.1145/3360603
复制
发表时间:
2019
影响因子:
--
通讯作者:
Gligoric, Milos
Gligoric, Milos
中科院分区:
--
文献类型:
--
作者:
Celik, Ahmet;Nie, Pengyu;Rossbach, Christopher J.;Gligoric, Milos

文献摘要

参考文献

被引文献

相似文献

我们提出了GVM的设计和实现,第一个完全在GPU上执行Java字节码的系统。GVM是执行大量短期任务的应用程序的理想选择,这些任务共享其代码库的很大一部分,并且具有相似的执行时间。GVM使用新的算法、调度和数据布局技术来适应GPU的大规模并行编程和执行模型。我们应用GVM来生成和执行Java项目的测试。首先,我们实现了基于序列的测试生成GVM的顶部和设计新的算法,以避免冗余的测试序列。其次,我们使用GVM执行随机生成的测试用例。我们评估GVM通过比较它与两个现有的Java字节码解释器(Oracle JVM和Java Pathfinder),以及与Oracle JVM的即时(JIT)编译器,它已经设计和优化了二十多年。我们的评估表明,基于序列的测试生成GVM优于Java探路者和Oracle JVM解释器。此外,我们的研究结果表明,GVM执行以及运行我们的并行序列为基础的测试生成算法,使用JVM与JIT与许多CPU线程。此外,我们对来自开源项目的几个类的评估表明,在GVM上执行随机生成的测试优于在JVM解释器和JIT JVM上的顺序执行。
We present the design and implementation of GVM, the first system for executing Java bytecode entirely on GPUs. GVM is ideal for applications that execute a large number of short-living tasks, which share a significant fraction of their codebase and have similar execution time. GVM uses novel algorithms, scheduling, and data layout techniques to adapt to the massively parallel programming and execution model of GPUs. We apply GVM to generate and execute tests for Java projects. First, we implement a sequence-based test generation on top of GVM and design novel algorithms to avoid redundant test sequences. Second, we use GVM to execute randomly generated test cases. We evaluate GVM by comparing it with two existing Java bytecode interpreters (Oracle JVM and Java Pathfinder), as well as with the Oracle JVM with just-in-time (JIT) compiler, which has been engineered and optimized for over twenty years. Our evaluation shows that sequence-based test generation on GVM outperforms both Java Pathfinder and Oracle JVM interpreter. Additionally, our results show that GVM performs as well as running our parallel sequence-based test generation algorithm using JVM with JIT with many CPU threads. Furthermore, our evaluation on several classes from open-source projects shows that executing randomly generated tests on GVM outperforms sequential execution on JVM interpreter and JVM with JIT.
DOI: 10.1145/2568225.2568300
发表时间: 2014-05
期刊: Proceedings of the 36th International Conference on Software Engineering
影响因子: --
作者:
H. V. Nguyen;Christian Kästner;T. Nguyen
通讯作者: H. V. Nguyen;Christian Kästner;T. Nguyen
DOI: 10.1145/2517349.2522715
发表时间: 2013-11
期刊: Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
影响因子: --
作者:
C. Rossbach;Yuan Yu;J. Currey;Jean-Phillipe Martin;D. Fetterly
通讯作者: C. Rossbach;Yuan Yu;J. Currey;Jean-Phillipe Martin;D. Fetterly
GPU 上的有限详尽测试输入生成
DOI: 10.1145/3133918
发表时间: 2017
影响因子: --
作者:
Celik, Ahmet;Pai, Sreepathi;Khurshid, Sarfraz;Gligoric, Milos
通讯作者: Gligoric, Milos
DOI: --
发表时间: 2014-10
期刊: --
影响因子: --
作者:
N. Farooqui;Christopher J. Rossbach;Yuan Yu;K. Schwan
通讯作者: N. Farooqui;Christopher J. Rossbach;Yuan Yu;K. Schwan
DOI: 10.1145/3173162.3173169
发表时间: 2018-03
期刊: Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子: --
作者:
Rachata Ausavarungnirun;Vance Miller;Joshua Landgraf;Saugata Ghose;Jayneel Gandhi;Adwait Jog;C. Rossbach;O. Mutlu
通讯作者: Rachata Ausavarungnirun;Vance Miller;Joshua Landgraf;Saugata Ghose;Jayneel Gandhi;Adwait Jog;C. Rossbach;O. Mutlu