Logo: to the web site of Uppsala University

uu.sePublications from Uppsala University
Change search
Link to record
Permanent link

Direct link
Publications (6 of 6) Show all publications
Shimchenko, M., Österlund, E. & Wrigstad, T. (2024). Scheduling Garbage Collection for Energy Efficiency on Asymmetric Multicore Processors. The Art, Science, and Engineering of Programming, 8(3), Article ID 10.
Open this publication in new window or tab >>Scheduling Garbage Collection for Energy Efficiency on Asymmetric Multicore Processors
2024 (English)In: The Art, Science, and Engineering of Programming, E-ISSN 2473-7321, Vol. 8, no 3, article id 10Article in journal (Refereed) Published
Abstract [en]

The growing concern for energy efficiency in the Information and Communication Technology (ICT) sector has prompted the exploration of resource management techniques. While hardware architectures, such as single-ISA asymmetric multicore processors (AMP), offer potential energy savings, there is still untapped potential for software optimizations. This paper aims to bridge this gap by investigating the scheduling of garbage collection (GC) activities on a heterogeneous architecture with both performance cores (“p-cores”) and energy cores (“e-cores”) to achieve energy savings.

Our study focuses on the concurrent ZGC collector in the context of Java Virtual Machines (JVM), as the energy aspect is not well studied in the context of latency-sensitive Java workloads. By comparing the energy efficiency, performance, latency, and memory utilization of executing GC on p-cores versus e-cores, we present compelling findings.

We demonstrate that scheduling GC work on e-cores overall leads to approximately 3% energy savings without performance and mean latency degradation while requiring no additional effort from developers. Overall energy reduction can increase to 5.3±0.0225% by tuning the number of e-cores (still not changing the program!).

Our findings highlight the practicality and benefits of scheduling GC on e-cores, showcasing the potential for energy savings in heterogeneous architectures running Java workloads while meeting critical latency requirements. Our research contributes to the ongoing efforts toward achieving a more sustainable and efficient ICT sector.

Place, publisher, year, edition, pages
Aspect-Oriented Software Association, 2024
Keywords
Energy-efficiency, Java, Garbage Collection, Asymmetric multicore processors
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-526870 (URN)10.22152/programming-journal.org/2024/8/10 (DOI)
Funder
Swedish Research Council, 2020-05346Swedish Foundation for Strategic Research, SM19-0059
Available from: 2024-04-19 Created: 2024-04-19 Last updated: 2024-06-28Bibliographically approved
Tavakolisomeh, S., Shimchenko, M., Osterlund, E., Bruno, R., Ferreira, P. & Wrigstad, T. (2023). Heap Size Adjustment with CPU Control. In: Moss, E Bruno, R (Ed.), PROCEEDINGS OF THE 20TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES, MPLR 2023: . Paper presented at 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR), OCT 22, 2023, Cascais, PORTUGAL (pp. 114-128). ASSOC COMPUTING MACHINERY
Open this publication in new window or tab >>Heap Size Adjustment with CPU Control
Show others...
2023 (English)In: PROCEEDINGS OF THE 20TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES, MPLR 2023 / [ed] Moss, E Bruno, R, ASSOC COMPUTING MACHINERY , 2023, p. 114-128Conference paper, Published paper (Refereed)
Abstract [en]

This paper explores automatic heap sizing where developers let the frequency of GC expressed as a target overhead of the application's CPU utilisation, control the size of the heap, as opposed to the other way around. Given enough headroom and spare CPU, a concurrent garbage collector should be able to keep up with the application's allocation rate, and neither the frequency nor duration of GC should impact throughput and latency. Because of the inverse relationship between time spent performing garbage collection and the minimal size of the heap, this enables trading memory for computation and conversely, neutral to an application's performance. We describe our proposal for automatically adjusting the size of a program's heap based on the CPU overhead of GC. We show how our idea can be relatively easily integrated into ZGC, a concurrent collector in OpenJDK, and study the impact of our approach on memory requirements, throughput, latency, and energy.

Place, publisher, year, edition, pages
ASSOC COMPUTING MACHINERY, 2023
Keywords
JVM, Garbage Collection, Heap sizing policy
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-523058 (URN)10.1145/3617651.3622988 (DOI)001142913500011 ()979-8-4007-0380-5 (ISBN)
Conference
20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR), OCT 22, 2023, Cascais, PORTUGAL
Available from: 2024-02-16 Created: 2024-02-16 Last updated: 2024-05-06Bibliographically approved
Shimchenko, M., Popov, M. & Wrigstad, T. (2022). Analysing and Predicting Energy Consumption of Garbage Collectors in OpenJDK. In: Elisa Gonzalez Boix; Tobias Wrigstad (Ed.), MPLR '22: Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes. Paper presented at MPLR '22: 19th International Conference on Managed Programming Languages and Runtimes, Brussels, Belgium, September 14-15, 2022 (pp. 3-15). New York: Association for Computing Machinery (ACM)
Open this publication in new window or tab >>Analysing and Predicting Energy Consumption of Garbage Collectors in OpenJDK
2022 (English)In: MPLR '22: Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes / [ed] Elisa Gonzalez Boix; Tobias Wrigstad, New York: Association for Computing Machinery (ACM), 2022, p. 3-15Conference paper, Published paper (Refereed)
Abstract [en]

