-
Notifications
You must be signed in to change notification settings - Fork 7
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
CICE6 max_blocks set on the fly #145
Comments
Thanks for looking into this ! Have you tested this? We might be able to deprecate max_blocks? Although I guess its nice having to set max_blocks so users confirm the value is reasonable. I suggest making a branch in https://github.com/access-nri/cice6 and we can test this :) |
Yes I've tested it with
I suggest once we've fix all errors and warnings, we revisit the decision on whether to depreciate it or not.
Do you mean this repo? https://github.com/ACCESS-NRI/CICE |
Yeah. Thats the repo. Interesting you still get the warning after making the change. I wonder if that is because some blocks are masked. |
I had a look at ESCOMP/CICE@32f5d69 Should we just make |
I dont think so because these two values |
Hi Minghang I ran some cice standalone tests in https://github.com/ESCOMP/CICE/tree/1084d0ed78c2f3b19eb94d8f745f93325570f4f2 (the decomp_suite), and mostly the tests passed, except for those using the Results are in Happy to get you set-up to run this tests yourself, or you can fix it and then I will run again. Example failure:
|
Also - hammering out all the corner cases in this might not be possible. There might not be appetite to merge it upstream becuase of this, I am not sure. We could just include the calculation into om3-utils\payu\config-checks to get the max_blocks correct and set it in |
Hi @anton-seaice, I dont have permission to Can you set max_blocks=-1 and Distribution weight = block and try again? I manually calculated max_blocks with the parameters provided, and it came out to be 18.
|
Because we are using integers, every operation will be truncated (not rounded) to an integer. NVM: my maths is wrong |
Hi @anton-seaice |
Sorry - the max_blocks = 15 was me not setting up the tests correctly. I still get max_blocks too small with max_blocks = 18:
The new error is here: |
I had a look at how the rake distribution is made, it has to iterate around a loop to optimise the distribution. I don't think we will be able to get max_blocks perfect for that scenario. What you have done here is a much better estimate than the old estimate though, and should work for the Cartesian distributions. The main downside is I added auto detection of If that looks ok, create a patch file and make a PR in this repo first. If the review looks ok we can make a PR to main CICE too. |
I think it is only called once for each run so wont affect overall performance?
This looks good to me. But I suggest a minor modification for auto detection of nprocs to this branch. ACCESS-NRI/CICE@fda7c92
I will do it later soon. |
The current
max_blocks
does not match the number of blocks per processor (numBlocksPerProc
), which represents the number of cores per processor used in the computation. Hence, errors such asERROR: num blocks exceed max
ormax_blocks too small
may arise.A straighforward solution (could have better ways) to address this issue is to update
max_blocks
incicecore/cicedyn/infrastructure/ice_domain.F90
to align with the correct number of blocks per processor.proc_decomposition
is used to find an optimal 2d processor decomposition for differentprocessor_shape
(e.g.,slenderX1
,slenderX2
,square-ice
andsquare-pop
), hence we dont need to worry about changes to the global number of cores inx
andy
directions with different selections ofprocessor_shape
. And this modification does not impact the selection ofdistribution_type
(e.g.,cartesian
,roundrobin
,sectrobin
,sectcart
etc).The text was updated successfully, but these errors were encountered: