Opened 17 years ago
Closed 17 years ago
#147 closed bug (Done)
Small correction to coupling synchronization clock
Reported by: | arango | Owned by: | arango |
---|---|---|---|
Priority: | minor | Milestone: | Release ROMS/TOMS 3.2 |
Component: | Nonlinear | Version: | 3.2 |
Keywords: | Cc: |
Description
Corrected a small parallel bug when reporting the waiting time during coupling synchonization. Notice that the couple interface using the MCT libary has calls like:
buffer(1)=my_wtime(wtime) CALL MCT_Recv (wav2ocn_AV, ROMStoSWAN, MyError) RecvTime=RecvTime+my_wtime(wtime)-buffer(1) ... buffer(2)=my_wtime(wtime) CALL MCT_Send (ocn2wav_AV, ROMStoSWAN, MyError) SendTime=SendTime+my_wtime(wtime)-buffer(2)
in all coupled models drivers. For example, see mct_roms_swan.h. Several statistics are reported to standard output to check the parallel/communication balance between all models. For the INLET_TEST example that couples ROMS and SWAN, we get:
NL ROMS/TOMS: started time-stepping: (Grid: 01 TimeSteps: 00000001 - 00005760) STEP Day HH:MM:SS KINETIC_ENRG POTEN_ENRG TOTAL_ENRG NET_VOLUME 0 0 00:00:00 0.000000E+00 4.346400E+01 4.346400E+01 1.444800E+09 DEF_HIS - creating history file: ocean_his.nc WRT_HIS - wrote history fields (Index=1,1) into time record = 0000001 1 0 00:00:30 4.136166E-09 4.346401E+01 4.346401E+01 1.444800E+09 2 0 00:01:00 8.618362E-08 4.346321E+01 4.346321E+01 1.444789E+09 3 0 00:01:30 7.147723E-07 4.346093E+01 4.346093E+01 1.444757E+09 4 0 00:02:00 2.555187E-06 4.345713E+01 4.345713E+01 1.444702E+09 WAV2OCN - (04) imported and (07) exported fields, t = 20000101.000200 - SWAN coupling exchanges wait clock (s): (Recv= 3.07452679E-02 Send= 9.13143158E-04) OCN2WAV - (07) imported and (04) exported fields, t = 0 00:02:00 - ROMS coupling exchanges wait clock (s): (Recv= 1.21391559E+01 Send= 9.74893570E-04) - ROMS Import: wave energy dissipation (Min= 0.00000000E+00 Max= 1.72405359E-04) - ROMS Import: significant wave height (Min= 0.00000000E+00 Max= 9.97979820E-01) - ROMS Import: surface wave relative peak period (Min= 0.00000000E+00 Max= 9.51826859E+00) - ROMS Import: bottom wave period (Min= 0.00000000E+00 Max= 1.06277828E+01) - ROMS Import: wave bottom orbital velocity (Min= 0.00000000E+00 Max= 2.00194478E-01) - ROMS Import: wave direction (Min= 0.00000000E+00 Max= 6.28318477E+00) - ROMS Import: average wave length (Min= 0.00000000E+00 Max= 9.23759995E+01) - ROMS Export: bathymetry (Min= 4.00000000E+00 Max= 1.55200000E+01) - ROMS Export: free-surface (Min= -1.21127734E-02 Max= 8.22481532E-06) - ROMS Export: vertically integrated u-momentum component (Min= -1.15870464E-05 Max= 1.15870464E-05) - ROMS Export: vertically integrated v-momentum component (Min= -5.86567341E-06 Max= 8.49970348E-03) 5 0 00:02:30 8.630084E-06 4.345318E+01 4.345319E+01 1.444644E+09
Here, the time-step for ROMS is dt=30 s and SWAN has d=60 s. The coupling between the two models is every 120 s. ROMS is run on 1 cpu whereas SWAN is run on 2 cpus. Notice that the time-step in ROMS is half of the one specified in SWAN. However, ROMS can be run at much larger time-step. The CFL condition for this case is around 10 s for the barotropic time-step (to resolve gravity waves) which implies a baroclinic time-step, dt=10*NDTFAST. If NDTFAST=20, dt=200.
According to the above numbers, SWAN is a much expensier model than ROMS for the same grid. Notice that the value Recv= 1.21391559E+01 s measures the time that ROMS is waiting for SWAN to arrive to the MCT (MPI) synchronization point. ROMS arrived much earlier even though is running at half of the time-step of SWAN and on just 1 cpu. This implies that we need to assign more parallel nodes to SWAN to balance the coupling computation.
This is a nice information to have so the computational resources can be allocated in an efficient way for a particular application.
Change History (1)
comment:1 by , 17 years ago
Priority: | major → minor |
---|---|
Resolution: | → Done |
Status: | new → closed |
Summary: | Small correction to coupling sychronization clock → Small correction to coupling synchronization clock |
Also I renamed SWAN standard input files for clarity from:
INPUT_inlet_test to swan_inlet_test.in
INPUT_test_head to swan_test_head.in