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
An examination of the MOM6 code reveals a number of instances in the MOM6 code where 3-dimensional arrays that are used for diagnostics are being allocated in the control structures of modules and retained for the length of the runs. It at least some cases (like MOM_bkgnd_mixing.F90), this is true even for diagnostics that are not in use!
This behavior is going to be problematic for performance, because MOM6 appears to be limited by data access, and it may prevent the model from running at all on smaller processor counts because it unnecessarily enlarges the memory footprint.
I am proposing that every 3-d (and 4-d) array in module control structures or other permanent types needs to be examined to determine whether it is necessary. Diagnostics should use automatically allocated memory within the module, because this memory can be reused by other modules and may not contribute to the model's memory high-water mark. Also, 3-d arrays that are only used for diagnostics should not be stored if the related diagnostics are not in use, because setting a 3-d array (even just via a copy) is an expensive operation.
The text was updated successfully, but these errors were encountered:
An examination of the MOM6 code reveals a number of instances in the MOM6 code where 3-dimensional arrays that are used for diagnostics are being allocated in the control structures of modules and retained for the length of the runs. It at least some cases (like MOM_bkgnd_mixing.F90), this is true even for diagnostics that are not in use!
This behavior is going to be problematic for performance, because MOM6 appears to be limited by data access, and it may prevent the model from running at all on smaller processor counts because it unnecessarily enlarges the memory footprint.
I am proposing that every 3-d (and 4-d) array in module control structures or other permanent types needs to be examined to determine whether it is necessary. Diagnostics should use automatically allocated memory within the module, because this memory can be reused by other modules and may not contribute to the model's memory high-water mark. Also, 3-d arrays that are only used for diagnostics should not be stored if the related diagnostics are not in use, because setting a 3-d array (even just via a copy) is an expensive operation.
The text was updated successfully, but these errors were encountered: