Tutorial 7: The Flux Framework Scheduler

This is a tutorial that will show how to use refame with Flux Framework. First, build the container here from the root of reframe.

$ docker build -f tutorials/flux/Dockerfile -t flux-reframe .

Then shell inside, optionally binding the present working directory if you want to develop.

$ docker run -it -v $PWD:/code flux-reframe
$ docker run -it flux-reframe

Note that if you build the local repository, you’ll need to bootstrap and install again, as we have over-written the bin!

./bootstrap.sh

And then reframe will again be in the local bin directory:

# which reframe
/code/bin/reframe

Then we can run ReFrame with the custom config config.py for flux.

# What tests are under tutorials/flux?
$ cd tutorials/flux
$ reframe -c . -C settings.py -l
[ReFrame Setup]
  version:           4.0.0-dev.1
  command:           '/code/bin/reframe -c tutorials/flux -C tutorials/flux/settings.py -l'
  launched by:       root@b1f6650222bc
  working directory: '/code'
  settings file:     'tutorials/flux/settings.py'
  check search path: '/code/tutorials/flux'
  stage directory:   '/code/stage'
  output directory:  '/code/output'

[List of matched checks]
- EchoRandTest /66b93401
Found 1 check(s)

Log file(s) saved in '/tmp/rfm-ilqg7fqg.log'

This also works

$ reframe -c tutorials/flux -C tutorials/flux/settings.py -l

And then to run tests, just replace -l (for list) with -r or --run (for run):

$ reframe -c tutorials/flux -C tutorials/flux/settings.py --run
root@b1f6650222bc:/code# reframe -c tutorials/flux -C tutorials/flux/settings.py --run
[ReFrame Setup]
  version:           4.0.0-dev.1
  command:           '/code/bin/reframe -c tutorials/flux -C tutorials/flux/settings.py --run'
  launched by:       root@b1f6650222bc
  working directory: '/code'
  settings file:     'tutorials/flux/settings.py'
  check search path: '/code/tutorials/flux'
  stage directory:   '/code/stage'
  output directory:  '/code/output'

[==========] Running 1 check(s)
[==========] Started on Fri Sep 16 20:47:15 2022

[----------] start processing checks
[ RUN      ] EchoRandTest /66b93401 @generic:default+builtin
[       OK ] (1/1) EchoRandTest /66b93401 @generic:default+builtin
[----------] all spawned checks have finished

[  PASSED  ] Ran 1/1 test case(s) from 1 check(s) (0 failure(s), 0 skipped)
[==========] Finished on Fri Sep 16 20:47:15 2022
Run report saved in '/root/.reframe/reports/run-report.json'
Log file(s) saved in '/tmp/rfm-0avso9nb.log'

For advanced users or developers, here is how to run tests within the container:

Testing

./test_reframe.py --rfm-user-config=tutorials/flux/settings.py unittests/test_schedulers.py -xs