Skip to content

Commit

Permalink
Address PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
bachase committed Feb 20, 2025
1 parent e1402b9 commit 2a3bdbf
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
[![Discord Chat](https://img.shields.io/badge/dynamic/json?color=blue&label=Discord&query=approximate_presence_count&suffix=%20online.&url=https%3A%2F%2Fdiscord.com%2Fapi%2Finvites%2FJqVGmpkP96%3Fwith_counts%3Dtrue)](http://discord.unitary.foundation)


The **Unitary Compiler Collection (UCC)** is a Python library for frontend-agnostic, high performance compilation of quantum circuits. UCC's goal is to make quantum programming simpler, faster, and more scalable, all while building on and contributing to the open source quantum ecosystem.
The **Unitary Compiler Collection (UCC)** is a Python library for frontend-agnostic, high performance compilation of quantum circuits. UCC's goal is to gather together the best of open source compilation to make quantum programming simpler, faster, and more scalable.

By leveraging [qBraid](https://github.com/qBraid/qBraid), UCC interfaces automatically with multiple quantum computing frameworks, including [Qiskit](https://github.com/Qiskit/qiskit), [Cirq](https://github.com/quantumlib/Cirq), and [PyTKET](https://github.com/CQCL/tket) and supports programs in OpenQASM 2 and [OpenQASM 3](https://openqasm.com/). For a full list of the latest supported interfaces, just call `ucc.supported_circuit_formats`.


**Want to know more?**
- Check out our [documentation](https://ucc.readthedocs.io/en/latest/), which you can build locally after installation by running `make html` in `ucc/docs/source`.
- Read the [launch announcement](TODO) to learn more on the current state of UCC, its capabilities and future direction.
- Read the [launch announcement](https://unitary.foundation/posts/2025_ucc_launch_blog) to learn more on the current state of UCC, its capabilities and future direction.
- For code, repo, or theory questions, especially those requiring more detailed responses, submit a [Discussion](https://github.com/unitaryfund/ucc/discussions).
- For casual or time sensitive questions, chat with us on [Discord](http://discord.unitary.foundation).

Expand Down
14 changes: 8 additions & 6 deletions docs/source/benchmarking.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Benchmarking
############

UCC includes a benchmarking suite to evaluate the performance of its quantum circuit compiler.
These benchmarks help validate improvements, compare against other compilers, and guide future optimizations.
These benchmarks help validate improvements, compare performance across compilers, and guide future optimizations.
This guide explains the **purpose**, **design**, and **execution** of UCC benchmarks and how you can contribute.

Purpose
Expand All @@ -31,12 +31,12 @@ Our benchmarks follow a structured methodology to ensure consistency and reliabi
3. **Metrics**: We track several metrics to evaluate compiler performance:
- *Compiled Gatecount Ratio*: Measures the ratio of 2-qubit gates in the compiled versus raw circuit.
- *Compilation Time*: Tracks the time taken to compile a circuit.
- *Observable under noise*: Measures the fidelity of the compiled circuit under noise models, using an observable relevant for that circuit.
- *Observable under noise*: Measures the fidelity of the compiled circuit under noise, using an observable relevant for that circuit.

4. **Reproducibility**: In order to ensure the reliability of our benchmarks, we follow these practices:
- Benchmark scripts and results are available in the `UCC repository <https://github.com/unitaryfund/ucc/tree/main/benchmarks>`_.
- Results are stored in version-controlled reports to track improvements over time.
- Official results are run using a dedicated GH runner for consistent comparison.
- Official results are run using a dedicated machine for consistent comparison.

Running the benchmarks
----------------------
Expand All @@ -47,9 +47,9 @@ the benchmark script via:

.. code-block:: sh
poetry run ./benchmarks/scripts/run_benchmarks.sh 8
poetry run ./benchmarks/scripts/run_benchmarks.sh <num_parallel>
This will run the benchmarks in parallel on 8 processes, and store the results to
where ``num_parallel`` is the number of parallel processes to run on. The results are stored in
``benchmarks/results/`` as CSV files.

The script assumes you have GNU parallel available on your machine, available
Expand All @@ -62,8 +62,10 @@ We welcome contributions to improve UCC’s benchmarking suite! This could inclu

- **Adding New Benchmark Circuits** to cover an additional real-world use case.
- **Improving Benchmark Metrics** to add additional metrics of interest to compare compiler performance.
- **Optimizing Compiler Configuraitons** to improve the default configuration of compilers in the benchmark.
- **Optimizing Compiler Configurations** to improve the default configuration of compilers in the benchmark.
- The current compiler settings are defined `here <https://github.com/unitaryfund/ucc/blob/fde89f6e25f3adc2b47313e3e1c7cc0b5b2e1a18/benchmarks/scripts/common.py#L90-L207>`_.
- For Qiskit, a change could be to the `optimization level set when transpiling <https://github.com/unitaryfund/ucc/blob/bbf6042951606a6999658036507e219674577f68/benchmarks/scripts/common.py#L108>`_.
- For Cirq, a change could update the `gate set optimization passes <https://github.com/unitaryfund/ucc/blob/bbf6042951606a6999658036507e219674577f68/benchmarks/scripts/common.py#L113>`_ used when compiling.

Take a look at
:doc:`contributing guide <contributing>` for the more general steps to follow on making contributions to the UCC codebase.

0 comments on commit 2a3bdbf

Please sign in to comment.