-
Notifications
You must be signed in to change notification settings - Fork 750
Conversation
rfcs/0000-error-mitigation.md
Outdated
schedule_config['stretch_factors'] = stretch_factors | ||
error_mitigation_schedules = schedule_circuit_error_mitigation(experiments, schedul_config, method) | ||
|
||
return assemble_schedules(schedules=error_mitigation_schedules, qobj_id=qobj_id, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
something funky might happen elsewhere to user code (or internal to qiskit maybe, too) when the number of jobs executed is not equal to the number of circuits given, since this is often assumed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know where in qiskit this might be an issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is an example, sort of pseudocode:
job = execute(circuits) # circuits: List[QuantumCircuit]
result = job.get_results()
result_for_ith_circuit = result.get_counts(i)
I always see something like this on the user side for retrieving their data
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
specifically, I think the Result object or however results are returned could get hairy. I find the results object already pretty confusing, so I'm not sure what changes would have to be made or what issues to expect
rfcs/0000-error-mitigation.md
Outdated
This would then allow the creation of schedules for error mitigation that can be assembled using `assemble_schedule` and run on the backend. | ||
|
||
Here are some additional considerations: | ||
- Currently, the name of a scheduled circuit is the same as the circuit. We will also need to distinguish the schedules with different stretch factors, for instance, by including the stretch factor in the name of the circuit. E.g. `sched = Schedule(name=circuit.name + 'c=%d'.format(schedule_config['stretch_factor']))`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe Schedule
s should also have metadata. I don't really like the idea of using name
to hold data that will be used programmatically elsewhere
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are still right that the names will have to be different (because unfortunately name
might already be used to grab one schedule's results from a list of a job's results)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with you on both points. Each schedule will still need a unique name but putting the stretch factor in the schedule name is not particularly appealing. Lets come up with something else.
printing config
Schedule has a method arg. Co-Authored-By: Lauren Capelluto <laurencapelluto@gmail.com>
Made `error_mitigation` in execute a string.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left some comments. I like the backend-calibrated gates. I think similar to this, we can do easier readout error mitigation if the backend provides some extra data. But that's for another RFC.
Adding changes based on Ali's comments.
Co-Authored-By: Ali Javadi-Abhari <ajavadia@users.noreply.github.com>
Co-Authored-By: Ali Javadi-Abhari <ajavadia@users.noreply.github.com>
@lcapelluto please make new comments on Qiskit/RFCs#3. I'll also do a final review there. |
Summary
This PR contains an RFC discussing error mitigation and how to include it in Qiskit.
Details and comments
Details are in rfcs/0000-error-mitigation.md