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

Implement stage in/out #444

Closed
ChristopherHogan opened this issue Aug 30, 2022 · 0 comments
Closed

Implement stage in/out #444

ChristopherHogan opened this issue Aug 30, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request priority-high This is a high priority issue

Comments

@ChristopherHogan
Copy link
Collaborator

Stage-in is bringing data from outside of Hermes into Hermes buffers, and stage-out is moving data from within Hermes to external storage. The can happen either as a separate job before/after the main application, or as part of the main application.

Before/after the job runs

This (I believe) is how typical HPC users define stage-in. The process would involve the following steps:

  • Reserve nodes.
  • Start a Hermes daemon (1 per node).
  • Run a Hermes stage-in CLI tool.
  • Run the main app as a client that attaches to the Hermes daemon.
  • Run the Hermes stage-out CLI tool.
  • Stop the daemon.

CLI parameters:

  • list of files to stage in/out
  • list of ranges for each file (future work. Initially we only work with entire files).
  • DPE policy (if you want to override the default policy in hermes.conf).

Potentially need a CLI for each adapter.
Synchronous for now, but think about async for future versions.

As part of the job

In this version, the user supplies a list of files to stage-in as part of the config, then we will have triggers where data is loaded into Hermes from external sources. Anthony suggests using a different term for this process to distinguish it from the "stage-in" described above. Maybe "Load External Data".

Possible behavior:

  • Load all external data on InitHermes. Synchronously or async.
  • Load each external file when it's opened. Synchronously or async.
  • Flush to external storage on file close.
  • Flush to external storage on Hermes::Finalize.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority-high This is a high priority issue
Projects
None yet
Development

No branches or pull requests

2 participants