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

Flux support #1303

Open
shahzebsiddiqui opened this issue Nov 21, 2022 · 0 comments
Open

Flux support #1303

shahzebsiddiqui opened this issue Nov 21, 2022 · 0 comments

Comments

@shahzebsiddiqui
Copy link
Member

You'll need to have Flux installed (somewhere) for a user to use a Flux executor of any kind (with reframe, Snakemake, buildtest or other). But you can develop / just try it out with the pre-build containers! If you want to try it out, you can mimic what I did for the tutorial for the Snakemake executor using the Flux sched container:

https://snakemake.readthedocs.io/en/latest/executor_tutorial/flux.html

And specifically you'll want to build a container environment that mimics that: https://github.com/snakemake/snakemake/blob/main/examples/flux/Dockerfile. That's a bit manual approach - I would take it a step further and recommend using a Development Container as an easy way to develop (this is what I do for the Flux Restful API and it starts in VSCode without a hitch!) Once you have an environment with Flux, you can mimic either the design in reframe or the one in snakemake. The Flux python bindings are very easy to use - you import the libraries, create a handle, and then use various functions from flux.job to submit and otherwise interact. So in summary:

  • Create a .devcontainer environment to go alongside buildtest, open with VSCode
  • Ensure you can start a flux instance (flux start --test-size=4)
  • You can then play around with Flux to try it out - here is a good start for that (or just look at the code I linked above for Python).
  • Try installing ipython, then running "ipython" and importing flux and flux.job to see if you can submit a job and then interact with it.
  • Add your model of an "executor" for flux that uses these Python commands to submit / interact with jobs.

And of course ping the slack / open an issue if you have any questions! Likely the Performance slack #flux channel is the best place for that - let me know if you need an invite. Great you are using Flux!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: No status
Development

No branches or pull requests

1 participant