Changes between Version 1 and Version 2 of CombiningOperations
- Timestamp:
- 10/27/09 14:35:30 (4 weeks ago)
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 == 11 2 Array variables comprise the bulk of the data in a netCDF dataset, and for 12 3 accesses to large regions of single array variables, PnetCDF attains very high … … 17 8 much higher performance with larger request sizes. Moreover, the record 18 9 variables 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 10 is lost, so the existing MPI-IO collective I/O optimization can not help. 11 12 We provided a new mechanism for PnetCDF to combine multiple I/O operations 21 13 for better I/O performance. This mechanism can be used in a new function that 22 14 takes arguments for reading/writing multiple array variables, allowing … … 26 18 to the application. Our performance results demonstrate significant 27 19 improvement using well-known application benchmarks. 28 }}} 20 21 == Usage == 29 22 30 23 There are two ways to use this feature: 31 24 32 ''' Implicit Method:''' New routines (e.g. ncmpi_mput_vara_all) take a list of variables to access25 '''Explicit Method:''' New routines (e.g. ncmpi_mput_vara_all) take a list of variables to access 33 26 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 28 nonblocking routines. Then, when the application waits for completion of 29 those accesses, the library will service them all in a single call. 35 30 31 The function calls for the explicit method look like this: 32 33 {{{ 34 int 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 39 int 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 == 46 Kui Gao, 47 Wei-keng Liao, Alok Choudhary, Robert Ross, and Robert Latham. "Combining I/O 48 Operations for Multiple Array Variables in Parallel NetCDF". In the ''Proceedings 49 of the [http://www.mcs.anl.gov/events/workshops/iasds09 Workshop on Interfaces and Architectures for Scientific Data Storage]'', 50 held in conjunction with the the IEEE Cluster Conference, New Orleans, 51 Louisiana, September 2009. PDF HERE 52
![(please configure the [header_logo] section in trac.ini)](/projects/parallel-netcdf/chrome/common/trac_banner.png)