[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug in ncdf_control, /nofill



Folks,

I have discovered a bug in the netCDF routine NCDF_CONTROL.  The /NOFILL
keyword does not work.

The on-line help says that one should use /FILL to enable prefilling the
disk file with numbers and /NOFILL to disable this, improving performance.
I have found that /NOFILL behaves exactly the same as /FILL or FILL=1.
However, if I use FILL=0 then the performance DOES improve.  The use of
FILL=0 is not documented, and this is what /NOFILL should do.

Here are the performance numbers to prove my assertion.  These come from
running the appended test program. Here are the results running IDL 5.4 on a
Windows NT system to a network disk.
IDL> test_write, 200, /nofill
Time to initialize file:       7.3290000
Time to write data:       5.2340000
Speed:       1.2145816 MB/sec
IDL> test_write, 200, fill=1
Time to initialize file:       8.0310000
Time to write data:       4.2970001
Speed:       1.2377343 MB/sec
IDL> test_write, 200, fill=0
Time to initialize file:      0.26600003
Time to write data:       5.2970001
Speed:       2.7429065 MB/sec

These results show that the time for /NOFILL is the same as for FILL=1,
while the time to initialize the file for FILL=0 is much shorter.  /NOFILL
should be the same as FILL=0, not FILL=1.  I have found that the performance
gain in using FILL=0 (which should be /NOFILL) is a factor of 2.5, so it is
very significant.

Mark Rivers
CARS
Building 434A
Argonne National Laboratory
Argonne, IL 60439
Phone:  630-252-0422
FAX:    630-252-0443
e-mail: rivers@cars.uchicago.edu



begin 666 test_write.pro
M.R!4:&ES('!R;V-E9'5R92!B96YC:&UA<FMS('1H92!S<&5E9"!O9B!W<FET
M:6YG('-T<F%I9VAT(&)I;F%R>2!F:6QE<R!V<RX@;F5T0T1&"G!R;R!T97-T
M7W=R:71E+"!N+"!?97AT<F$]97AT<F$*(" @(&YX(#T@;@H@(" @;GD@/2!N
M"B @("!N>B ](&X*(" @('9O;'5M92 ](&EN=&%R<BAN>"P@;GDL(&YZ*0H@
M(" @9FEL92 ]("=T97-T+FYC)PH*(" @('0P(#T@<WES=&EM92@Q*0H@(" @
M.R!#<F5A=&4@;F5T0T1&(&9I;&4*(" @(&9I;&5?:60@/2!N8V1F7V-R96%T
M92AF:6QE+" O8VQO8F)E<BD*(" @(&YC9&9?8V]N=')O;"P@9FEL95]I9"P@
M7V5X=')A/65X=')A"B @(" *(" @(#L@0W)E871E(&1I;65N<VEO;G,*(" @
M(&YX7VED(#T@;F-D9E]D:6UD968H9FEL95]I9"P@)TY8)RP@;G@I"B @("!N
M>5]I9" ](&YC9&9?9&EM9&5F*&9I;&5?:60L("=.62<L(&YY*0H@(" @;GI?
M:60@/2!N8V1F7V1I;61E9BAF:6QE7VED+" G3EHG+"!N>BD*"B @(" [($-R
M96%T92!V87)I86)L97,*(" @('9O;%]I9" ](&YC9&9?=F%R9&5F*&9I;&5?
M:60L("=63TQ5344G+"!;;GA?:60L(&YY7VED+"!N>E]I9%TL("]32$]25"D*
M(" @( H@(" @.R!0=70@=&AE(&9I;&4@:6YT;R!D871A(&UO9&4N"B @("!N
M8V1F7V-O;G1R;VPL(&9I;&5?:60L("]E;F1E9@H@(" @=#$@/2!S>7-T:6UE
M*#$I"B @(" *(" @(#L@5W)I=&4@=F]L=6UE(&1A=&$@=&\@=&AE(&9I;&4*
M(" @(&YC9&9?=F%R<'5T+"!F:6QE7VED+"!V;VQ?:60L('9O;'5M90H@(" @
M=#(@/2!S>7-T:6UE*#$I"@H@(" @.R!#;&]S92!T:&4@9FEL90H@(" @;F-D
M9E]C;&]S92P@9FEL95]I9 H@(" @=#,@/2!S>7-T:6UE*#$I"@H@(" @<')I
M;G0L("=4:6UE('1O(&EN:71I86QI>F4@9FEL93HG+"!T,2UT, H@(" @<')I
M;G0L("=4:6UE('1O('=R:71E(&1A=&$Z)RP@=#(M=#$*(" @('!R:6YT+" G
M5&EM92!T;R!C;&]S92!F:6QE.B<L('0S+70R"B @("!P<FEN="P@)U1O=&%L
M('1I;64Z)RP@=#,M=# *(" @('!R:6YT+" G4W!E960Z)RP@,BXJ;G@J;GDJ
@;GHO,BY>,C O*'0S+70P*2P@)R!-0B]S96,G"F5N9 H`
`
end