Changes between Version 1 and Version 2 of CombiningOperations

Show
Ignore:
Timestamp:
10/27/09 14:35:30 (4 weeks ago)
Author:
robl (IP: 205.208.56.252)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CombiningOperations

    v1 v2  
    1 This text is taken mostly from the abstract of Kui's 
    2 [http://www.mcs.anl.gov/events/workshops/iasds09/ IASDS] 
    3 paper (Kui Gao, 
    4 Wei-keng Liao, Alok Choudhary, Robert Ross, and Robert Latham. "Combining I/O 
    5 Operations for Multiple Array Variables in Parallel NetCDF". In the ''Proceedings 
    6 of  the Workshop on Interfaces and Architectures for Scientific Data Storage'', 
    7 held in conjunction with the the IEEE Cluster Conference, New Orleans, 
    8 Louisiana, September 2009. ) 
    9  
    10 {{{ 
     1== Motivation ==  
    112Array variables comprise the bulk of the data in a netCDF dataset, and for 
    123accesses to large regions of single array variables, PnetCDF attains very high 
     
    178much higher performance with larger request sizes. Moreover, the record 
    189variables data is stored interleaved by record, and the contiguity information 
    19 is lost, so the existing MPI-IO collective I/O optimization can not help. This 
    20 paper presents a new mechanism for PnetCDF to combine multiple I/O operations 
     10is lost, so the existing MPI-IO collective I/O optimization can not help. 
     11 
     12We provided a new mechanism for PnetCDF to combine multiple I/O operations 
    2113for better I/O performance.  This mechanism can be used in a new function that 
    2214takes arguments for reading/writing multiple array variables, allowing 
     
    2618to the application. Our performance results demonstrate significant 
    2719improvement using well-known application benchmarks. 
    28 }}} 
     20 
     21== Usage ==  
    2922 
    3023There are two ways to use this feature: 
    3124 
    32 '''Implicit Method:''' New routines (e.g. ncmpi_mput_vara_all) take a list of variables to access 
     25'''Explicit Method:''' New routines (e.g. ncmpi_mput_vara_all) take a list of variables to access 
    3326 
    34 '''Explicit Method'''  Several variable accesses can be "scheduled" with the nonblocking routines (e.g. ncmpi_iput_vara_all).  Then, when the application waits for completion of those accesses, the library will service them all in a single call. 
     27'''Implicit Method'''  Several variable accesses can be "scheduled" with the 
     28nonblocking routines.   Then, when the application waits for completion of 
     29those accesses, the library will service them all in a single call. 
    3530 
     31The function calls for the explicit method look like this: 
     32 
     33{{{ 
     34int ncmpi_put_mvara_all(int ncid, int nvars, int varid[], 
     35                   MPI_Offset *start[], MPI_Offset *count[], 
     36                   void **buf, MPI_Offset *bufcount, 
     37                   MPI_Datatype *datatype); 
     38 
     39int ncmpi_get_mvara_all(int ncid, int nvars, int varid[], 
     40                   MPI_Offset *start[], MPI_Offset *count[], 
     41                   void **buf, MPI_Offset *bufcount, 
     42                   MPI_Datatype *datatype); 
     43}}} 
     44 
     45== References == 
     46Kui Gao, 
     47Wei-keng Liao, Alok Choudhary, Robert Ross, and Robert Latham. "Combining I/O 
     48Operations for Multiple Array Variables in Parallel NetCDF". In the ''Proceedings 
     49of  the [http://www.mcs.anl.gov/events/workshops/iasds09 Workshop on Interfaces and Architectures for Scientific Data Storage]'', 
     50held in conjunction with the the IEEE Cluster Conference, New Orleans, 
     51Louisiana, September 2009.  PDF HERE 
     52