Qubernetes projects
Projects provide a structured way to organize your workspace, dependencies and automate the preparation of the containers needed to run your experiments on different quantum simulators and hardware.
You can create a project by defining a Q8Sproject file in the root directory of your workspace. This file specifies the project name, common dependencies, target specific dependencies and the information needed to publish the containes to the container registry.
name: catalyst-lightning-gpu-demo
python_env:
dependencies:
- pennylane
- pennylane-catalyst
targets:
cpu:
python_env:
dependencies:
- jax
- pennylane-lightning
gpu:
python_env:
dependencies:
- jax[cuda12]
- pennylane-lightning-gpu
docker:
username: vstirbuThe project file is used by the new q8sctl build command line tool to build and push the images to the Docker Hub for all the targets defined in the Q8Sproject file.
user@host:~$ q8sctl build --initThe command will create in the workspace root a .q8s_cache folder with the following structure:
- Dockerfile
- requirements.txt
- Dockerfile
- requirements.txt
- images
- kubeconfig
- Q8Sproject
- demo.py
The information about the containers stored in the cache will be used by the q8sctl execute command to run the experiments on the remote cluster with the apropriate containers specific to the selected target.
user@host:~$ q8sctl execute --target gpu --kubeconfig kubeconfig demo.py