import os
import time
from softqcos_sdk import QCOSClient
# Initialize QCOS Client
client = QCOSClient()
# Define an 8-qubit entangled GHZ state circuit
ghz_circuit_qasm = """
OPENQASM 2.0;
include "qelib1.inc";
qreg q[8];
creg c[8];
h q[0];
cx q[0], q[1];
cx q[1], q[2];
cx q[2], q[3];
cx q[3], q[4];
cx q[4], q[5];
cx q[5], q[6];
cx q[6], q[7];
measure q -> c;
"""
# 1. Submit the job asynchronously
print("Submitting GHZ state job to QCOS simulator...")
job_info = client.jobs.submit(
qasm=ghz_circuit_qasm,
backend_id="simulator_aer",
shots=1000
)
job_id = job_info["job_id"]
print(f"Submitted successfully. Job ID: {job_id}")
# 2. Poll the job status using client.jobs.get
while True:
status_report = client.jobs.get(job_id)
status = status_report.get("status")
print(f"Job Status: {status}")
if status in ("completed", "failed", "cancelled"):
break
time.sleep(2)
# 3. Retrieve final counts
if status == "completed":
result_data = client.jobs.result(job_id)
print("Execution results:")
print("Counts:", result_data.get("counts", result_data))
else:
print("Job failed or was cancelled.")