Mit Qiskit können Jobs mit Python (oder Swift und JavaScript) an IBM Geräte gesendet werden. Aber was ist, wenn ich eine andere Sprache verwenden möchte?
Angenommen, ich habe eine bestimmte Schaltung, die ich ausführen möchte. Angenommen, ich habe es bereits in Python Qiskit erstellt und die entsprechende qasm-Zeichenfolge oder (idealerweise) das vollständige qobj-Objekt generiert.
Ich möchte dies ausführen und die Ergebnisse in einer beliebigen Sprache meiner Wahl zurückerhalten können.
Soweit ich weiß, ist dies eine Möglichkeit, dies über HTML zu tun. Die in Qiskit generierten Informationen können in einen JSON umgewandelt und dann über das Web übermittelt werden. Auf diese Weise sendet ProjectQ Jobs an IBM Geräte (obwohl dies in Python der Fall ist).
Da das Reverse Engineering des ProjectQ-Codes ein wenig entmutigend ist, möchte ich eine einfache Anleitung zur Verwendung dieser Funktion. Besonders in einer anderen Sprache als Python.
quelle
Antworten:
Ich werde versuchen, auf diese Weise zu antworten, aber ich habe es selbst nicht versucht. Reverse Engineering Lesen Sie den Code mit ein paar Begriffen der HTML-Anfrage.
Nehmen wir an, Sie haben in der Sprache Ihrer Wahl die Möglichkeit, HTTP-Anfragen über GET- und POST-Methoden zu senden. Das
api_url
ist https://quantumexperience.ng.bluemix.net/api/ .Um einen Job zu senden, senden Sie eine POST-Anfrage mit einigen Informationen (z. B. wenn Sie ein Formular im Web ausgefüllt haben und mit einem Server sprechen möchten). Es ist, als würde man einen Server mit einem Wörterbuch mit Informationen ansprechen. Es wird auf den Link https://quantumexperience.ng.bluemix.net/api/Jobs mit dem POST-Anforderungsheader gesetzt
application/json
(der zeigt, wie Sie die Informationen übermitteln). Die Informationen hier werden in einer JSON-Formatierung im Hauptteil der Anforderung übermittelt:Ich denke, wir können Parameter
maxCredits
und andere Parameter für die Einreichung hinzufügen . Gerät bezieht sich auf den Namen des Back - End , wenn ich ihre Kommentare folgen:simulator
,ibmqx4
oderibmqx5
. Sie erhalten erneut eine Antwort als JSON mit einem ID-Argument, das sich auf das beziehtexecution_id
.Sobald es gesendet wurde, steht Ihr Job in der Warteschlange. Sie müssen diese Job-ID von GET anfordern, um die Antwort vom Backend zu erhalten. Die GET-URL lautet: https://quantumexperience.ng.bluemix.net/api/Jobs/execution_id . Sie erhalten eine weitere JSON-Antwort (fügen Sie sie in eine
r_json
Variable ein). Wenn derqasms
Artikel vorhanden ist, prüfen Sie, ob err_json['qasms'][0]
einenresult
Artikel enthält, und Sie erhalten das Ergebnis der Übermittlung.Dies sollte das Verfahren zusammenfassen.
quelle