fmihpc/dccrg

Subset of tasks with zero cells

Opened this issue · 1 comments

ykempf commented

Hi @iljah, we would like to have a subset of tasks which have zero DCCRG cells but are still "aware of everything", so that we can call e.g. get_existing_cell() on those tasks. Yet they should be earmarked throughout the run as not receiving any cells even if there is a load balance etc.

Some specifics: the idea is to have our vlasiator field solver, which is running on its own grid (github.com/fmihpc/fsgrid), executed on their dedicated set of tasks, and the idea is that that set of tasks is << total task count. So we are not too worried at the moment if they still take part in some global operations, but in any case, we'd like to hear how this would be feasible.

Could you hint to us how to go about this? I have the impression that since there is e.g. time classes each on their own communicator for load balancing in GUMICS, this should be feasible, right?

Any help is welcome. :)

Thanks in advance!

iljah commented

Gumics timeclasses are just some cells solved more often than others (i.e. ~some cells are skipped in main solver loop), with correspondingly larger weight in loadbalancing.

Depends a bit on what "aware of everything" means. Currently all processes know structure of entire grid but that prevents scalability above ~1000 processes so might go away at some point. At this time best place might be in make_new_partition(), just substitute some ranks with others but make sure that all processes agree on these...