nextsimhub / domain_decomp

Domain decomposition tool for the nextSIM-DG next-generation sea ice model.
Apache License 2.0
1 stars 0 forks source link

remove blocking from decomp tool #50

Closed TomMelt closed 1 month ago

TomMelt commented 2 months ago

This is related to #39 and #38

It looks like blocking was added for the following reason (see #19)

Extend the tool to consider blocks of grid points as units of decomposition. This will help us evaluate the option of ignoring the land mask during the computational kernels, i.e., all-land blocks will be excluded completely from computation and the rest of the blocks will be considered full-sea blocks and computations will proceed without conditionals and computations on land points will be discarded.

I honestly don't understand what this means. I feel like the easiest way to ignore land would be to not use the land_mask for decomposition... which is already an option:

https://github.com/nextsimhub/domain_decomp/blob/82329d18ae91a817c9cdf4a9172b8b75cb9e9364/main.cpp#L33

I would like to remove blocking completely because it does not work with nextsim-dg. Additionally it adds to code maintenance costs.

timspainNERSC commented 2 months ago

From the text provided, ignore-mask is a switch to ignore the mask when calculating the decomposition, so the decomposition will try to balance the total number of grid points between domains, regardless of whether they will be used in the calculation or not. I think we all understand this.

The blocking looks to me to be a way of entirely ignoring a region that contains only land points. These points never become part of a domain and are never calculated ('all-land blocks will be excluded completely from computation').

Those seem like very different concepts, and also I'm not surprised that the second doesn't work correctly.

einola commented 2 months ago

I agree that the blocking bit looks like a separate development. It's hard to say what Athena was thinking, but I don't think we should go chasing after this idea. I'd remove the blocking and continue without it.