ABSTRACT
Cloud platforms allow applications to meet fluctuating levels of demand through automatic horizontal scaling. These deployment models are characterized by short-lived applications running in resource-constrained environments. This amplifies the overhead of dynamic languages with just-in-time (JIT) compilation. Dynamic-language runtimes suffer from a warmup phase and resource-usage peaks caused by JIT compilation. Offloading compilation jobs to a dedicated server is a possible mitigation for these problems. We propose leveraging remote JIT compilation as a means to enable coordination between the independent instances. By sharing compilation results, aggregating profiles, and adapting the compiler and compilation policy, we strive to improve the peak performance and further reduce the warmup time of these applications. Additionally, an implementation on top of the Truffle framework enables us to bring these benefits to many popular languages.
- 2023. Acme Air Sample and Benchmark. https://github.com/blueperf/acmeair-monolithic-java Google Scholar
- 2023. Spring PetClinic Sample Application. https://github.com/spring-projects/spring-petclinic Google Scholar
- Azul. 2023. Cloud Native Compiler. https://docs.azul.com/cloud_native_compiler/ Google Scholar
- Edd Barrett, Carl Friedrich Bolz-Tereick, Rebecca Killick, Sarah Mount, and Laurence Tratt. 2017. Virtual Machine Warmup Blows Hot and Cold. Proc. ACM Program. Lang., 1, OOPSLA (2017), Article 52, 10, 27 pages. https://doi.org/10.1145/3133876 Google ScholarDigital Library
- Dev Bhattacharya, Kenneth B. Kent, Eric Aubanel, Daniel Heidinga, Peter Shipton, and Aleksandar Micic. 2017. Improving the performance of JVM startup using the shared class cache. In 2017 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM). 1–6. https://doi.org/10.1109/PACRIM.2017.8121911 Google ScholarCross Ref
- IBM Corporation. 2022. Java EE7: DayTrader7 Sample. https://github.com/wasdev/sample.daytrader7 Google Scholar
- Emanuel Ferreira Coutinho, Flávio Rubens de Carvalho Sousa, Paulo Antonio Leal Rego, Danielo Gonçalves Gomes, and José Neuman de Souza. 2014. Elasticity in cloud computing: a survey. Annals of Telecommunications, 70, 7-8 (2014), Nov., 289–309. https://doi.org/10.1007/s12243-014-0450-7 Google ScholarCross Ref
- Alexey Khrabrov, Marius Pirvu, Vijay Sundaresan, and Eyal de Lara. 2022. JITServer: Disaggregated Caching JIT Compiler for the JVM in the Cloud. In 2022 USENIX Annual Technical Conference (USENIX ATC 22). USENIX Association, Carlsbad, CA. 869–884. https://www.usenix.org/conference/atc22/presentation/khrabrov Google Scholar
- Thomas Kotzmann, Christian Wimmer, Hanspeter Mössenböck, Thomas Rodriguez, Kenneth Russell, and David Cox. 2008. Design of the Java HotSpot ™ Client Compiler for Java 6. ACM Trans. Archit. Code Optim., 5, 1 (2008), Article 7, 5, 32 pages. issn:1544-3566 https://doi.org/10.1145/1369396.1370017 Google ScholarDigital Library
- Oracle. 2023. GraalPy. https://github.com/oracle/graalpython Google Scholar
- Oracle. 2023. GraalVM Compiler. https://www.graalvm.org/latest/reference-manual/java/compiler/ Google Scholar
- Oracle. 2023. Native Image. https://www.graalvm.org/latest/reference-manual/native-image/ Google Scholar
- Guilherme Ottoni and Bin Liu. 2021. HHVM Jump-Start: Boosting Both Warmup and Steady-State Performance at Scale. In 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). 340–350. https://doi.org/10.1109/CGO51591.2021.9370314 Google ScholarDigital Library
- Aleksandar Prokopec, Gilles Duboscq, David Leopoldseder, and Thomas Wïrthinger. 2019. An Optimization-Driven Incremental Inline Substitution Algorithm for Just-in-Time Compilers. In 2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). 164–179. https://doi.org/10.1109/CGO.2019.8661171 Google ScholarCross Ref
- Aleksandar Prokopec, Andrea Rosà, David Leopoldseder, Gilles Duboscq, Petr Tůma, Martin Studener, Lubomír Bulej, Yudi Zheng, Alex Villazón, Doug Simon, Thomas Würthinger, and Walter Binder. 2019. Renaissance: Benchmarking Suite for Parallel Applications on the JVM. In Proc. 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 17. https://doi.org/10.1145/3314221.3314637 Google ScholarDigital Library
- Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, and Mario Wolczko. 2013. One VM to Rule Them All. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013). Association for Computing Machinery, New York, NY, USA. 187–204. isbn:9781450324724 https://doi.org/10.1145/2509578.2509581 Google ScholarDigital Library
- Xiaoran Xu, Keith Cooper, Jacob Brock, Yan Zhang, and Handong Ye. 2018. ShareJIT: JIT Code Cache Sharing across Processes and Its Practical Implementation. 2, OOPSLA (2018), Article 124, 10, 23 pages. https://doi.org/10.1145/3276494 Google ScholarDigital Library
Index Terms
- Remote Just-in-Time Compilation for Dynamic Languages
Recommendations
Static and Dynamic Program Compilation by Interpreter Specialization
Interpretation and run-time compilation techniques are increasingly important because they can support heterogeneous architectures, evolving programming languages, and dynamically-loaded code. Interpretation is simple to implement, but yields poor ...
Efficient compilation of Lua for the CLR
SAC '08: Proceedings of the 2008 ACM symposium on Applied computingMicrosoft's Common Language Runtime offers a target environment for compiler writers that provides a managed execution environment and type system, garbage collection, access to OS services, multithreading, and a Just-In-Time compiler. But the CLR uses ...
HW/SW co-designed acceleration of dynamic languages
LCTES '13: Proceedings of the 14th ACM SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systemsDynamic Programming Languages, such as Java, JavaScript, PHP, Perl, Python, Ruby, etc., are dominating languages for pro-gramming the web. HW/SW co-designed virtual machine can significantly accelerate their executions by transparently leveraging ...
Comments