I tried to change a little the code here for running the quantum volume circuits in real devices. My code is
backend = provider.get_backend('ibmq_bogota')
shots = 1000
for trial in range(ntrials):
clear_output(wait=True)
t_qcs = transpile(qv_circs[trial], backend=backend, initial_layout=qubit_lists[0])
qobj = [assemble(t_qcs)]
job_manager = IBMQJobManager()
job_set_foo = job_manager.run(qobj, backend=backend, shots=shots, name='QV trial %d'%(trial))
print(job_set_foo.report(detailed=True))
print(f'Completed trial {trial+1}/{ntrials}')
But I get
status: job submit failed: 'bad input to assemble() function; must be either circuits or schedules'
I don't understand how this can fail,since qv_circs
must contain the necessary attributes. Note that I wrote qobj = [assemble(t_qcs)]
instead of qobj = assemble(t_qcs)
. If I do the latter I obtain
'QasmQobj' object is not iterable
EDIT:
Some information about the objects:
print(t_qcs)
[<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x7fa2398698a0>]
print(type(t_qcs))
<class 'list'>
qv_circs
orprint(t_qcs)
/print(type(t_qcs))
on the iteration that's failing? $\endgroup$qv_circs
(i.e. I don't know which methods you suggest to use to extract certain information). Meanwhile, I can tell you that I obtained the object using the qiskit tutorial:import qiskit.ignis.verification.quantum_volume as qv
andqv_circs, qv_circs_nomeas = qv.qv_circuits(qubit_lists, ntrials)
. $\endgroup$