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
Speeding up ROMS Model simulation
- 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
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?
2. Have you tried using OpenMP?
3. What are your CPP options?
Re: Speeding up ROMS Model simulation
When going coarser, you can take longer timesteps. When going coarser, are you reducing the number of grid points?
Why not use MPI?
Why not use MPI?
- 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
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 :
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.#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
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
Re: Speeding up ROMS Model simulation
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'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.I believe I do reduce the number of grid points while making my mesh coarser.
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.
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.I see I have undefined RAMP_TIDES . Will defining it increase my simulation speed.
Yes.Will decreasing my mesh size increase my run speed ?
Don't do that, that would be slower. NDTFAST is the # of 2D timesteps per 3D timestep. So fewer is faster.Can we increase NDTFAST parameter to say 100 ?
Increase DT (the 3D timestep) to speed up the model.
- 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
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:
Kind regards
-Neel
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:
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 ?! Time-Stepping parameters.
!
NTIMES == 1866241 ! 3 days
Kind regards
-Neel
Re: Speeding up ROMS Model simulation
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.