This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Gordon: I've completed another try at improving the netcdf-3 I/O subsystem. It is available as ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-3.4atd.tar.Z I think this is about as good as we will be able to do. The major differences between this and the last iteration: limiting the I/O calls to (mostly) single blocks. (previously most calls were 2 blocks.) double buffering "distant" copy operations. This should be more like the netcdf-2 performance, but may still be a bit worse for your particular test. Please give this a shot and let me know how it goes. For your test (vtest) I now get, on our Ultra, for local disk, unoptimized sync() userCPU=0.16, sysCPU=0.07, wallclock=0 as opposed to sync() userCPU=0.19, sysCPU=0.05, wallclock=0 for netcdf-2. Other test results below compare netcdf-3.4atd and netcdf-3.3.1. ##### SunOS buddy.unidata.ucar.edu 5.5.1 Generic_103640-12 sun4u sparc SUNW,Ultra-2 local disk -g (No Optimization) ==== netcdf-3.4atd time ./t_ncio -s 16384 -c /tmp/test.io < t_ncio.in real 2.5 user 2.0 sys 0.4 time ./t_ncio -s 16384 -w -S /tmp/test.io < t_ncio.in real 3.9 user 2.5 sys 1.3 time ./nctime 24 13 19 17 > times real 36.7 user 17.5 sys 10.1 awk -f timesum.awk < times 332.076 ==== netcdf-3.3.2b time ./t_ncio -s 16384 -c /tmp/test.io < t_ncio.in real 2.9 user 2.1 sys 0.7 time ./t_ncio -s 16384 -w -S /tmp/test.io < t_ncio.in real 4.0 user 2.6 sys 1.3 time ./nctime 24 13 19 17 > times real 43.1 user 15.6 sys 12.9 awk -f timesum.awk < times 424.704 ##### IRIX64 binnie 6.2 03131016 IP26 -g (unoptimized), local efs disk (timing granularity on this system makes the summary number unreliable +/- 100 or so.) ==== netcdf-3.4atd time ./nctime 24 13 19 17 > times real 0m27.33s user 0m17.48s sys 0m8.86s 959.221 === netcdf 3.3.2b time ./nctime 24 13 19 17 > times real 0m27.70s user 0m17.63s sys 0m9.25s awk -f timesum.awk < times 893.02 ##### End test results BTW, last week we had a bunch of sparc fives in for a class. I ran your test over NFS between the sparc fives and still couldn't get more than a few seconds wallclock time. I don't mean to underplay the importance of the problems you have made me aware of, but I do think there is something weird going on with the NFS service you are using for the tests to get such long wallclock times. -glenn