qe-qhipster is an Orquestra module, which allows to users to integrate workflow components with the Intel qHiPSTER simulator.
It complies to the backend interface defined in the z-quantum-core.
In order to use qe-qhipster in your workflow, you need to add it as a resource:
resources:
- name: qe-qhipster
type: git
parameters:
url: "git@github.com:zapatacomputing/qe-qhipster.git"
branch: "main"and then import in a specific step:
- - name: my-task
template: template-1
arguments:
parameters:
- backend-specs: "{'module_name': 'qeqhipster.simulator', 'function_name': 'QHipsterSimulator'}"
- resources: [qe-qhipster]In order to work with Orquestra qHipster requires a custom docker image. Here's an example how to define it in your workflow:
config:
runtime:
language: python3
customImage: "zapatacomputing/qe-qhipster"
Then to use backend in the python code we can either simply create an object:
from qeqhipster.simulator import QHipsterSimulator
backend = QHipsterSimulator()or use backend-specs parameter to make our code work with other backends too:
from zquantum.core.utils import create_object
backend_specs = {{inputs.parameters.backend-specs}}
backend = create_object(backend_specs)You can find the development guidelines in the z-quantum-core repository.
Since qHiPSTER requires compiled binaries, it cannot be executed locally (unless you have aforementioned binaries). Therefore, in order to run tests on your machine, you need perform the following steps:
- pull the docker image zapatacomputing/qe_qhipster
- run a docker container for the above image
- download and install the
z-quantum-coreresource in said container - download and install the
qe-qhipsterresource in said container - run
python3 -m pytestfrom theqe-qhipsterresourcesrc/directory