Reducing energy usage in resource-intensive Java-based scientific applications via micro-benchmark based code refactorings

Mathias Longo1, Ana Rodriguez2, Cristian Mateos2 and Alejandro Zunino2

  1. University of Southern California
    1337 1/2 W Adams Blvd, Los Angeles (90007), United States
    mathiasl@usc.edu
  2. ISISTAN-CONICET-UNICEN
    Campus Universitario, Tandil (B7001BBO), Argentina
    {ana.rodriguez,cristian.mateos,alejandro.zunino}@isistan.unicen.edu.ar

Abstract

In-silico research has grown considerably. Today’s scientific code involves long-running computer simulations and hence powerful computing infrastructures are needed. Traditionally, research in high-performance computing has focused on executing code as fast as possible, while energy has been recently recognized as another goal to consider. Yet, energy-driven research has mostly focused on the hardware and middleware layers, but few efforts target the application level, where many energy-aware optimizations are possible. We revisit a catalog of Java primitives commonly used in OO scientific programming, or micro-benchmarks, to identify energy-friendly versions of the same primitive. We then apply the micro-benchmarks to classical scientific application kernels and machine learning algorithms for both single-thread and multi-thread implementations on a server. Energy usage reductions at the micro-benchmark level are substantial, while for applications obtained reductions range from 3.90% to 99.18%.

Key words

Energy, Scientific application, Java, Micro-benchmarks, Code refactoring

Digital Object Identifier (DOI)

https://doi.org/10.2298/CSIS123456789X

Publication information

Volume 16, Issue 2 (June 2019)
Year of Publication: 2019
ISSN: 1820-0214 (Print) 2406-1018 (Online)
Publisher: ComSIS Consortium

Full text

DownloadAvailable in PDF
Portable Document Format

How to cite

Longo, M., Rodriguez, A., Mateos, C., Zunino, A.: Reducing energy usage in resource-intensive Java-based scientific applications via micro-benchmark based code refactorings. Computer Science and Information Systems, Vol. 16, No. 2, 541-564. (2019), https://doi.org/10.2298/CSIS123456789X