Hi there,
I’m writing a script that allows me to segment a long experiment into smaller batches so I can run experiments without hoarding on the QPU.
In particular It’s mandatory for me to keep track of the calibration data of the QPU in each segmented job I launch.
This last requirement (which I assume is not that rare) interacts very wierdly with how async jobs are created and resumed and I wanted to share my thoughts on that.
- Async jobs are meant to be resumed in a second time with the job ID, possibly by a different script
- Remote async jobs require an active RemoteProcessor to be resumed
- The RemoteProcessor that resumes the job could be connected to a different backend than the one with which the job was originally created. The identity between these two objects could be an important requirement in some application, are check of this kind performed anywhere?
- The identity between the processor that creates the job and the one that resumes it could be technically guaranteed by noting down locally the backend used, but in my case this is not enough as the calibration data reported when I resume the job will likely differ from the one reported when the job was created (the latter are also more likely to be close in time to when the job is actually executed).
- In case I decide to further note down locally the calibration data, this renders any kind of identity between the creator and resumer Processor useless: the resumer RemoteProcessor just becomes a mean to retrieve the raw counts data from the cloud, regardless of the backend.
Do you have any thoughts on this problem?
Is it really an inconsistency?
Am I handling things the right way?