Compile-time ng in ecCKD and TripleClouds + GPTL timing library #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently the official repo is missing two major optimizations found in my ecRad-OTP: compile-time ng and cloudy layer batching. I'm making a pull request for compile-time ng first - TripleClouds might not get much additional benefit from cloudy layer batching since it already collapses the two cloudy regions in the shortwave, but we'll see.
Here the compile-time NG is implementing in TripleClouds-LW, TripleClouds-SW and ecCKD and the
#ifdef NG_LW
are added to ecrad_config.h, which helps avoid code bloat. To avoid compilation errors I needed to move the #include "ecrad_config.h" in all files to occur after the module statement.Support for General Purpose Timing Library is also added in order to measure the performance impact. I can remove it if you wish but it adds minimal extra code: a few lines in the main Makefile, the driver (I only added it to the blocked IFS driver since this is what should be used for timing tests) and a few instrumentation calls in radiation_interface.
Compile-time ng has minimal impact on TripleClouds but speeds up ecCKD by a factor of 3 when using the Intel compiler on Atos:
So a 20-25% speed-up in total.