Extending scalability of collective IO through nessie and staging

  • Authors:
  • Jay Lofstead;Ron Oldfield;Todd Kordenbrock;Charles Reiss

  • Affiliations:
  • Sandia National Laboratories, Albuquerque, NM, USA;Sandia National Laboratories, Albuquerque, NM, USA;Hewlett-Packard, Nashville, TN, USA;University of California, Berkeley, Berkeley, CA, USA

  • Venue:
  • Proceedings of the sixth workshop on Parallel Data Storage
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

The increasing fidelity of scientific simulations as they scale towards exascale sizes is straining the proven IO techniques championed throughout terascale computing. Chief among the successful IO techniques is the idea of collective IO where processes coordinate and exchange data prior to writing to storage in an effort to reduce the number of small, independent IO operations. As well as collective IO works for efficiently creating a data set in the canonical order, 3-D domain decompositions prove troublesome due to the amount of data exchanged prior to writing to storage. When each process has a tiny piece of a 3-D simulation space rather than a complete 'pencil' or 'plane', 2-D or 1-D domain decompositions respectively, the communication overhead to rearrange the data can dwarf the time spent actually writing to storage [27]. Our approach seeks to transparently increase scalability and performance while maintaining both the IO routines in the application and the final data format in the storage system. Accomplishing this leverages both the Nessie [23] RPC framework and a staging area with staging services. Through these tools, we employ a variety of data processing operations prior to invoking the native API to write data to storage yielding as much as a 3X performance improvement over the native calls.