Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Ntasks Flexibility Function #3

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Conversation

manishvenu
Copy link

@manishvenu manishvenu commented Jan 16, 2025

Create a function that adjusts the number of ntasks based on grid size.

Companion PR that has the demo that resulted in this function (in CrocoDash): CROCODILE-CESM/CrocoDash#28

Questions

  • Should I call it "ntasks" or the function should called set_cores_based_on_grid instead
  • Currently, cvars has OCN_NX & OCN_NY, I have only set NTASKS_OCN based on that, but should it be for every component?
  • In Regional CaseGen, the idea was to request NTASKS as a multiple of the number of cores per node (128) because of some efficiency reason, currently it's set to request more NTASKS in multiples of 16 if there is more points per core than recommended , but should that actually be 128? The reason it is 16 is because, for reducing the number of NTASKS, 16 works well b/c we need a denomination lower than the cores per node to stop the "MPP_DEFINE_DOMAINS(mpp_compute_extent): domain extents must be positive definite." error.

@manishvenu
Copy link
Author

Notes on buildnml MOM_interface check for this error:

  • Error exists in the FMS function mpp_compute_extent
  • It's called from MOM6 only in MOM_domains in determine_land_blocks, which is called from gen_auto_mask_table
  • gen_auto_mask_table iterates on determine_land_blocks by changing the equivalent parameter to NTASKS_OCN. It divides NTASKS_OCN by ocean_frac and iterates from their down to NTASKS_OCN. There's check to skip a few iterations nd a check to stop the for loop. Each iteration calls determine_land_blocks, which calls compute_extent. Any of these iterations could throw the error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

1 participant