Hardware Configuration
Documentation about configuring tergite-backend
General Configuration
To configure the entire tergite-backend application, we use .env files.
Just copy the dot-env-template.txt to env and update the variables there in.
cp dot-env-template.txt .envQBLOX Instruments Configuration
We use the quantify-config.example.json as a template for how to configure this application to control the QBLOX instruments that control the quantum computer.
This configuration file uses QBLOX Harware Compilation Configuration format, which can be found here.
Please check the documentation on how to properly create configuration for QBLOX instruments: Quantify documentation
Copy this template for a minimal example configuration with one control module and one readout module connected to microwave and resonator ports appropriately.
cp quantify-config.example.json quantify-config.jsonQBLOX Metadata configuration
In addition to QBLOX Hardware Compilation Configuration, you need to provide a metadata for your instrument setup. This is a small template file with a simple structure that is used to describe clusters names, ip_addresses, whether this is a dummy cluster. In addition it is also used to provide a QBLOX module dictionary for a dummy clusters.
However this configuration file has a redundancy with the QBLOX Hardware Compilation Confiugration and might be changed in the future releases.
We use quantify-metadata.yml as a template for providing metadata.
Copy this documented template and you can fill in your cluster’s ip_address and desired configuration.
cp quantify-metadata.example.yml quantify-config.ymlDummy QBLOX Instrumments
You may wish to run some dummy QBLOX instruments if you don’t have access to the physical QBLOX instruments
You may leave QBLOX Hardware Compilation Configuration the same as a real configuration, and change is_dummy field to True for your dummy cluster in the quantify-metadata.yml
Then you may also need to provide a module dictionary for your dummy cluster in order to successfully compile your dummy schedule.
We already have a preconfigured dummy-quantify-metadata.yml for this in the app/tests/fixtures folder.
As well as corresponding dummy-quantify-config.json for this in the app/tests/fixtures folder.
Copy it to the tergite-backend folder.
cp app/tests/fixtures/dummy-quantify-metadata.yml quantify-metadata.ymlAs well as quantify-config.yml
cp app/tests/fixtures/dummy-quantify-config.json quantify-config.jsonNOTE: You can find out more about the configuration properties in the executor-config file by visiting the quantify_scheduler docs and the QCoDeS drivers docs.
NOTE: You could choose to use a different name for your quantum executor config file e.g. foobar.json. You however need to explicitly set this name in the .env file QUANTIFY_CONFIG_FILE=foobar.json
NOTE: The same works for quantify metadata file e.g. foobar.yml. You also need to explicitly set this name in the .env file QUANTIFY_METADATA_FILE=foobar.yml
General Backend Configuration
We configure all backends using the backend_config.toml.
We use the backend_config.example.toml as a template.
Backend Configuration Calibrations
Whenever you need to pass calibration values to your backend for example for a pulse-level simulator or a dummy QBLOX backend. You need to also create a calibration.seed.toml file with the pre-configured values. You don’t have to provide this file for a real backend.
We use the calibration.seed.example.toml as a template.
NOTE: You don’t need to pass the .env file, the backend_config.toml file or the quantify-config.json file as well as calibration.seed.toml and quantify-metadata.yml to the start script as these are automatically loaded for you.
Single-Qubit Qiskit Pulse Simulator
You may wish to run a single-qubit simulator.
First update the .env file to contain EXECUTOR_TYPE=qiskit_pulse_1q.
We already have a preconfigured backend_config.simq1.toml for this in the app/tests/fixtures folder.
As well as a preconfigured calibrations qiskit_pulse_1q.seed.toml for this in the app/tests/fixtures folder.
Copy it to your root folder.
# on the root of the project
cp app/tests/fixtures/backend_config.simq1.toml backend_config.toml# on the root of the project
cp app/tests/fixtures/qiskit_pulse_1q.seed.toml calibration.seed.tomlAnd run the application.
./start_bcc.sh