This notebook includes a couple of clean and succinct code blocks that you can build on or copy and paste elsewhere in order to make use of the Quantum Virtual Machine without worrying about how it works inside.
Install Cirq and qsim
# @title Install `cirq_google` and `qsimcirq`try:importcirqimportcirq_googleexceptImportError:print("installing cirq...")!pipinstall--quietcirq-googleprint("installed cirq.")importcirqimportcirq_googletry:importqsimcirqexceptImportError:print("installing qsimcirq...")!pipinstall--quietqsimcirqprint(f"installed qsimcirq.")importqsimcirqimporttime
# @title Choose a processor ("rainbow" or "weber")processor_id="rainbow"# @param {type:"string"}# Instantiate an engine.sim_engine=cirq_google.engine.create_default_noisy_quantum_virtual_machine(processor_id=processor_id,simulator_class=qsimcirq.QSimSimulator)print("Your quantum virtual machine",processor_id,"is ready, here is the qubit grid:","\n========================\n",)print(sim_engine.get_processor(processor_id).get_device())
To learn how to create a device ready circuit, have a look at the QVM Circuit Preparation page.
# create your device ready circuit here!q0=cirq.GridQubit(4,1)your_circuit=cirq.Circuit([(cirq.X**0.5)(q0),cirq.measure(q0)])print(your_circuit)
(4, 1): ───X^0.5───M───
Execute Your circuit on the Quantum Virtual Machine.
# @title Enter the name of your device ready circuit and execute it on the Quantum Virtual Machinecircuit=your_circuit# @paramreps=3000start=time.time()results=sim_engine.get_sampler(processor_id).run(circuit,repetitions=reps)elapsed=time.time()-startprint('Circuit successfully executed on your quantum virtual machine',processor_id)print(f'QVM runtime: {elapsed:.04g}s ({reps} reps)')print('You can now print or plot "results"')
Circuit successfully executed on your quantum virtual machine rainbow
QVM runtime: 0.04235s (3000 reps)
You can now print or plot "results"
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-01 UTC."],[],[]]