-
Notifications
You must be signed in to change notification settings - Fork 13
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
It is not straightforward to set an array of parameters across an array of plugins #202
Comments
In the shortest term, we can let the work graph processing interpret a list of length 1 the same way it interprets a scalar, broadcasting the single element if appropriate. Then in the current schema, if you want to broadcast the array Then, to the API, For compatibility with future semantics or schema, we can then let a Python |
After conversation with @peterkasson it sounds like the most useful and user-friendly thing we can do is to maximize the opportunity for implicit ensemble broadcast, map, and scatter by providing a The gist:
Example: myoperation = someplugin.someoperation(
input={
'a': [3., 2., 1.],
'b': [0.],
'c': 0.0,
'd': gmx.NDArray([0., 0., 0., 1.]),
'e': gmx.NDArray([0.], shape=(10,)),
'f': gmx.NDArray(0., shape=10),
'g': gmx.NDArray(0., 10),
}
) The parameter The single value in parameter The scalar in The For For For |
When MD extension WorkElements are specified for ensembles or arrays of simulations, all ensemble members receive the same parameters.
If we need to solve this problem in the very short term, the easiest thing would be to let extension code process arrays with the session rank. We didn't settle on a solid way to provide that to operations during session launch, but it is available indirectly if constructing a launch() method in the builder closure. Instead, we would probably make a new operation that provides ensemble arrays of data and allow plugins to subscribe to the operation.
If we can avoid a rushed solution, the problem should be addressed automatically with the dimensioned input/output types in the next generation work graph scheme. Broadcasting would usually be possible implicitly but reduction operations would reduce dimensionality of data on graph edges.
Questions: is there is necessarily a distinction between which dimension is added or removed and whether there are different types of dimensions. E.g.
The text was updated successfully, but these errors were encountered: