This guidance guides you through the process of compiling a quantum circuit on different quantum computers with several quantum compilers using the NISQ Analyzer and additional components.
All data of the case study are contained in sample-data.
- Docker Engine - Install Guide
- Docker Compose - Install Guide
- Clone this repository
- Required ports are listed here
- Copy the _docker-compose.override.yml file in the Docker folder
to
docker-compose.override.yml
. - Insert your Qiskit token at
QPROV_IBMQ_TOKEN: 'your-qiskit-token-here'
in thedocker-compose.override.yml
.
Note: Currently only quantum computers of IBMQ are supported.
Open a console, navigate to the folder Docker, and run the following commands:
docker-compose pull
docker-compose build db
docker-compose up
After a few seconds, the ecosystem is up and running, and you can access it via the browser on http://localhost:80. The UI is visible.
-
In the UI, under "Execution Environments" > "Software Platforms", e.g., the SDK "Qiskit" is listed.
-
Go to "Algorithms" to see a list of algorithms. You can add a new algorithm (button under "Search") by inserting a name and choosing its computation model.
-
In context of an algorithm, go to the "Implementations" tab where implementations are listed. You can add a new implementation to the algorithm by choosing a name for the circuit you want to compile.
-
In context of the implementation, go to the "Selecion Criteria" tab > insert the URL of the raw circuit, specifiy its SDK and select its language > save your adaptions.
-
Go to the "NISQ Analyzer" tab in context of the implementation > click "New Analysis", mark "Include Simulators", and insert you token of the Qiskit SDK. The analysis is complete when the "Show analysis" button occurs.
-
Clicked on the "Show analysis" button, you can see suitable compiled circuits and their metric values for different quantum computers of several quantum compilers. To see all metric values scroll horizontally. It is automatically checked if the quantum computer metrics used for compilation are still up-to-date.
-
For executing a compiled circuit: click "Execute" > wait some time > click "Show result".
-
To prioritize the list of compiled circuits, click the "Prioritize" button, select predefined preferences or define own weights.
When defining own weights, you can select the MCDA method to be applied and adapt, if needed, the importance points for the individual metrics, as described in the dialog, then, click "Ok". When selecting predefined preferences you can choose the MCDA method, and in case of stable execution results, also the weighting method.
8.1 If a ranking based on stable execution results is desired, a "learning weights" processing dialog appears. When weights are learned by the selected weighting method, the list of weights appears, and they can be adjusted. By clicking "Ok", the prioritization with the weights is started.
-
When the prioritization process is finished, the rank and the score of each compiled circuit is presented.
-
The sensitivity of the ranking can be analyzed (in case TOPSIS or PROMETHEE II were previously selected to rank) by clicking the "Analyze Rank Sensitivity" button. The dialog enables to adjust the analysis parameters.
-
As soon as the analysis result is returned, a "Sensitivity Analysis Result" button appears.
-
By clicking on this button, a new window opens, showing a plot that visualizes the analysis result.
- To stop the environment go to the console window with the docker-compose running, stop the process (e.g. control+shift+C for Mac).
- To remove all volumes run
docker-compose down -v
.
Dies ist ein Forschungsprototyp. Die Haftung für entgangenen Gewinn, Produktionsausfall, Betriebsunterbrechung, entgangene Nutzungen, Verlust von Daten und Informationen, Finanzierungsaufwendungen sowie sonstige Vermögens- und Folgeschäden ist, außer in Fällen von grober Fahrlässigkeit, Vorsatz und Personenschäden, ausgeschlossen.
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
SPDX-License-Identifier: Apache-2.0