Opened 18 years ago
Closed 18 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 , 18 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