Execution utilities

MimiqCircuits.check_equivalenceMethod
check_equivalence(conn, ex::CircuitTesterExperiment; kwargs...)

Executes the circuit tester experiment and verifies the results. Blocks until the execution is complete.

source
MimiqCircuits.getresultsMethod
getresults(connection, execution[; interval=1])

Block until the given execution is finished and return the results.

Keyword Arguments

  • interval: time interval in seconds to check for job completion (default: 1)

See also getinputs, getinput, getresult.

source
MimiqCircuits.submitMethod
submit(connection, circuit[; kwargs...])
submit(connection, circuits[; kwargs...])
submit(connection, circuit, noisemodel[; kwargs...])
submit(connection, circuits, noisemodel[; kwargs...])

Submit and schedule a quantum circuit execution on the MIMIQ remote services. Returns a Job object (non-blocking).

The circuit is applied to the zero state and the resulting state is measured via sampling. Optionally amplitudes corresponding to few selected bit states (or bitstrings) can be returned from the computation.

Keyword Arguments

  • label::String: mnemonic name to give to the simulation, will be visible on the web interface
  • algorithm: algorithm to use by the compuation. By default "auto" will select the fastest algorithm between "statevector" or "mps".
  • nsamples::Integer: number of times to sample the circuit (default: 1000, maximum: 2^16)
  • bitstrings::Vector{BitString}: list of bit states to compute the amplitudes for (default: BitString[])
  • timelimit: number of minutes before the computation is stopped (default: maximum allowed or 30 minutes)
  • bonddim::Int: bond dimension for the MPS algorithm (default: 256, maximum: 4096)
  • entdim::Int: parameter to control pre compression of the circuit. Higher value makes simulations slower. (default: 16, minimum:4, maximum: 64)
  • mpscutoff::Float64: singular value truncation cutoff for MPS simulation. Smaller values give higher accuracy at increased cost. (default: up to remote)
  • remove_swaps::Bool: whether or not to remove SWAP gates while permuting the qubits (default: up to remote)
  • canonicaldecompose::Bool: whether or not to decompose the circuit into GateU and GateCX (default: up to remote)
  • fuse::Bool: whether or not to fuse the gates in the circuit (default: up to remote)
  • reorderqubits: whether or not to reorder the qubits in the circuit. Can be true (default reordering), false (no reordering), or a Symbol/String for a specific method (e.g., :greedy, :spectral, :rcm, :sa_warm_start, :sa_only, :memetic, :multilevel, :grasp, :hybrid). (default: up to remote)
  • reorderqubits_seed::Union{Nothing, Integer}: independent seed for the qubit reordering RNG, allowing reproducible reordering independently of the simulation seed. (default: nothing, uses main seed)
  • seed::Int: a seed for running the simulation (default: random seed)
  • mpsmethod::Symbol: method to use for MPO application in MPS simulations. Can be :dmpo for direct application or :vmpoa/:vmpob for variational search. (default: up to remote)
  • mpotraversal::Symbol: method to traverse the circuit while compressing it into MPOs. Can be :sequential (default) or :bfs (Breadth-First Search). (default: up to remote)
  • streaming::Bool: whether or not to use the streaming simulator (default: false)
source