|
|
|||
|
||||
Even applications linked to netCDF libraries built without this patch should be able to read or modify files created by applications linked to libraries built with this patch. However, the CDL produced by the "ncdump" utility for such files (if names use characters not permitted in CDL) may not be work as input to programs such as "ncgen", that require valid CDL. This may not be a serious restriction, if you don't need to use ncgen for generating programs or files.
nc__create(), nc__open(),
and nc__endef() (Fortran: nf__create(), nf__open(),
and nf__endef()).
Augmented manual pages, with the above functions, are available for both C and Fortran.
You may install these pages in your netCDF distribution if you so choose.
Additionally, the augmented pages can be read online from our netCDF documentation page by following the "online man pages" links.
The User's Guides for C and Fortran have not yet been updated for version 3.4 to include descriptions of the new functions.
nc__create(),
nc__open(), and nc__endef() is not supported in the
C++ interface for version 3.4. Joe VanAndel has provided a patch that makes these new interfaces available to C++ programs
just by providing the additional tuning parameters to the constructor for NCFile.
Joe's test harness shows a 60% improvement in throughput by using a chunksize
of 65536.
These improvements will be included in the next minor release.
Problem: ------- The implementation with "ffopens" allows only to pass a simple "assign" parameter (namely the option following -F to determine the buffer structure). For those who like to fiddle around with ALL assign options (to determine the partitions and reserved block sizes and so on) for optimization, I added some additional lines to libsrc/ffio.c. Implementation: ------------ Here is a patch to netCDF version 3.4 for users of Cray Supercomputers (tested for T3E only but it should run on all Unicos machines supplying the fast flexible I/O (ffio) scheme, especially the Fortran ASSIGN command).Instead of using the ffopens-command the Fortran ASSIGN command is called to pass the options. To provide full compatabilty an extra environment variable called NETCDF_XFFIOSPEC ist introduced and appended to the parameters of the assign command. Schematically: assign -F $NETCDF_FFIOSPEC $NETCDF_XFFIOSPEC Extra functionality: -------------- Now there is an extra environment variable called "NETCDF_XFFIOSPEC" which holds additional options to the assign command. For compatibility reasons the -F option is still passed via "NETCDF_FFIOSPEC". This seems a bit complicated but it assures that even the not patched programms (including ncdump and ncgen) will work without errors. Example (bourne shell grammer): ------------------------ Type NETCDF_FFIOSPEC="cachea:8:350" NETCDF_XFFIOSPEC="-p 0:1 -d 100" and run a (patched) netCDF-programm. Then when reading or writing a file it will use 350 asynchronous Buffers of 8 * 512kwords size each AND place it only on partitions 0 and 1 of the (respectively designed) file system, changing partitions every 100 Blocks (512kwords each). Note: The cited NETCDF_FFIOSPEC yielded a factor 1/10 in execution time for a programm that randomly accessed a netCDF file (array rearrangements).
*** Testing nc_put_vars_float ...
FAILURE at line 5314 of test_put.c: range error: status = 0
1194 good comparisons.
### 1 FAILURES TESTING nc_put_vars_float! ###
...
*** Testing nc_put_varm_float ...
FAILURE at line 6637 of test_put.c: range error: status = 0
1194 good comparisons.
### 1 FAILURES TESTING nc_put_varm_float! ###
| Contact Us Site Map Search Terms and Conditions Privacy Policy Participation Policy | ||||||
|
||||||