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

HPC Resource Redesign #21

Merged
merged 15 commits into from
May 22, 2024
Merged

HPC Resource Redesign #21

merged 15 commits into from
May 22, 2024

Conversation

islas
Copy link
Owner

@islas islas commented May 22, 2024

This redesign takes the concept of argpacks and extends it generally to step arguments as well as hpc arguments.

SubmitArgpacks.py hosts the generalized implementation and HpcArgpacks.py contains the hpc-specifics both for formatting as well as config structure.

  • normal script argacks remain unchanged
  • hpc arguments is no longer a single string input
    • A nested dictionary approach is used here
    • the first dictionary entries function as the top-level argpacks for hpc arguments
    • only the first entry under these argpacks is considered, which should be a option : {} where option is the flag to use and any further optional hpc resource specifications should be entered into the {}
    • additional hpc resources listed in the option dictionary are considered both the resource name and an argpack. If regex argpacks are used here, at hpc submission time they will be sanitized to only use the base argpack name
    • resource argpack names, regex or not, must be unique to avoid redeclaration of resources
    • outer hpc argpacks may reuse names but at final selection of argpacks only unique basenames must appear (no duplicates argpacks with different regexes)

Naturally, the join and override command line options must be updated.

The command line join under the hood has been entirely reworked to aggregate resources based on expected runtimes, much like the step thread pool. This differs from the original implementation of just taking the top N resources where N is the pool size.

The override input to the join command no longer expects a resource string as input into the config. The input SHOULD still mirror the config input, however. Instead, the input is now the equivalent of the json dictionary in the config. Argpacks referenced need only use the basename of the argpack (no regex syntax) since at final join uniqueness is maintained and regexes stripped

@islas islas added the test Require testing label May 22, 2024
@github-actions github-actions bot removed the test Require testing label May 22, 2024
@islas islas merged commit 23dd58c into main May 22, 2024
2 checks passed
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