Exemplo n.º 1
0
def filtered_backends(provider: AccountProvider, simulator: bool = False):
    if simulator:
        return provider.backends(operational=True,
                                 filters=lambda b: b.configuration().n_qubits
                                 >= 2 and b.configuration().simulator)

    return provider.backends(operational=True,
                             filters=lambda b: b.configuration().n_qubits >= 2
                             and not b.configuration().simulator)
Exemplo n.º 2
0
def load_backend(provider: AccountProvider,
                 simulator: bool = False,
                 backend_name: Optional[str] = None,
                 reservation: int = 30) -> Backend:
    # List of Providers (Both Real and Simulated) - provider.backends()
    # --- System Info
    # https://quantum-computing.ibm.com/services?systems=yours
    # --- Real Quantum Computers
    # ibmq_santiago, ibmq_athens - 5 Qubits, 32 Quantum Volume
    # ibmq_belem, ibmq_quito - 5 Qubits, 16 Quantum Volume
    # ibmq_lima, ibmqx2 (ibmq_5_yorktown) - 5 Qubits, 8 Quantum Volume
    # ibmq_16_melbourne - 15 Qubits, 8 Quantum Volume
    # ibmq_armonk - 1 Qubit, 1 Quantum Volume
    # --- Simulators
    # simulator_stabilizer - 5000 Qubits
    # simulator_mps - 100 Qubits
    # simulator_extended_stabilizer - 63 Qubits
    # simulator_statevector, ibmq_qasm_simulator - 32 Qubits
    # --- Notes
    # ibmqx2 - Alias for ibmq_5_yorktown

    if backend_name is not None:
        return provider.get_backend(name=backend_name)

    # Use Quantum Computer Or Simulator
    return least_busy(filtered_backends(provider=provider,
                                        simulator=simulator),
                      reservation_lookahead=reservation)
Exemplo n.º 3
0
def most_busy_backend(provider: AccountProvider) -> IBMQBackend:
    """Return the most busy backend for the provider given.

    Return the most busy available backend for those that
    have a `pending_jobs` in their `status`. Backends such as
    local backends that do not have this are not considered.

    Args:
        provider: IBM Quantum Experience account provider.

    Returns:
        The most busy backend.
    """
    backends = provider.backends(simulator=False, operational=True)
    return max([b for b in backends if b.configuration().n_qubits >= 5],
               key=lambda b: b.status().pending_jobs)