Library API for Z-Order Memory Layout
Software
·
OSTI ID:1232087
This library provides a simple-to-use API for implementing an altnerative to traditional row-major order in-memory layout, one based on a Morton- order space filling curve (SFC) , specifically, a Z-order variant of the Morton order curve. The library enables programmers to, after a simple initialization step, to convert a multidimensional array from row-major to Z- order layouts, then use a single, generic API call to access data from any arbitrary (i,j,k) location from within the array, whether it it be stored in row- major or z-order format. The motivation for using a SFC in-memory layout is for improved spatial locality, which results in increased use of local high speed cache memory. The basic idea is that with row-major order layouts, a data access to some location that is nearby in index space is likely far away in physical memory, resulting in poor spatial locality and slow runtime. On the other hand, with a SFC-based layout, accesses that are nearby in index space are much more likely to also be nearby in physical memory, resulting in much better spatial locality, and better runtime performance. Numerous studies over the years have shown significant runtime performance gains are realized by using a SFC-based memory layout compared to a row-major layout, sometimes by as much as 50%, which result from the better use of the memory and cache hierarchy that are attendant with a SFC-based layout (see, for example, [Beth2012]). This library implementation is intended for use with codes that work with structured, array-based data in 2 or 3 dimensions. It is not appropriate for use with unstructured or point-based data.
- Short Name / Acronym:
- ZORDER-LIB; 003375MLTPL00
- Site Accession Number:
- 2015-044
- Version:
- 00
- Programming Language(s):
- Medium: X; OS: Unix, Linus, Windows; Compatibility: Multiplatform
- Research Organization:
- Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- AC02-05CH11231
- OSTI ID:
- 1232087
- Country of Origin:
- United States
Similar Records
zorder-lib: Library API for Z-Order Memory Layout
zorder-lib: Library API for Z-Order Memory Layout
Data Layout Transformation for Enhancing Data Locality on NUCA Chip Multiprocessors
Technical Report
·
Wed Apr 01 00:00:00 EDT 2015
·
OSTI ID:1236373
zorder-lib: Library API for Z-Order Memory Layout
Technical Report
·
Wed Apr 01 00:00:00 EDT 2015
·
OSTI ID:1460301
Data Layout Transformation for Enhancing Data Locality on NUCA Chip Multiprocessors
Conference
·
Sat Sep 12 00:00:00 EDT 2009
·
OSTI ID:986720