Design, implementation, and application of GPU-based Java bytecode interpreters
-
Published:2019-10-10
Issue:OOPSLA
Volume:3
Page:1-28
-
ISSN:2475-1421
-
Container-title:Proceedings of the ACM on Programming Languages
-
language:en
-
Short-container-title:Proc. ACM Program. Lang.
Author:
Celik Ahmet1,
Nie Pengyu1,
Rossbach Christopher J.2,
Gligoric Milos1
Affiliation:
1. University of Texas at Austin, USA
2. University of Texas at Austin, USA / VMware, USA
Abstract
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.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference65 articles.
1. Boosting the Priority of Garbage: Scheduling Collection on Heterogeneous Multicore Processors;Akram Shoaib;Transactions on Architecture and Code Optimization,2016
2. Amazon. 2018. Amazon EC2 Elastic GPUs. https://aws.amazon.com/ec2/elastic-gpus/ . Amazon. 2018. Amazon EC2 Elastic GPUs. https://aws.amazon.com/ec2/elastic-gpus/ .
3. JPF–SE: A Symbolic Execution Extension to Java PathFinder
4. MASK
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Programming and execution models for parallel bounded exhaustive testing;Proceedings of the ACM on Programming Languages;2021-10-20
2. Running parallel bytecode interpreters on heterogeneous hardware;Conference Companion of the 4th International Conference on Art, Science, and Engineering of Programming;2020-03-23