Is your feature request related to a problem? Please describe.
QRAND will make requests to quantum backends in order to randomly generate numbers. These requests (i.e. jobs) will have a unique id associated to each of them given by the backend; however, it is very difficult to tell apart which of these requests were made from QRAND when looking at the information stored in the provider.
Describe the solution you'd like
By given QRAND's jobs a particular, easily distinguishable, friendly name we will be able to tell them apart in the provider (e.g. IBM-Q website). Ideally this name will contain:
- The word QRAND.
- The name of the author.
- The name of the
BareQuantumProtocol being run.
- Timestamp id.
E.g.: QRAND by Pedro Rivero - EntanglementProtocol | 2021-06-06T20:14:00Z
If we want to include the name of the protocol, we will need to add a name str parameter to create_job in QuantumFactory. The easiest way to implement this is by defining a property in QuantumProtocol called job_name. This will be inherited by all protocols, and produce an updated name every time it is called (i.e. updating the protocol name through self.__class__.__name__ or type(self).__name__, as well as the timestamp). Since we are using a decorator structure, the name will have to be produce by BareQuantumProtocol and tunneled all the way up through the ValidationDecorator class.
Describe alternatives you've considered
The alternative would be to hardcode the name inside every platform's QuantumJob, but this will not be able to display the name of the protocol.
Additional context
Qiskit: Qiskit/qiskit-ibmq-provider#118, and job_name
Q#: azure.execute documentation.
Is your feature request related to a problem? Please describe.
QRAND will make requests to quantum backends in order to randomly generate numbers. These requests (i.e. jobs) will have a unique id associated to each of them given by the backend; however, it is very difficult to tell apart which of these requests were made from QRAND when looking at the information stored in the provider.
Describe the solution you'd like
By given QRAND's jobs a particular, easily distinguishable, friendly name we will be able to tell them apart in the provider (e.g. IBM-Q website). Ideally this name will contain:
BareQuantumProtocolbeing run.E.g.: QRAND by Pedro Rivero - EntanglementProtocol | 2021-06-06T20:14:00Z
If we want to include the name of the protocol, we will need to add a
namestr parameter tocreate_jobinQuantumFactory. The easiest way to implement this is by defining a property inQuantumProtocolcalledjob_name. This will be inherited by all protocols, and produce an updated name every time it is called (i.e. updating the protocol name throughself.__class__.__name__ortype(self).__name__, as well as the timestamp). Since we are using a decorator structure, the name will have to be produce byBareQuantumProtocoland tunneled all the way up through theValidationDecoratorclass.Describe alternatives you've considered
The alternative would be to hardcode the name inside every platform's
QuantumJob, but this will not be able to display the name of the protocol.Additional context
Qiskit: Qiskit/qiskit-ibmq-provider#118, and
job_nameQ#:
azure.executedocumentation.