AiiDA transport and scheduler plugins for interfacing with FirecREST via pyfirecrest.
You can install the package either from GitHub or PyPI:
pip install git+https://github.com/aiidateam/aiida-firecrest.git
# pip not yet available
pip install aiida-firecrest
Once installed, verify that the firecrest
transport and scheduler plugins are available in AiiDA:
$ verdi plugin list aiida.transports firecrest
Transport interface for FirecREST.
Must be used in conjunction with the 'firecrest' scheduler plugin.
$ verdi plugin list aiida.schedulers firecrest
Scheduler interface for FirecREST.
Must be used in conjunction with the 'firecrest' transport plugin.
You can then setup a Computer
in AiiDA:
$ verdi computer setup --transport firecrest --scheduler firecrest --hostname firecrest --label <YOUR_LABEL>
After completing the prompts, configure the computer with your credentials:
$ verdi -p <MY_PROFILE> computer configure firecrest <YOUR_LABEL>
Finally, test the setup:
$ verdi computer test <YOUR_LABEL> --print-traceback
Expected output:
After this, AiiDA should be able to interact with FirecREST seamlessly.
See tests/test_calculation.py
for a working example using the plugin through the AiiDA API.
Also consider exploring the pyfirecrest CLI for direct interaction with a FirecREST server.
If you encounter any problems/bug, please don't hesitate to open an issue on this repository.
Clone and install the package in development mode:
git clone https://github.com/aiidateam/aiida-firecrest.git
cd aiida-firecrest
pip install -e .[dev]
To run the tests, you'll first need access to a FirecREST server. A simple way to do that locally, is to use the firecrest-v2 repo and spin up the Docker container --which is how we do it in the CI:
git clone https://github.com/eth-cscs/firecrest-v2
cd firecrest-v2
docker compose -f 'docker-compose.yml' up -d --build
By default, pytest
will use the .firecrest-demo-config.json
configuration file to connect to the the local Docker-based FirecREST server:
┌─────────────────┐───►┌─────────────┐───►┌──────────────────────────────┐
│ aiida_firecrest │ │ pyfirecrest │ │ FirecREST deployed on docker │
└─────────────────┘◄───└─────────────┘◄───└──────────────────────────────┘
You can also test against a real FirecREST server by supplying your own config file:
pytest --firecrest-config="MY_CONFIGURATION.json"
Make sure the configuration is similarly structured as in .firecrest-demo-config.json
. Note that tests involving job submission may experience timeouts due to actual HPC queue wait times.
┌─────────────────┐───►┌─────────────┐───►┌────────────────────────────────┐
│ aiida_firecrest │ │ pyfirecrest │ │ FirecREST on a real HPC server │
└─────────────────┘◄───└─────────────┘◄───└────────────────────────────────┘
For debugging or direct file system access, consider using the pyfirecrest
CLI.
For example, after setting the appropriate environment variables, you can run:
$ firecrest ls /home/fireuser/
Before committing any changes, ensure the code is properly formatted and linted:
pre-commit run --all-files
This project is supported by SwissTwins project.