Skip to content
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

FromGroupSubmissionController: enable multiple submissions per parent node #21

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

t-reents
Copy link
Collaborator

Hi @mbercx!

I saw #15 and I was also thinking about that issue while using the submission controllers. As I think that this feature would be very useful, I started to draft a possible solution so that we have something to discuss and a starting point (I just realized that my ideas are quite similar to what you mentioned in #5 back then).

The main idea was to introduce so-called dynamic_extras. These extras are only used to define the processes that should be submitted, in addition to the unique_extra_keys. Therefore, these keys are also excluded when querying for parent nodes. As an example, one could set dynamic_extra = {'ecutrho': 400, 'ecutwfc': 100} in a convergence study. I've already tested the logic and it seems to work.

One point that needs to be discussed is the logic to identify the parent nodes. I decided to only use the uuid to identify the parent nodes, as it's unique per definition. Personally, I found it a bit cumbersome to always take care of setting the extras to identify the nodes in the parent_group. From my perspective, one takes care of this by collecting certain nodes in a group.

However, also mentioned in #5, the extras are passed in subsequent runs, which is a nice feature. Therefore, I still kept the unique_extra_keys as an optional argument, so that the user can specify extras that are passed. If we keep this logic, one can think of changing the name of unique_extra_keys, as they are not used to uniquely identify the parent nodes.

Of course, we can also make the uuid the default unique_extra_keys to identify the parent nodes and in case the user provides explicit unique_extra_keys, these are used. Again, personally, I don't really see a reason why not always using the uuid (as the advantages of the extras are still preserved in this version). But please convince me of the opposite 😄
As always, I'm more than happy to discuss this.

Doc-strings will be updated once we agreed on a final logic.

Currently, one needs to specify the `unique_extras` to uniquely identify the parent nodes in the `parent_group`. This logic can cause some limitations, e.g. in the context of convergence studies. In such scenarios, one wants to submit several calculations (with different parameters) for a certain parent node.

Here, the concept of `dynamic_extra`s is introduced. These extras are not used to identify a parent node but rather to identify a certain result, e.g. a `WorkChain` with certain parameters.

Moreover, the `uuid` is used as the attribute that defines a parent node in the `FromGroupSubmissionController`. The `unique_extra_kyes` can still be used to take advantage of passing the extras between the parent node and the result node, but they become optional in this version.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant