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

using --cpu-only + --gpu-only options supported by ReFrame #83

Open
boegel opened this issue Sep 6, 2023 · 2 comments
Open

using --cpu-only + --gpu-only options supported by ReFrame #83

boegel opened this issue Sep 6, 2023 · 2 comments

Comments

@boegel
Copy link
Contributor

boegel commented Sep 6, 2023

I had this bit written up for the docs on the EESSI test suite, but neither of these options doesn't seem to work as intended with our GROMACS/TensorFlow tests:

#### Filtering by device (CPU, GPU)

By default, ReFrame will generate variants of tests for each applicable
device type, based on the specified [`features`](https://reframe-hpc.readthedocs.io/en/stable/config_reference.html#config.systems.partitions.features) for system partitions (in the ReFrame configuration file) and [`valid_systems`](https://reframe-hpc.readthedocs.io/en/stable/regression_test_api.html#reframe.core.pipeline.RegressionTest.valid_systems) value of the available tests.

To only run checks on CPU, you can use the [`--cpu-only` option](https://reframe-hpc.readthedocs.io/en/stable/manpage.html#cmdoption-cpu-only).

To only run tests on GPU, you can use the [`--gpu-only` option](https://reframe-hpc.readthedocs.io/en/stable/manpage.html#cmdoption-gpu-only).

For example, to only run tests on GPU:

```
reframe --gpu-only
```

You can use `--list` to check the impact of these options on generated checks.
  • When using --gpu-only --list, no checks are generated
  • When using --cpu-only --list, I see GROMACS CUDA modules being used to generate tests (they should only be used for GPU checks?)
@smoors
Copy link
Collaborator

smoors commented Nov 19, 2023

--gpu-only filters out tests that do not have gpus_per_node defined.
--cpu-only filters out tests that have gpus_per_node defined.

in the GROMACS test, gpus_per_node is defined after the setup stage (hook assign_one_task_per_compute_unit), which is after the filtering, thus all/no tests are filtered out with --gpu-only and --cpu-only, respectively.

note that in ReFrame 4.4 those options are deprecated; there is a new option -E which allows filtering on any variable or parameter.

@smoors
Copy link
Collaborator

smoors commented Nov 19, 2023

the reason we set the resources after the setup phase is that we can only know the available resources for concrete test cases (via the partition).

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

No branches or pull requests

2 participants