Quantum Compute Service QRMI - Examples in Lua#
Prerequisites#
Setup#
export LUA_CPATH="</path/to/qrmi.so-dir/>?.so;;"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libqrmi.so-dir
Example:
export LUA_CPATH="/shared/qrmi/lua/build/?.so;;"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/shared/qrmi/target/release
Set environment variables#
Because QRMI is an environment variable driven software library, all configuration parameters must be specified in environment variables. The required environment variables are listed below.
Environment variables |
Descriptions |
|---|---|
|
IBM Quantum Compute Service endpoint
URL (e.g. |
|
IBM Cloud IAM endpoint
URL (e.g. |
|
IBM Cloud IAM API Key |
|
Cloud Resource Name (CRN) of the
provisioned Quantum Compute
Service instance, starting with
|
|
Execution mode to run the session
in, |
|
The maximum time (in seconds) for
the session to run, subject to
plan limits, default: |
|
(Optional) Cost of the job as the
estimated time it should take to
complete (in seconds). Should not
exceed the cost of the program,
default: |
|
(Optional) Session ID, can be obtanied by acquire function. If exists, used in the target functions. |
Create Qiskit Primitive input file as input#
Refer to this tool to generate. You can customize quantum circuits by editing the code.
Note
Use the file with name ending _params_only.json,
e.g. sampler_input_ibm_torino_params_only.json.
How to build this example#
mkdir build
cd build
cmake ..
make
How to run this example#
Run example.lua:
lua example.lua <backend_name> <resource_type> <program type> <input filename>
For example:
export ibm_torino_QRMI_IBM_QCS_ENDPOINT=https://quantum.cloud.ibm.com/api/v1
export ibm_torino_QRMI_IBM_QCS_IAM_ENDPOINT=https://iam.cloud.ibm.com
export ibm_torino_QRMI_IBM_QCS_IAM_APIKEY=your_apikey
export ibm_torino_QRMI_IBM_QCS_SERVICE_CRN=your_instance
lua example.lua ibm_torino ibm-quantum-compute-service sampler ../../examples/task_runner/qiskit/sampler_input_ibm_torino_params_only.json