Skip to content

Add failure injection app#80

Merged
gpauloski merged 2 commits intoproxystore:mainfrom
ClaudiaCumberbatch:for_PR
Jun 28, 2024
Merged

Add failure injection app#80
gpauloski merged 2 commits intoproxystore:mainfrom
ClaudiaCumberbatch:for_PR

Conversation

@ClaudiaCumberbatch
Copy link
Copy Markdown
Contributor

Description

Add failure injection workflow.

Fixes

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (internal implementation changes)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update (no changes to the code)
  • CI change (changes to CI workflows, packages, templates, etc.)
  • Version changes (changes to the package or dependency versions)

Testing

N/A

Pull Request Checklist

Please confirm the PR meets the following requirements.

  • Relevant tags are added (breaking, bug, dependencies, documentation, enhancement, refactor).
  • Code changes pass pre-commit (e.g., ruff, mypy, etc.).
  • Tests have been added to show the fix is effective or that the new feature works.
  • New and existing unit tests pass locally with the changes.
  • Docs have been updated and reviewed if relevant.

@ClaudiaCumberbatch ClaudiaCumberbatch marked this pull request as draft June 26, 2024 18:30
@ClaudiaCumberbatch ClaudiaCumberbatch marked this pull request as ready for review June 26, 2024 20:19
@gpauloski gpauloski added the enhancement New features or improvements to existing functionality label Jun 26, 2024
Copy link
Copy Markdown
Contributor

@gpauloski gpauloski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, @ClaudiaCumberbatch!

I've only taken a high-level look so far. My big question is how best to handle the configuration options for the "true workflow." I'll have to think about this more and probably try a few things out.

ClaudiaCumberbatch and others added 2 commits June 28, 2024 17:21
- Rename failinject to failures
- Use Enum for FailureType options
- Add failures extra install options
- Include base app name and config options in FailureInjectionConfig
- Register failure task functions to avoid submitting branch new
  functions to engine each time
- Change FailureInjectionEngine to use provided engine directly rather
  than reinitializing new engine
- Update the docs page with new usage instructions and warnings

Co-authored-by: Sicheng Zhou <[email protected]>
@gpauloski gpauloski changed the title Add failure injection workflow Add failure injection app Jun 28, 2024
@gpauloski
Copy link
Copy Markdown
Contributor

@ClaudiaCumberbatch, I've addressed the configuration problem. You can now run the app like:

python -m taps.run --app failures \
    --app.base cholesky \
    --app.config '{"matrix_size": 100, "block_size": 50}' \
    --app.failure-rate 0.5 --app.failure-type dependency \
    --engine.executor process-pool --engine.executor.max-processes 4

--app.base specifies the "base" app name, and --app.config takes a JSON string of the options for the "base" app. I've update the docs page to reflect this and also to show how to use the options from within a config file.

I made some other changes to get the branch ready to merge. Let me know if you have any questions about any of the changes I made. Thanks for the PR!

@gpauloski gpauloski merged commit 5b41ab3 into proxystore:main Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New features or improvements to existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants