Bug #3136
Task #2045: API design and language bindings
Feature #2994: Data flow topology in gmxapi 2020
gmxapi.operation data flow topology unclear or incomplete
Description
The ensemble data flow use cases implied by the example scripts are ambiguously or incompletely implemented. This is particularly apparent with the gmxapi.commandline_operation tool.
Part of the problem is a combinatoric explosion of complexity between scalar data, array data, data Futures, and implicit or explicit ensembles. The best solution is to finally implement the (C++ based) gmxapi typing system and data interface, in which all data has shape and supports the Future interface, but there are nearer-term tasks.
Remediation:¶
Initial resolution steps are the triage described in issue #3130 and documentation updates for gmxapi.operation and gmxapi.commandline.
Then:
- Separate the user experience from the data model implementation details. We will first require user data input to be wrapped / annotated with a single function, clarifying that operations take "gmxapi data objects" as input, and consolidating details such as "which dimensions can be scattered from or parallelized?". Then the discussion can proceed regarding the interface of such a helper function, and the heuristics for implicit conversion of native Python types (or non-gmxapi-native objects) to gmxapi data objects.
- Create the core gmxapi data object and move future development to C++, separating the implementation from the interface used in the gmxapi package implementation. (May be beyond the scope of the bug fix.)
This issue can be considered resolved when both UI and API are well defined and behaving as documented for a known upcoming gmxapi version number.
Related issues
History
#2 Updated by Eric Irrgang over 1 year ago
- Blocked by Task #3130: Interim handling of gmxapi data references. added
#3 Updated by Eric Irrgang over 1 year ago
- Description updated (diff)
#4 Updated by Eric Irrgang over 1 year ago
- Private changed from Yes to No
#5 Updated by Eric Irrgang over 1 year ago
- Related to Bug #3150: gmxapi data type annotations are confusing and inadequate added
#7 Updated by Eric Irrgang about 1 year ago
- Target version changed from 2020-beta2 to 2020-beta3
#9 Updated by Eric Irrgang about 1 year ago
- Target version changed from 2020-rc1 to 2021-infrastructure-stable
The solution involves code reorganization and UI changes that are now beyond the scope of gmxapi 0.1.0 and GROMACS 2020 rc1. Where necessary, current behavior can be clarified with documentation updates or bug fixes. More complete solutions are targeted for gmxapi 0.2.