Proceedings of the 14th International Conference on Managed Languages and Runtimes最新文献

筛选
英文 中文
Trace Register Allocation Policies: Compile-time vs. Performance Trade-offs 跟踪寄存器分配策略:编译时与性能权衡
J. Eisl, Stefan Marr, Thomas Würthinger, H. Mössenböck
{"title":"Trace Register Allocation Policies: Compile-time vs. Performance Trade-offs","authors":"J. Eisl, Stefan Marr, Thomas Würthinger, H. Mössenböck","doi":"10.1145/3132190.3132209","DOIUrl":"https://doi.org/10.1145/3132190.3132209","url":null,"abstract":"Register allocation is an integral part of compilation, regardless of whether a compiler aims for fast compilation or optimal code quality. State-of-the-art dynamic compilers often use global register allocation approaches such as linear scan. Recent results suggest that non-global trace-based register allocation approaches can compete with global approaches in terms of allocation quality. Instead of processing the whole compilation unit (i.e., method) at once, a trace-based register allocator divides the problem into linear code segments, called traces. In this work, we present a register allocation framework that can exploit the additional flexibility of traces to select different allocation strategies based on the characteristics of a trace. This provides us with fine-grained control over the trade-off between compile time and peak performance in a just-in-time compiler. Our framework features three allocation strategies: a linear-scan-based approach that achieves good code quality, a single-pass bottom-up strategy that aims for short allocation times, and an allocator for trivial traces. To demonstrate the flexibility of the framework, we select 8 allocation policies and show their impact on compile time and peak performance. This approach can reduce allocation time by 7%--43% at a peak performance penalty of about 1%--11% on average. For systems that do not focus on peak performance, our approach allows to adjust the time spent for register allocation, and therefore the overall compilation time, thus finding the optimal balance between compile time and peak performance according to an application's requirements.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115431114","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Lenient Execution of C on a Java Virtual Machine: or: How I Learned to Stop Worrying and Run the Code C语言在Java虚拟机上的宽松执行:或:我如何学会停止担心并运行代码
Manuel Rigger, Roland Schatz, Matthias Grimmer, H. Mössenböck
{"title":"Lenient Execution of C on a Java Virtual Machine: or: How I Learned to Stop Worrying and Run the Code","authors":"Manuel Rigger, Roland Schatz, Matthias Grimmer, H. Mössenböck","doi":"10.1145/3132190.3132204","DOIUrl":"https://doi.org/10.1145/3132190.3132204","url":null,"abstract":"Most C programs do not conform strictly to the C standard, and often show undefined behaviors, for instance, in the case of signed integer overflow. When compiled by non-optimizing compilers, such programs often behave as the programmer intended. However, optimizing compilers may exploit undefined semantics to achieve more aggressive optimizations, possibly breaking the code in the process. Analysis tools can help to find and fix such issues. Alternatively, a C dialect could be defined in which clear semantics are specified for frequently occurring program patterns with otherwise undefined behaviors. In this paper, we present Lenient C, a C dialect that specifies semantics for behaviors left open for interpretation in the standard. Specifying additional semantics enables programmers to make safe use of otherwise undefined patterns. We demonstrate how we implemented the dialect in Safe Sulong, a C interpreter with a dynamic compiler that runs on the JVM.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123200316","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
DAMMP: A Distributed Actor Model for Mobile Platforms DAMMP:面向移动平台的分布式参与者模型
Arghya Chatterjee, Srđan Milaković, Bing Xue, Zoran Budimlic, Vivek Sarkar
{"title":"DAMMP: A Distributed Actor Model for Mobile Platforms","authors":"Arghya Chatterjee, Srđan Milaković, Bing Xue, Zoran Budimlic, Vivek Sarkar","doi":"10.1145/3132190.3132205","DOIUrl":"https://doi.org/10.1145/3132190.3132205","url":null,"abstract":"While mobile computing has seen a trend towards miniaturization and energy savings for a number of years, the available hardware parallelism in mobile devices has at the same time continued to increase. Overall, mobile devices remain resource constrained on power consumption and thermal dissipation. Aggregating the computing capabilities of multiple mobile devices in a distributed and dynamic setting, opens the possibilities for performance improvements, longer aggregate battery life and novel dynamic and distributed applications. In this paper, we propose a Distributed Actor Model for Mobile Platforms (DAMMP), which includes a) a mobile extension to the actor-based Distributed Selector (DS) programming model, along with a new implementation for mobile Android devices, b) an extension to the DS programming model that enables the programmer to react and adapt to dynamic changes in device availability, c) an adaptive mobile-to-server and mobile-to-mobile computation offloading model and its implementation on the Android platform, and d) creation of a dynamic network of heterogeneous Android devices using both Wi-Fi Soft AP and Wi-Fi Direct's peer to peer (P2P) network. We evaluate the DAMMP framework under ideal thermally-controlled usage conditions to show promising scalability and performance, and analyze the communication overhead of both Wi-Fi and Wi-Fi Direct when used as the communication layer for DAMMP. We also evaluate the impact of adaptive offload on device-level thermal dissipation in more realistic usage scenarios, thereby demonstrating possibilities for thermal control and power management that can be achieved at the application level with a distributed actor model. To the best of our knowledge, this work is the first cross-platform distributed actor/selector runtime system that can span mobile devices and distributed servers.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132034342","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Towards an Efficient Pauseless Java GC with Selective HTM-Based Access Barriers 用选择性的基于html的访问屏障实现高效的暂停Java GC
Maria Carpen-Amarie, Y. Hayduk, P. Felber, C. Fetzer, Gaël Thomas, D. Dice
{"title":"Towards an Efficient Pauseless Java GC with Selective HTM-Based Access Barriers","authors":"Maria Carpen-Amarie, Y. Hayduk, P. Felber, C. Fetzer, Gaël Thomas, D. Dice","doi":"10.1145/3132190.3132208","DOIUrl":"https://doi.org/10.1145/3132190.3132208","url":null,"abstract":"The garbage collector (GC) is a critical component of any managed runtime environment (MRE), such as the Java virtual machine. While the main goal of the GC is to simplify and automate memory management, it may have a negative impact on the application performance, especially on multi-core systems. This is typically due to stop-the-world pauses, i.e., intervals for which the application threads are blocked during the collection. Existing approaches to concurrent GCs allow the application threads to perform at the same time as the GC at the expense of throughput and simplicity. In this paper we build upon an existing pauseless transactional GC algorithm and design an important optimization that would significantly increase its throughput. More precisely, we devise selective access barriers, that define multiple paths based on the state of the garbage collector. Preliminary evaluation of the selective barriers shows up to 93% improvement over the initial transactional barriers in the worst case scenario. We estimate the performance of a pauseless GC having selective transactional barriers and find it to be on par with Java's concurrent collector.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123345964","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Querying Invisible Objects: Supporting Data-Driven, Privacy-Preserving Distributed Applications 查询不可见对象:支持数据驱动、保护隐私的分布式应用
Yin Liu, Z. Song, E. Tilevich
{"title":"Querying Invisible Objects: Supporting Data-Driven, Privacy-Preserving Distributed Applications","authors":"Yin Liu, Z. Song, E. Tilevich","doi":"10.1145/3132190.3132206","DOIUrl":"https://doi.org/10.1145/3132190.3132206","url":null,"abstract":"When transferring sensitive data to a non-trusted party, end-users require that the data be kept private. Mobile and IoT application developers want to leverage the sensitive data to provide better user experience and intelligent services. Unfortunately, existing programming abstractions make it impossible to reconcile these two seemingly conflicting objectives. In this paper, we present a novel programming mechanism for distributed managed execution environments that hides sensitive user data, while enabling developers to build powerful and intelligent applications, driven by the properties of the sensitive data. Specifically, the sensitive data is never revealed to clients, being protected by the runtime system. Our abstractions provide declarative and configurable data query interfaces, enforced by a lightweight distributed runtime system. Developers define when and how clients can query the sensitive data's properties (i.e., how long the data remains accessible, how many times its properties can be queried, which data query methods apply, etc.). Based on our evaluation, we argue that integrating our novel mechanism with the Java Virtual Machine (JVM) can address some of the most pertinent privacy problems of IoT and mobile applications.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125838331","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Sista: Saving Optimized Code in Snapshots for Fast Start-Up Sista:在快照中保存优化的代码以实现快速启动
Clément Béra, E. Miranda, T. Felgentreff, M. Denker, Stéphane Ducasse
{"title":"Sista: Saving Optimized Code in Snapshots for Fast Start-Up","authors":"Clément Béra, E. Miranda, T. Felgentreff, M. Denker, Stéphane Ducasse","doi":"10.1145/3132190.3132201","DOIUrl":"https://doi.org/10.1145/3132190.3132201","url":null,"abstract":"Modern virtual machines for object-oriented languages such as Java HotSpot, Javascript V8 or Python PyPy reach high performance through just-in-time compilation techniques, involving on-the-fly optimization and deoptimization of the executed code. These techniques require a warm-up time for the virtual machine to collect information about the code it executes to be able to generate highly optimized code. This warm-up time required before reaching peak performance can be considerable and problematic. In this paper, we propose an approach, Sista (Speculative Inlining SmallTalk Architecture) to persist optimized code in a platform-independent representation as part of a snapshot. After explaining the overall approach, we show on a large set of benchmarks that the Sista virtual machine can reach peak performance almost immediately after start-up when using a snapshot where optimized code was persisted.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122342593","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Applying Optimizations for Dynamically-typed Languages to Java 将动态类型语言的优化应用于Java
Matthias Grimmer, Stefan Marr, Mario Kahlhofer, Christian Wimmer, Thomas Würthinger, H. Mössenböck
{"title":"Applying Optimizations for Dynamically-typed Languages to Java","authors":"Matthias Grimmer, Stefan Marr, Mario Kahlhofer, Christian Wimmer, Thomas Würthinger, H. Mössenböck","doi":"10.1145/3132190.3132202","DOIUrl":"https://doi.org/10.1145/3132190.3132202","url":null,"abstract":"While Java is a statically-typed language, some of its features make it behave like a dynamically-typed language at run time. This includes Java's boxing of primitive values as well as generics, which rely on type erasure. This paper investigates how runtime technology for dynamically-typed languages such as JavaScript and Python can be used for Java bytecode. Using optimistic optimizations, we specialize bytecode instructions that access references in such a way, that they can handle primitive data directly and also specialize data structures in order to avoid boxing for primitive types. Our evaluation shows that these optimizations can be successfully applied to a statically-typed language such as Java and can also improve performance significantly. With this approach, we get an efficient implementation of Java's generics, avoid changes to the Java language, and maintain backwards compatibility, allowing existing code to benefit from our optimization transparently.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"94 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123708441","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Introducing Scala-like function types into Java-TX 在Java-TX中引入类似scala的函数类型
Martin Plümicke, Andreas Stadelmeier
{"title":"Introducing Scala-like function types into Java-TX","authors":"Martin Plümicke, Andreas Stadelmeier","doi":"10.1145/3132190.3132203","DOIUrl":"https://doi.org/10.1145/3132190.3132203","url":null,"abstract":"This paper considers the realisation of lambda expressions in Java 8 on the basis of a global type inference algorithm, which we have introduced in Java-TX. We demonstrate that the Java 8 approach has indeed some benefits but also a number of drawbacks. In order to eliminate the drawbacks, we take into consideration the approaches in a former experimental Java version (strawman approach) and in Scala. We show that an integration of these approaches eliminates the drawbacks without losing the benefits of the Java 8 approach. Additionally, we adapt our global type inference algorithm to this extended language.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122152823","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Experiences with Building Domain-Specific Compilation Plugins in Graal 在Graal中构建特定领域编译插件的经验
Colin Barrett, Christos Kotselidis, Foivos S. Zakkak, N. Foutris, M. Luján
{"title":"Experiences with Building Domain-Specific Compilation Plugins in Graal","authors":"Colin Barrett, Christos Kotselidis, Foivos S. Zakkak, N. Foutris, M. Luján","doi":"10.1145/3132190.3132207","DOIUrl":"https://doi.org/10.1145/3132190.3132207","url":null,"abstract":"In this paper, we describe our experiences in co-designing a domain-specific compilation stack. Our motivation stems from the missed optimization opportunities we observed while implementing a computer vision library in Java. To tackle the performance shortcomings, we developed Indigo, a computer vision API co-designed with a compilation plugin for optimizing computer vision applications. Indigo exploits the extensible nature of the Graal compiler which provides invocation plugins, that replace methods with dedicated nodes, and generates machine code compatible with both the Java Virtual Machine (JVM) and the SIMD hardware unit. Our approach improves performance by up to 66.75× when compared to pure Java implementations and by up to 2.75× when compared to the original C++ implementation. These performance improvements are the result of low-level concurrency, idiomatic implementation of algorithms, and by keeping temporary objects in the wider vector unit registers.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125655839","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Integrating Profile Caching into the HotSpot Multi-Tier Compilation System 将配置文件缓存集成到热点多层编译系统中
Z. Majó, T. Hartmann, Marcel Mohler, T. Gross
{"title":"Integrating Profile Caching into the HotSpot Multi-Tier Compilation System","authors":"Z. Majó, T. Hartmann, Marcel Mohler, T. Gross","doi":"10.1145/3132190.3132210","DOIUrl":"https://doi.org/10.1145/3132190.3132210","url":null,"abstract":"The Java®HotSpot Virtual Machine includes a multi-tier compilation system that may invoke a compiler at any time. Lower tiers instrument the program to gather information for the highly optimizing compiler at the top tier, and this compiler bases its optimizations on these profiles. But if the assumptions made by the top-tier compiler are proven wrong (e.g., because the profile does not cover all execution paths), the method is deoptimized: the code generated for the method is discarded and the method is then executed at Tier 0 again. Eventually, after profile information has been gathered, the method is recompiled at the top tier again (this time with less-optimistic assumptions). Users of the system experience such deoptimization cycles (discard, profile, compile) as performance fluctuations and potentially as variations in the system's responsiveness. Unpredictable performance however is problematic in many time-critical environments even if the system is not a hard real-time system. A profile cache captures the profile of earlier executions. When the application is executed again, with a fresh VM, the top tier (highly optimizing) compiler can base its decisions on a profile that reflects prior executions and not just the recent history observed during this run. We report in this paper the design and effectiveness of a profile cache for Java applications which is implemented and evaluated as part of the multi-tier compilation system of the HotSpot Java Virtual Machine in OpenJDK version 9. For a set of benchmarks, profile caching reduces the number of (re)compilations by up to 23%, the number of deoptimizations by up to 90%, and thus improves performance predictability.","PeriodicalId":157584,"journal":{"name":"Proceedings of the 14th International Conference on Managed Languages and Runtimes","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131973658","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信