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...

Descripción completa

Detalles Bibliográficos
Autores principales: Expósito, Roberto R., Veiga, Jorge, Touriño, Juan
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