Open yantosca opened 2 years ago
@lizziel @msulprizio: Several recent code modifications have added a lot of cluttered code to aerosol_mod.F90
. This module would benefit from "never-nesting" (i.e. refactoring code to remove ELSE blocks). However this is probably not a development priority at this time given scheduling constraints. We should keep this on our radar though.
It looks like the amount of time for aerosol chem nearly doubled with the update "13.3.0+MEGANfix...", and it has not gone down since. Do you know what changed in there to cause that? Could it be a bug?
It looks like the amount of time for aerosol chem nearly doubled with the update "13.3.0+MEGANfix...", and it has not gone down since. Do you know what changed in there to cause that? Could it be a bug?
The run "13.3.0+MEGANfix_wGCC10.2" that you're referring to is identical to the previous bar. It's not labeled in the image above but that bar corresponds to "13.3.0+MEGANfix" (which used ifort 19). That suggests that the switch in compiler from ifort 19 to gnu 10.2 caused the increase in aerosol chem timing.
Ah, and I just realized that figure is from 2021! The latest timing results show a much more reasonable timing ratio of aerosol chem to gas phase.
@lizziel @msulprizio: I still think we can do better in the aerosol chemistry, since there are a lot of IF / ELSE blocks. If we refactor properly then I think we can get better performance. But it may be a ways off before we can tackle this.
As shown in the timing results from 1-month internal benchmarks, GEOS-Chem 13 versions now spend more time in aerosol chemistry (green bar) than in gas-phase chemistry/KPP solver (red bar). We should look into ways in which we can improve the performance of aerosol chemistry, perhaps by optimizing the computations.
This is not yet slated for any upcoming version, but I am just opening the issue so that we don't lose sight of this.