[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
961118: netCDF 2.4.3 prefill on Cray
- Subject: 961118: netCDF 2.4.3 prefill on Cray
- Date: Mon, 18 Nov 96 09:24:12 -0700
Hi John,
> To: address@hidden
> From: address@hidden (John Sheldon)
> Subject: netCDF 2.4.3 prefill on Cray
> Organization: Princeton/GFDL
> Keywords: 199611160003.AA04557
In the above message you wrote:
> I finally got around to testing out 2.4.3 on our Cray IEEE T90.
> Unfortunately, I did not see any improvement in the speed of pre-fill.
>
> I'll paste my short test code at the end of this mail, but the bottom
> line is that I can write the test file in 0.7 CP sec without prefill,
> but it takes ~150 CP sec with prefill. There was no significant
> difference between 2.4.2 and 2.4.3. (all this is with
> NETCDF_FFIOSPEC=cachea:512:2 )
>
> Am I missing something??
>
> Thanks once again-
> John P. Sheldon
> address@hidden
>
> ===============================================
> PROGRAM TIME_PREFILL
>
> C Test program to time netCDF "pre-filling" on Cray....
> C
> C Modified 4/26/96 to demonstrate Cray problem with inconsistent
> C precision in writing FLOAT's to attributes vs. data...
>
> #include "netcdf.inc"
>
> PARAMETER (NI=360, NJ=180, NK=40, NL=3)
> DIMENSION ARR(NI,NJ,NK), ID_DIM(4), ISTART(4), ICOUNT(4)
>
>
> SPVAL=1.E35
>
> DO K=1,NK
> DO J=1,NJ
> DO I=1,NI
> ARR(I,J,K) = SPVAL
> ENDDO
> ENDDO
> ENDDO
>
> CALL NCPOPT(NCVERBOS+NCFATAL)
>
> NCID = NCCRE('time_prefill.nc', NCCLOB, IRET)
>
> ID_DIM(1) = NCDDEF(NCID, 'lon', NI, IRET)
> ID_DIM(2) = NCDDEF(NCID, 'lat', NJ, IRET)
> ID_DIM(3) = NCDDEF(NCID, 'sigma', NK, IRET)
> ID_DIM(4) = NCDDEF(NCID, 'time', 0, IRET)
>
> IDV = NCVDEF(NCID, 'TEMP', NCFLOAT, 4, ID_DIM, IRET)
>
> CALL NCAPT(NCID, IDV, 'missing_value', NCFLOAT, 1, SPVAL,IRET)
>
> c IFMODE = NCSFIL (NCID, NCNOFILL, IRET)
> IFMODE = NCSFIL (NCID, NCFILL, IRET)
>
> CALL NCENDF(NCID, IRET)
>
> ISTART(1)=1
> ISTART(2)=1
> ISTART(3)=1
> ICOUNT(1)=NI
> ICOUNT(2)=NJ
> ICOUNT(3)=NK
> ICOUNT(4)=1
>
> DO L=1,NL
> PRINT *,'Writing out time level ',L
> ISTART(4)=L
> CALL NCVPT(NCID, 1, ISTART, ICOUNT, ARR, IRET)
> ENDDO
>
> CALL NCCLOS(NCID)
>
> END
If I understand correctly, you're wondering why it takes only 0.7 CP
seconds to "manually" write the entire netCDF dataset, but 150 CP
seconds when pre-fill is enabled.
At the moment, I don't know. I'll discuss it with Glenn Davis, however,
and get back to you.
--------
Steve Emmerson <address@hidden>