From 4c890d5fdf39ab15611d8bdb7c61798bbe344b97 Mon Sep 17 00:00:00 2001 From: Doug Strain Date: Fri, 10 Jun 2022 14:05:48 -0700 Subject: [PATCH 1/2] Add information on new vendor setup - Add a blurb about submitting RFC and attending cirq cync - Adds information about possible options and different pieces needed for an integration. - Links to this in two places. --- docs/dev/rfc_process.md | 43 ++++++++++++++++++++++++++++++++++++++- docs/ecosystem.md | 6 +++++- docs/hardware/_index.yaml | 2 +- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/docs/dev/rfc_process.md b/docs/dev/rfc_process.md index 86057dba6b2..fc1ddd123a5 100644 --- a/docs/dev/rfc_process.md +++ b/docs/dev/rfc_process.md @@ -105,5 +105,46 @@ While we encourage and celebrate every contributor, the bar for RFC acceptance i * Failure to achieve consensus during the design review. * Concerns raised during implementation (for example: inability to achieve backwards compatibility, concerns about maintenance). -If this process is functioning well, RFCs are expected to fail in the earlier, rather than later stages. +If this process is functioning well, RFCs are expected to fail in the earlier, rather than later stages. An approved RFC is not a commitment to implementation on any sort of timeline. The prioritization of features depends on user interest and willingness of contributors to implement them. + +## New hardware integrations + +Several hardware vendors already have integrations with cirq. We are not +currently soliciting additional vendors. However, if you are considering +integrating with cirq, we would highly encourage you to engage with the +cirq-maintainer team through attending the weekly cirq cync and submitting +an RFC as specified above. Everyone benefits from a well-maintained, user +friendly interface with a high reliability, which is the goal of having this +RFC process. + +There are a range of possibilities for integrating with cirq, including: + +* Completely independent repository: requires the least engagement from +the cirq team, but also lacks the benefits of a tighter integration and +partnership. +* Different repository with links or tutorials hosted on cirq: +less coordination is needed than a hosted integration, but requires +continuous integration on the external repository to ensure compatibility +with new cirq versions. +* Integration hosted within cirq repository: requires the highest +amount of coordination and effort but allows a tighter integration and for +cirq-maintainers to modify the integration code to stay in sync with an +evolving cirq-core code base. We generally do not accept submissions for +this type of integration for third-party vendors that function as +intermediaries for other cloud vendors. + +Several things are needed for a successful integration: + +* Plan for including external dependencies (if needed). +* Access and authentication +* Tutorials and guides for use of the interface (for instance, +a Getting Started guide). +* `Device` implementation for validating circuits on the hardware +* Transformer for compiling circuits to the supported gates on the +hardware (or use `cirq.optimize_for_target_gateset`) +* ` Sampler` interface for running circuits on the hardware service. +* Conisder also providing a noise model that users can use to simulate the +device if direct access is not available. + + diff --git a/docs/ecosystem.md b/docs/ecosystem.md index 196ae29c2be..fba9a12be3c 100644 --- a/docs/ecosystem.md +++ b/docs/ecosystem.md @@ -10,7 +10,7 @@ The following document provides an ecosystem overview of how the various tools c * **Quantum Circuit Simulators:** Cirq is compatible with a number of quantum circuit simulators that can run either locally or in a distributed fashion. -# Research libraries and tools +# Research libraries and tools ## Algorithm libraries and experiments @@ -45,6 +45,10 @@ The following document provides an ecosystem overview of how the various tools c |[Pasqal](https://quantumai.google/cirq/tutorials/pasqal/getting_started)|Neutral atoms| |[Rigetti](https://quantumai.google/cirq/tutorials/rigetti/getting_started)|Superconducting qubits| +For more information for vendors about integrating with cirq, +see our [RFC page](/cirq/dev/rfc_process#new_hardware_integrations). + + ## High performance quantum circuit simulators |Name|Main sponsor|Description| diff --git a/docs/hardware/_index.yaml b/docs/hardware/_index.yaml index 64117356417..c164c003ade 100644 --- a/docs/hardware/_index.yaml +++ b/docs/hardware/_index.yaml @@ -119,7 +119,7 @@ landing_page: name: menu_book - heading: Custom devices - description: How to write custom Device classes for quantum hardware. + description: How to write custom Device classes for quantum hardware. More information for vendors on integrating with cirq can be found on the RFC page. items: - heading: Neutral atom device description: A custom device class for a neutral atom device. From 19465a203332437fc7bbed346d7b6a5318c60342 Mon Sep 17 00:00:00 2001 From: Doug Strain Date: Mon, 13 Jun 2022 10:12:03 -0700 Subject: [PATCH 2/2] Address comments. --- docs/dev/rfc_process.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/dev/rfc_process.md b/docs/dev/rfc_process.md index fc1ddd123a5..d371beeab0d 100644 --- a/docs/dev/rfc_process.md +++ b/docs/dev/rfc_process.md @@ -118,6 +118,9 @@ an RFC as specified above. Everyone benefits from a well-maintained, user friendly interface with a high reliability, which is the goal of having this RFC process. +Examples of other integrations can be found on the +[Hardware page](/cirq/hardware). + There are a range of possibilities for integrating with cirq, including: * Completely independent repository: requires the least engagement from @@ -137,7 +140,7 @@ intermediaries for other cloud vendors. Several things are needed for a successful integration: * Plan for including external dependencies (if needed). -* Access and authentication +* Access and authentication. * Tutorials and guides for use of the interface (for instance, a Getting Started guide). * `Device` implementation for validating circuits on the hardware