Sustainable computing needs energy-efficient software. This paper explores the potential of leveraging the nature of software written in managed languages: increasing energy efficiency by changing a program’s memory management strategy without altering a single line of code. To this end, we perform comprehensive energy profiling of 35 Java applications across four benchmarks. In many cases, we find that it is possible to save energy by replacing the default G1 collector with another without sacrificing performance. Furthermore, potential energy savings can be even higher if performance regressions are permitted. Inspired by these results, we study what the most energy-efficient GCs are to help developers prune the search space for energy profiling at a low cost. Finally, we show that machine learning can be successfully applied to the problem of finding an energy-efficient GC configuration for an application, reducing the cost even further.

Place, publisher, year, edition, pages
New York: Association for Computing Machinery (ACM), 2022
Keywords
Energy, GC, Java, Machine Learning
National Category
Computer Sciences
Research subject
Computer Science
Identifiers
urn:nbn:se:uu:diva-490859 (URN)10.1145/3546918.3546925 (DOI)978-1-4503-9696-7 (ISBN)
Conference
MPLR '22: 19th International Conference on Managed Programming Languages and Runtimes, Brussels, Belgium, September 14-15, 2022
Projects
JVMReCo
Funder
Swedish Foundation for Strategic Research, SM19-0059
Available from: 2022-12-15 Created: 2022-12-15 Last updated: 2024-05-06Bibliographically approved
Shimchenko, M., Titos-Gil, R., Fernández-Pascual, R., Acacio, M. E., Kaxiras, S., Ros, A. & Jimborean, A. (2022). Analysing software prefetching opportunities in hardware transactional memory. Journal of Supercomputing, 78(1), 919-944
Open this publication in new window or tab >>Analysing software prefetching opportunities in hardware transactional memory
Show others...
2022 (English)In: Journal of Supercomputing, ISSN 0920-8542, E-ISSN 1573-0484, Vol. 78, no 1, p. 919-944Article in journal (Refereed) Published
Abstract [en]

Hardware transactional memory emerged to make parallel programming more accessible. However, the performance pitfall of this technique is squashing speculatively executed instructions and re-executing them in case of aborts, ultimately resorting to serialization in case of repeated conflicts. A significant fraction of aborts occurs due to conflicts (concurrent reads and writes to the same memory location performed by different threads). Our proposal aims to reduce conflict aborts by reducing the window of time during which transactional regions can suffer conflicts. We achieve this by using software prefetching instructions inserted automatically at compile-time. Through these prefetch instructions, we intend to bring the necessary data for each transaction from the main memory to the cache before the transaction itself starts to execute, thus converting the otherwise long latency cache misses into hits during the execution of the transaction. The obtained results show that our approach decreases the number of aborts by 30% on average and improves performance by up to 19% and 10% for two out of the eight evaluated benchmarks. We provide insights into when our technique is beneficial given certain characteristics of the transactional regions, the advantages and disadvantages of our approach, and finally, discuss potential solutions to overcome some of its limitations.

Place, publisher, year, edition, pages
Springer NatureSpringer Nature, 2022
Keywords
Hardware transactional memory, Parallel programming, Compiler, Software prefetching
National Category
Computer Engineering Computer Sciences
Identifiers
urn:nbn:se:uu:diva-468639 (URN)10.1007/s11227-021-03897-z (DOI)000657204400008 ()
Funder
EU, Horizon 2020, 819134Swedish Research Council, 2016-05086European Commission, RTI2018-098156B-C53
Available from: 2022-03-01 Created: 2022-03-01 Last updated: 2024-01-15Bibliographically approved
Shimchenko, M., Österlund, E. & Wrigstad, T.Monk: opportunistic scheduling to delay horizontal scaling.
Open this publication in new window or tab >>Monk: opportunistic scheduling to delay horizontal scaling
(English)Manuscript (preprint) (Other academic)
Abstract [en]

The goal of this work is to explore the opportunistic scheduling of a fully concurrent GC, namely ZGC. The main idea is that scheduling GC threads while the CPU is idle allows for upscaling server workloads at a higher average CPU utilization since latency starts degrading at a higher CPU utilization. We showed that opportunistic scheduling can allow SPECjbb2015 to process up to 15% more requests under 25ms. 

Keywords
JVM, Garbage Collection, OS scheduling
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-527461 (URN)
Available from: 2024-05-02 Created: 2024-05-02 Last updated: 2024-05-06
Shimchenko, M., Österlund, E. & Wrigstad, T.Monk: ZGC opportunistic scheduling to delay horizontal scaling.
Open this publication in new window or tab >>Monk: ZGC opportunistic scheduling to delay horizontal scaling
(English)Manuscript (preprint) (Other academic)
Abstract [en]

The goal of this work is to explore the opportunistic scheduling of a fully concurrent GC, namely ZGC. The main idea is that scheduling GC threads while the CPU is idle allows for upscaling server workloads at a higher average CPU utilization since latency starts degrading at a higher CPU utilization. We showed that opportunistic scheduling can allow SPECjbb2015 to process up to 15% more requests under 25ms. 

Keywords
JVM, Garbage Collection, OS scheduling
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-526872 (URN)
Available from: 2024-04-19 Created: 2024-04-19 Last updated: 2024-04-22
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0002-0701-8540

Search in DiVA

Show all publications