Hi all
I'm running a coupled model using OpenIFS cy40r1v2 (with some slight modifications) T159 L91 + NEMO ORCA05 L46 + OASIS3-MCT3, and I'm trying to optimise for performance.
What I've found is that OpenIFS output is the biggest bottleneck. If I output T,U,V,W,q on 91 model levels every 6 hours (run name "lucia11"), the model does 1 month in about 600 seconds (600 OpenIFS CPUs + 400 NEMO CPUs), but if I reduce the output to only Temperature on 91 levels and only 12-hourly (run name "lucia12"), the total runtime is down to 200 seconds!
I'm wondering if this is normal for OpenIFS? Is it also the same for the IFS forecast system?
I'm attaching two plots of the time step runtime from ifs.stat (top plot is entire run, NSTOP=744, and lower plot is only first 25 steps).
The first and last time steps always take some time, which is to be expected (reading initial state etc.). The 3rd step also takes a while, which is the first coupling step and also first radiation step, so there's probably some initialisation there. But after that, every 6th step is really slow, and the only thing I can think of that happens every 6th step is output (coupling and radiation are every 3rd step).
Has anyone else experience similar issues?
I'm using gribapi 1.28.0. Could switching to eccodes make a difference? Are there any tweaks that can be made to speed up the output?
Best regards
Joakim
ifs_stat_lucia11.eps (52.0 KB)
ifs_stat_lucia12.eps (51.9 KB)