[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3426182.3426189acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

You can’t hide you can’t run: a performance assessment of managed applications on a NUMA machine

Published: 04 November 2020 Publication History

Abstract

The ever-growing demand for more memory capacity from applications has always been a challenging factor in computer architecture. The advent of the Non Unified Memory Access (NUMA) architecture has achieved to work around the physical constraints of a single processor by providing more system memory using pools of processors, each with their own memory elements, but with variable access times. However, the efficient exploitation of such computing systems is a non-trivial task for software engineers. We have observed that the performance of more than half of the applications picked from two distinct benchmark suites is negatively affected when running on a NUMA machine, in the absence of manual tuning. This finding motivated us to develop a new profiling tool, so called PerfUtil, to study, characterize and better understand why those benchmarks have sub-optimal performance on NUMA machines. PerfUtil's effectiveness is based on its ability to track numerous events throughout the system at the managed runtime system level, that, ultimately, assists in demystifying NUMA peculiarities and accurately characterize managed applications profiles.

References

[1]
Shoaib Akram, Jennifer B. Sartor, Kathryn S. McKinley, and Lieven Eeckhout. 2018. Write-Rationing Garbage Collection for Hybrid Memories. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (Philadelphia, PA, USA) ( PLDI 2018 ). Association for Computing Machinery, New York, NY, USA, 62-77. https://doi.org/10.1145/3192366.3192392
[2]
AMD. 2019. HyperTransport Consortium. https://www.hypertransport.org
[3]
Stephen M. Blackburn, Robin Garner, Chris Hofmann, Asjad M. Khang, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (Portland, Oregon, USA) ( OOPSLA '06). Association for Computing Machinery, New York, NY, USA, 169-190. https://doi.org/10.1145/1167473.1167488
[4]
Sergey Blagodurov, Sergey Zhuravlev, Mohammad Dashti, and Alexandra Fedorova. 2011. A Case for NUMA-Aware Contention Management on Multicore Systems. In Proceedings of the 2011 USENIX Conference on USENIX Annual Technical Conference (Portland, OR) (USENIXATC'11). USENIX Association, USA, 1.
[5]
Rodrigo Bruno and Paulo Ferreira. 2018. A study on garbage collection algorithms for big data environments. Comput. Surveys 51, 1 ( 2018 ). https://doi.org/10.1145/ 3156818
[6]
Rodrigo Bruno, Duarte Patricio, José Simão, Luis Veiga, and Paulo Ferreira. 2019. Runtime Object Lifetime Profiler for Latency Sensitive Big Data Applications. In Proceedings of the Fourteenth EuroSys Conference 2019 (Dresden, Germany) (EuroSys '19). Association for Computing Machinery, New York, NY, USA, Article 28, 16 pages. https://doi.org/10.1145/3302424.3303988
[7]
Jonathan Corbet. 2012. AutoNUMA: the other approach to NUMA scheduling. https://lwn.net/Articles/488709/
[8]
Jonathan Corbet. 2012. Toward better NUMA scheduling. https://lwn.net/ Articles/486858/
[9]
Jonathan Corbet. 2013. NUMA scheduling progress. https://lwn.net/Articles/ 568870/
[10]
Intel Corporation. 2012. Intel ® Xeon ® Processor E5-2600 Product Family Uncore Performance Monitoring Guide. March ( 2012 ), 1-136.
[11]
Mohammad Dashti, Alexandra Fedorova, Justin Funston, Fabien Gaud, Renaud Lachaize, Baptiste Lepers, Vivien Quema, and Mark Roth. 2013. Trafic Management: A Holistic Approach to Memory Placement on NUMA Systems. In Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (Houston, Texas, USA) ( ASPLOS '13). Association for Computing Machinery, New York, NY, USA, 381-394. https://doi.org/10.1145/2451116.2451157
[12]
Lokesh Gidra, Gaël Thomas, Julien Sopena, and Marc Shapiro. 2011. Assessing the Scalability of Garbage Collectors on Many Cores. In Proceedings of the 6th Workshop on Programming Languages and Operating Systems (Cascais, Portugal) (PLOS '11). Association for Computing Machinery, New York, NY, USA, Article 7, 5 pages. https://doi.org/10.1145/2039239.2039249
[13]
Lokesh Gidra, Gaël Thomas, Julien Sopena, and Marc Shapiro. 2013. A Study of the Scalability of Stop-the-world Garbage Collectors on Multicores. Asplos ( 2013 ), 229-240. https://doi.org/10.1145/2451116.2451142
[14]
Lokesh Gidra, Gaël Thomas, Julien Sopena, Marc Shapiro, and Nhan Nguyen. 2015. NumaGiC. Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems-ASPLOS '15 ( 2015 ), 661-673. https://doi.org/10.1145/2694344.2694361
[15]
JR Goodman and HHJ Hum. 2009. MESIF: A Two-Hop Cache Coherency Protocol for Point-to-Point Interconnects ( 2009 ). Researchspace.Auckland.Ac. Nz ( 2009 ). https://researchspace.auckland.ac.nz/bitstream/handle/2292/11593/ MESIF-2004.pdf?sequence= 7
[16]
Intel. 2020. Intel QuickPath Interconnect: Maximizing multicore processor performance. https://www.intel.com/content/www/us/en/io/quickpath-technology/ quickpath-technology-general.html
[17]
Tomas Kalibera, Matthew Mole, Richard Jones, and Jan Vitek. 2012. A Black-Box Approach to Understanding Concurrency in DaCapo. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (Tucson, Arizona, USA) ( OOPSLA '12). Association for Computing Machinery, New York, NY, USA, 335-354. https://doi.org/10.1145/2384616.2384641
[18]
Martin Karlsson, Kevin E Moore, Erik Hagersten, and David A Wood. 2003. Memory system behavior of Java-based middleware. In The Ninth International Symposium on High-Performance Computer Architecture, 2003. HPCA-9 2003. Proceedings. IEEE, 217-228.
[19]
Andi Kleen. 2017. perf events (node-loads, node-load-misses,...). https://www. spinics.net/lists/linux-perf-users/msg03351.html
[20]
Christos Kotselidis, James Clarkson, Andrey Rodchenko, Andy Nisbet, John Mawer, and Mikel Luján. 2017. Heterogeneous Managed Runtime Systems: A Computer Vision Case Study. In Proceedings of the 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (Xi'an, China) (VEE '17). Association for Computing Machinery, New York, NY, USA, 74-82. https: //doi.org/10.1145/3050748.3050764
[21]
Philipp Lengauer, Verena Bitto, and Hanspeter Mössenböck. 2015. Accurate and Eficient Object Tracing for Java Applications. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering (Austin, Texas, USA) ( ICPE '15). Association for Computing Machinery, New York, NY, USA, 51-62. https://doi.org/10.1145/2668930.2688037
[22]
Philipp Lengauer, Verena Bitto, Hanspeter Mössenböck, and Markus Weninger. 2017. A Comprehensive Java Benchmark Study on Memory and Garbage Collection Behavior of DaCapo, DaCapo Scala, and SPECjvm2008. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering (L'Aquila, Italy) ( ICPE '17). Association for Computing Machinery, New York, NY, USA, 3-14. https://doi.org/10.1145/3030207.3030211
[23]
Zoltan Majo and Thomas R. Gross. 2011. Memory Management in NUMA Multicore Systems: Trapped between Cache Contention and Interconnect Overhead. In Proceedings of the International Symposium on Memory Management (San Jose, California, USA) ( ISMM '11). Association for Computing Machinery, New York, NY, USA, 11-20. https://doi.org/10.1145/1993478.1993481
[24]
Morris Marden. 2001. An Architectural Evaluation of Java TPC-W. In Proceedings of the 7th International Symposium on High-Performance Computer Architecture (HPCA '01). IEEE Computer Society, USA, 229.
[25]
Duarte Patrício, Rodrigo Bruno, José Simão, Paulo Ferreira, and Luís Veiga. 2017. Locality-aware GC optimisations for big data workloads. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), Vol. 10574 LNCS. 50-67. https://doi.org/10.1007/ 978-3-319-69459-7_4
[26]
Maria Patrou, Kenneth B. Kent, Gerhard W. Dueck, Charlie Gracie, and Aleksandar Micic. 2018. NUMA awareness: Improving thread and memory management. Proceedings-44th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2018 ( 2018 ), 119-123. https://doi.org/10.1109/SEAA. 2018. 00028
[27]
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 Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (Phoenix, AZ, USA) ( PLDI 2019 ). Association for Computing Machinery, New York, NY, USA, 31-47. https://doi.org/10.1145/3314221.3314637
[28]
Eduardo Rosales, Andrea Rosà, and Walter Binder. 2020. FJProf: Profiling Fork/Join Applications on the Java Virtual Machine. In Proceedings of the 13th EAI International Conference on Performance Evaluation Methodologies and Tools (Tsukuba, Japan) (VALUETOOLS '20). Association for Computing Machinery, New York, NY, USA, 128-135. https://doi.org/10.1145/3388831.3388851
[29]
Luiz De Rose, Luiz De Rose, Ying Zhang, Ying Zhang, Daniel A. Reed, and Daniel A. Reed. 1998. SvPablo: A Multi-Language Performance Analysis System. In In 10th International Conference on Performance Tools. 352-355.
[30]
EJ Technologies. [n.d.]. Java Profiler-JProfiler. https://www.ej-technologies. com/products/jprofiler/overview.html
[31]
Perf Wiki. 2006-2020. perf: Linux profiling with performance counters. https: //perf.wiki.kernel.org
[32]
Rui Yang, Joseph Antony, and Alistair Rendell. 2009. Efective use of dynamic page migration on NUMA platforms: The Gaussian chemistry code on the sunfire X4600M2 system. I-SPAN 2009-The 10th International Symposium on Pervasive Systems, Algorithms, and Networks ( 2009 ), 63-68. https://doi.org/10.1109/I-SPAN. 2009.127

Cited By

View all
  • (2024)Optimizing Data Parallelism for FM-Based Short-Read Alignment on the Heterogeneous Non-Uniform Memory Access ArchitecturesFuture Internet10.3390/fi1606021716:6(217)Online publication date: 19-Jun-2024
  • (2023)A Multifaceted Memory Analysis of Java BenchmarksProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622978(70-84)Online publication date: 19-Oct-2023
  • (2023)Optimization-Aware Compiler-Level Event ProfilingACM Transactions on Programming Languages and Systems10.1145/359147345:2(1-50)Online publication date: 26-Jun-2023
  • Show More Cited By

Index Terms

  1. You can’t hide you can’t run: a performance assessment of managed applications on a NUMA machine

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    MPLR '20: Proceedings of the 17th International Conference on Managed Programming Languages and Runtimes
    November 2020
    97 pages
    ISBN:9781450388535
    DOI:10.1145/3426182
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 November 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. JVM
    2. NUMA
    3. Performance characterization

    Qualifiers

    • Research-article

    Funding Sources

    • Horizon 2020 Framework Programme E2Data
    • Horizon 2020 Framework Programme ACTiCLOUD

    Conference

    MPLR '20

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)19
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 15 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Optimizing Data Parallelism for FM-Based Short-Read Alignment on the Heterogeneous Non-Uniform Memory Access ArchitecturesFuture Internet10.3390/fi1606021716:6(217)Online publication date: 19-Jun-2024
    • (2023)A Multifaceted Memory Analysis of Java BenchmarksProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622978(70-84)Online publication date: 19-Oct-2023
    • (2023)Optimization-Aware Compiler-Level Event ProfilingACM Transactions on Programming Languages and Systems10.1145/359147345:2(1-50)Online publication date: 26-Jun-2023
    • (2023)Scaling Up Performance of Managed Applications on NUMA SystemsProceedings of the 2023 ACM SIGPLAN International Symposium on Memory Management10.1145/3591195.3595270(1-14)Online publication date: 6-Jun-2023
    • (2023)DJXPerf: Identifying Memory Inefficiencies via Object-Centric Profiling for JavaProceedings of the 21st ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3579990.3580010(81-94)Online publication date: 17-Feb-2023
    • (2023)Divide&Content: A Fair OS-Level Resource Manager for Contention Balancing on NUMA MulticoresIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2023.330999934:11(2928-2945)Online publication date: Nov-2023
    • (2021)Improving GHC Haskell NUMA profilingProceedings of the 9th ACM SIGPLAN International Workshop on Functional High-Performance and Numerical Computing10.1145/3471873.3472974(1-12)Online publication date: 22-Aug-2021

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media