-
Notifications
You must be signed in to change notification settings - Fork 128
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
More options on substreams #1561
Comments
@jychoi-hpc correct me if I don't understand the request correctly, would |
I think it would be super useful if we could even generalize this a little more and have different grouping strategies. Something similar to the process distribution option that job schedulers have. We could allow something like:
Implementing one extra would likely be not much different than all of them. Worth considering I think. |
I like what @chuckatkins suggested. Here is a simple case to use
If one want to use one aggregator per node, he/she can use |
One potential option that would be very flexible might be to allow the application to pass in the split communicator itself, in addition to the default behavior that does the |
Even cooler would be if there was a way to also have a user defined callback at each step to adjust the aggregation. It's something that is particularly of interest for viz where something like an isosurface is sparse but the nodes on where the data is dense changes across steps. That'd obviously be much more work but the initial support for different fixed aggregation strategies could lay the groundwork for that later on. Initially though just having a few fixed strategies would be a great addition. |
@jychoi-hpc thanks for the example, let's start (after the release) with the case needed by XGC. Thanks! |
This sounds okay to me but the most generic option is that we allow for passing a communicator in Open(). So an application can order the processes for the I/O in any way, e.g. to have consecutive ranks on one node. |
This is a feature request on aggregation (substreams).
I am wondering if we can add an option to set stride on aggregation (say,
streamstride=Y
).Currently, if I run N processes and set X as substreams, rank 0 up to N/X-1 will be aggregated. I like to have an option to aggregate every Y-th processes (i.e., rank 0, Y-1, 2*Y-1, etc).
This will be helpful on Summit (and with SSD). Especially, XGC re-orders ranks and currently it is impossible to set to write XGC restart data by using one aggregator per node.
Any comment or suggestion will be appreciated.
The text was updated successfully, but these errors were encountered: