Cargando…
Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data
Java has been the backbone of Big Data processing for more than a decade due to its interesting features such as object orientation, cross-platform portability and good programming productivity. In fact, most popular Big Data frameworks such as Hadoop and Spark are implemented in Java or using other...
Autores principales: | , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
2020
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7302232/ http://dx.doi.org/10.1007/978-3-030-50371-0_3 |
_version_ | 1783547805922492416 |
---|---|
author | Expósito, Roberto R. Veiga, Jorge Touriño, Juan |
author_facet | Expósito, Roberto R. Veiga, Jorge Touriño, Juan |
author_sort | Expósito, Roberto R. |
collection | PubMed |
description | Java has been the backbone of Big Data processing for more than a decade due to its interesting features such as object orientation, cross-platform portability and good programming productivity. In fact, most popular Big Data frameworks such as Hadoop and Spark are implemented in Java or using other languages designed to run on the Java Virtual Machine (JVM) such as Scala. However, modern computing hardware is increasingly complex, featuring multiple processing cores aggregated into one or more CPUs that are usually organized as a Non-Uniform Memory Access (NUMA) architecture. The platform-independent features of the JVM come at the cost of hardware abstraction, which makes it more difficult for Big Data developers to take advantage of hardware-aware optimizations based on managing CPU or NUMA affinities. In this paper we introduce jhwloc, a Java library for easily managing such affinities in JVM-based applications and gathering information about the underlying hardware topology. To demonstrate the functionality and benefits of our proposal, we have extended Flame-MR, our Java-based MapReduce framework, to provide support for setting CPU affinities through jhwloc. The experimental evaluation using representative Big Data workloads has shown that performance can be improved by up to 17% when efficiently exploiting the hardware. jhwloc is publicly available to download at https://github.com/rreye/jhwloc. |
format | Online Article Text |
id | pubmed-7302232 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2020 |
record_format | MEDLINE/PubMed |
spelling | pubmed-73022322020-06-18 Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data Expósito, Roberto R. Veiga, Jorge Touriño, Juan Computational Science – ICCS 2020 Article Java has been the backbone of Big Data processing for more than a decade due to its interesting features such as object orientation, cross-platform portability and good programming productivity. In fact, most popular Big Data frameworks such as Hadoop and Spark are implemented in Java or using other languages designed to run on the Java Virtual Machine (JVM) such as Scala. However, modern computing hardware is increasingly complex, featuring multiple processing cores aggregated into one or more CPUs that are usually organized as a Non-Uniform Memory Access (NUMA) architecture. The platform-independent features of the JVM come at the cost of hardware abstraction, which makes it more difficult for Big Data developers to take advantage of hardware-aware optimizations based on managing CPU or NUMA affinities. In this paper we introduce jhwloc, a Java library for easily managing such affinities in JVM-based applications and gathering information about the underlying hardware topology. To demonstrate the functionality and benefits of our proposal, we have extended Flame-MR, our Java-based MapReduce framework, to provide support for setting CPU affinities through jhwloc. The experimental evaluation using representative Big Data workloads has shown that performance can be improved by up to 17% when efficiently exploiting the hardware. jhwloc is publicly available to download at https://github.com/rreye/jhwloc. 2020-05-26 /pmc/articles/PMC7302232/ http://dx.doi.org/10.1007/978-3-030-50371-0_3 Text en © Springer Nature Switzerland AG 2020 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic. |
spellingShingle | Article Expósito, Roberto R. Veiga, Jorge Touriño, Juan Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data |
title | Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data |
title_full | Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data |
title_fullStr | Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data |
title_full_unstemmed | Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data |
title_short | Enabling Hardware Affinity in JVM-Based Applications: A Case Study for Big Data |
title_sort | enabling hardware affinity in jvm-based applications: a case study for big data |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7302232/ http://dx.doi.org/10.1007/978-3-030-50371-0_3 |
work_keys_str_mv | AT expositorobertor enablinghardwareaffinityinjvmbasedapplicationsacasestudyforbigdata AT veigajorge enablinghardwareaffinityinjvmbasedapplicationsacasestudyforbigdata AT tourinojuan enablinghardwareaffinityinjvmbasedapplicationsacasestudyforbigdata |