Implicit java array bounds checking on 64-bit architectures

Chris Bentley, Scott A. Watterson, David K. Lowenthal, Barry Rountree

Research output: Contribution to conferencePaperpeer-review

2 Scopus citations

Abstract

Interest in using Java for high-performance parallel computing has increased in recent years. One obstacle that has inhibited Java from widespread acceptance in the scientific community is the language requirement that all array accesses must be checked to ensure they are within bounds. In practice, array bounds checking in scientific applications may increase execution time by more than a factor of 2. Previous research has explored optimizations to statically eliminate bounds checks, but the dynamic nature of many scientific codes makes this difficult or impossible. Our approach is instead to create a new Java implementation that does not generate explicit bounds checks. It instead places arrays inside of Index Confinement Regions (ICRs), which are large, isolated, mostly unmapped virtual memory regions. Any array reference outside of its bounds will cause a protection violation; this provides implicit bounds checking. Our results show that our new Java implementation reduces the overhead of bounds checking from an average of 63% to an average of 9% on our benchmarks.

Original languageEnglish (US)
Pages227-236
Number of pages10
StatePublished - 2004
Externally publishedYes
Event2004 International Conference on Supercomputing - Saint-Malo, France
Duration: Jun 26 2004Jul 1 2004

Other

Other2004 International Conference on Supercomputing
Country/TerritoryFrance
CitySaint-Malo
Period6/26/047/1/04

Keywords

  • Array-Bounds Checking
  • Java
  • Virtual Memory

ASJC Scopus subject areas

  • General Computer Science

Fingerprint

Dive into the research topics of 'Implicit java array bounds checking on 64-bit architectures'. Together they form a unique fingerprint.

Cite this