You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CICE currently has 3 different flags that affect bit-for-bit diagnostics. The first "DITTO" is an env variable in cice.settings. That triggers the cpp -DREPRODUCIBLE but only for a few machine/compiler implementations. It probably should be specified in all machine/compiler implementations if any. Finally, there is the bfbflag in namelist. That turns on yet another calculation for the global diagnostics but only on the mpi side.
I see several issues
multiple independent approaches to address the same issue
inconsistency in scripts application to various machines and compilers
inconsistency in implementation between mpi and serial versions (serial does not have a bfbflag implementation)
lack of reuse in implementation of sums, mpi vs serial, int/float/double, prod sums, etc.
no recent testing as far as I know
really does need to be cleaned up
I would like to refactor this with the following requirements
run time flag only
implementation in both mpi and serial, recognizing this is not only a pe count issue but also a decomp/block issue.
code reuse where possible
leverage new techniques such as the Worley ddpdd approach to reduce cost
potentially support multiple approaches via a consistent, well documented namelist input
test and validate
This feature is useful, especially for quick bit-for-bit comparison of log files during testing. If the cost is low enough, it may even be a viable default setting.
It is probably not a lot of work, I have implemented the same thing in other projects and would leverage some of that work. I would like to propose it be added to the CICE6 release project.
This makes sense to me. DITTO and REPRODUCIBLE came from UKMO a long time ago, specifically because they wanted to be able to compare diagnostic output across configurations (these only affect the diagnostic output). bfbflag came from CESM 4 years ago (the "blame" functionality in github is very handy). @apcraig, yes, please clean this up.
Also get rid of the following in cice.settings:
setenv CAM_ICE no # set to yes for CAM runs (single column)
setenv BARRIERS no # prevent MPI buffer overflow during gather/scatter
CICE currently has 3 different flags that affect bit-for-bit diagnostics. The first "DITTO" is an env variable in cice.settings. That triggers the cpp -DREPRODUCIBLE but only for a few machine/compiler implementations. It probably should be specified in all machine/compiler implementations if any. Finally, there is the bfbflag in namelist. That turns on yet another calculation for the global diagnostics but only on the mpi side.
I see several issues
I would like to refactor this with the following requirements
This feature is useful, especially for quick bit-for-bit comparison of log files during testing. If the cost is low enough, it may even be a viable default setting.
It is probably not a lot of work, I have implemented the same thing in other projects and would leverage some of that work. I would like to propose it be added to the CICE6 release project.
Pinging @eclare108213, @mattdturner, @dabail10 for any comments or feedback.
The text was updated successfully, but these errors were encountered: