1 / 11

Status of PIO library

Status of PIO library. Design goals. Provide parallel IO for all component models Reduce memory usage Potentially better performance Encapsulate complexity into library Simple interface for component developers to implement. Design goals (con’t). Extensible for future I/O technology

gabi
Download Presentation

Status of PIO library

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Status of PIO library

  2. Design goals • Provide parallel IO for all component models • Reduce memory usage • Potentially better performance • Encapsulate complexity into library • Simple interface for component developers to implement

  3. Design goals (con’t) • Extensible for future I/O technology • Backward compatible (node=0) • Support for binary(direct) and netcdf formats • Preserve format of input/output files • Support 2D and 3D arrays • Currently XY • Extensible to XZ or YZ

  4. Terms • PnetCDF: [ANL] • High performance I/O • Different interface • Stable • netCDF4 + HDF5 [NCSA] • Same interface • Needs HDF5 library • Less stable • Lower performance • No support on Blue Gene

  5. Terms (con’t) • Aggregators: • Number of IO tasks the MPI-IO subsystem will use • Accessible through hints • Not currently supported on BGL[?] • Processor stride: • Allows matching of subset of MPI IO nodes to system hardware

  6. Component Model ‘issues’ • POP & CICE: • Missing blocks • Update of neighbors halo • Who writes missing blocks? • Asymmetry between read/write • ‘sub-block’ decompositions not rectangular • CLM • Decomposition not rectangular • Who writes missing data?

  7. Some Concepts • IO decomp vs. COMP decomp • IO decomp == COMP decomp • MPI-IO + message aggregation • IO decomp != COMP decomp • Rearranger needed • MCT [Nov 2006] • ESMF [???] • No component specific info in library • Pair with existing communication tech • 1D arrays in library; component must flatten 2D and 3D arrays

  8. What works • Binary I/O [direct] • Rearrange w/MCT + MPI-IO • MPI-IO no rearrangement • Test on POWER5 + BGL • Issues: • Some configurations fail • MCT errors • memory usage [ 277 vs 18 Mbytes/processor]

  9. What works (con’t) • PnetCDF • MPI-IO no rearrangement • Some configurations work • Prototype added to POP2 • Reads restart and forcing files properly • POPIO benchmark • Test code for correctness and performance • Tested on 30K BGL processors in Oct 06 • Performance issues

  10. POPIO benchmark on BGW

  11. Complexity • Mulitple ways to express decomposition • GDOF: global degree of freedom --> (MCT) • MPI datatypes: offsets + counts (MPI-IO) • Subarrays: start + count (pNetCDF) • Limited expressiveness • Will not support ‘sub-block’ in POP & CICE, CLM • Need common language for interface • Interface between component model and library

More Related