Speeding up ROMS Model simulation

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
User avatar
neelbasak08
Posts: 99
Joined: Wed Dec 09, 2020 3:58 pm
Location: Thapar Institute of Engineering and Technology, Patiala, PN, India

Speeding up ROMS Model simulation

#1 Unread post by neelbasak08 »

Hello !

I was wondering in what ways one can speed up model run in ROMS while using serial computing ? Does having a coarse mesh affect runtime ?

Because when I try to reduce my runtime by just making the mesh coarser and coarser, it doesn't show any significant change in the runtime.

Am I missing something on how to speed up in serial computation as I don't use MPI ?

Kind regards
-neel

Kosa
Posts: 32
Joined: Mon Jan 12, 2015 4:12 pm
Location: URI GSO

Re: Speeding up ROMS Model simulation

#2 Unread post by Kosa »

1. What size grids did you use in these different tests? (xi, eta, and vertical dimensions)

2. Have you tried using OpenMP?

3. What are your CPP options?

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Speeding up ROMS Model simulation

#3 Unread post by kate »

When going coarser, you can take longer timesteps. When going coarser, are you reducing the number of grid points?

Why not use MPI?

User avatar
neelbasak08
Posts: 99
Joined: Wed Dec 09, 2020 3:58 pm
Location: Thapar Institute of Engineering and Technology, Patiala, PN, India

Re: Speeding up ROMS Model simulation

#4 Unread post by neelbasak08 »

Kosa wrote: Sun Mar 21, 2021 12:04 pm 1. What size grids did you use in these different tests? (xi, eta, and vertical dimensions)

2. Have you tried using OpenMP?

3. What are your CPP options?
Thanks Kosa , my usual go to grid size is L300xM150; Well xi and eta differs from case to case. When making grids for a large region my xi x eta dimensions usually becomes large. My vertical dimensions are usually 15 levels in every case. My CPP options do look as follows :
#define UV_ADV
#define UV_COR
#define UV_QDRAG
#define UV_VIS4
#define MIX_S_UV
#define DJ_GRADPS
#define SPLINES_VDIFF
#define SPLINES_VVISC
#define BULK_FLUXES
#define SOLVE3D
#define BODYFORCE
#define ANA_SMFLUX
#define ANA_STFLUX
#define ANA_INITIAL
#define ANA_SSFLUX
#define ANA_DRAG
#define ANA_BSFLUX
#define ANA_BTFLUX
#define MASKING
#define SSH_TIDES
#define UV_TIDES
#undef RAMP_TIDES
#define ADD_FSOBC
#define ADD_M2OBC
I see I have undefined RAMP_TIDES . Will defining it increase my simulation speed. Will decreasing my mesh size increase my run speed ? Or I need to decrease vertical level. I am usually reluctant to decrease vertical levels as it might decrease the accuracy of simulation. I don't use MPI usually because during setting up of ROMS on my Linux WSL I had not configured ROMS with mpi so I think I cannot do so now.
kate wrote: Sun Mar 21, 2021 6:25 pm When going coarser, you can take longer timesteps. When going coarser, are you reducing the number of grid points?

Why not use MPI?
Thanks Kate !
I believe I do reduce the number of grid points while making my mesh coarser. I don't use MPI usually because during setting up of ROMS on my Linux WSL I had not configured ROMS with mpi so I think I cannot do so now. I usually my parameter and DT == 10 & NDTFAST==30 as I read somewhere in WikiROMS that increasing NDTFAST parameter beyond 30 causes ROMS to blow up . Can we increase NDTFAST parameter to say 100 ? I shall try that if it speeds up my run time.

Thanks a lot.
Kind regards
-Neel

Kosa
Posts: 32
Joined: Mon Jan 12, 2015 4:12 pm
Location: URI GSO

Re: Speeding up ROMS Model simulation

#5 Unread post by Kosa »

Thanks Kosa , my usual go to grid size is L300xM150; Well xi and eta differs from case to case. When making grids for a large region my xi x eta dimensions usually becomes large.
I believe I do reduce the number of grid points while making my mesh coarser.
I'm confused, so do the coarser grids have more than 300x150 grid cells or less? If the number of grid cells increases, the run time should also increase.

If the number of grid cells remains constant, but the cell size is coarser, you can use a larger DT which will be faster to simulate the same amount of model time. But 100 timesteps at either resolution (for same number of grid cells) should take the same amount of time.
I see I have undefined RAMP_TIDES . Will defining it increase my simulation speed.
No. Well, maybe. RAMP_TIDES could help with spinup stability and allow you to choose a larger DT which would effectively speed up the simulation. But on it's own, there shouldn't be any measurable performance change.
Will decreasing my mesh size increase my run speed ?
Yes.
Can we increase NDTFAST parameter to say 100 ?
Don't do that, that would be slower. NDTFAST is the # of 2D timesteps per 3D timestep. So fewer is faster.

Increase DT (the 3D timestep) to speed up the model.

User avatar
neelbasak08
Posts: 99
Joined: Wed Dec 09, 2020 3:58 pm
Location: Thapar Institute of Engineering and Technology, Patiala, PN, India

Re: Speeding up ROMS Model simulation

#6 Unread post by neelbasak08 »

Thanks Kosa !

Sorry for conveying my message in a wrong way. I usually make grid of L300 x M150 but in order to make my run faster I changed it to L100 x M50 but it seems the simulation speed has increased but not so significantly. I shall double the DT parameter and see how that works for me.

I had any query which is about parameter NTIMES parameter. If I wanted to run my model for say 10 days then how should I be calculating NTIMES parameter for that case. I was reffering to Fjord tidal case page in wikiROMS and it had the following guide:
! Time-Stepping parameters.
!
NTIMES == 1866241 ! 3 days
They used the above NTIMES for a 3 day simulation which essentially translates to NTIMES==622081 for 1 day simulation. Is this how we should be calculating NTIMES for a given number of days ?

Kind regards
-Neel

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Speeding up ROMS Model simulation

#7 Unread post by kate »

You know your DT and you should be able to figure out how many timesteps per day from that. Say DT=120 leads to 720 steps/day. Three days of steps is therefore 2160 steps.

Post Reply