H-Series Resource Visibility¶
To run quantum programs on H-Series emulators and devices, users must submit jobs using qnexus
. A nexus exeucte job targetting H-Series consists of a circuit
and a result
. Circuits contain the instructions for running a program on the quantum computer, and are submitted to a user-specified emulator or device. Once the circuit has completed execution on H-Series, a result is available to view by the end user. There is no expiration date on the retention period of nexus jobs. In other words, nexus jobs are stored on database forever.
Jobs submitted to the H-Series emulators and devices enter a fair queuing system. Jobs will wait in the queue until they run on the target device. A fair queuing process is used to ensure each organization’s queue is equally represented for machine access. The jobs submitted by users in the same organization are executed in the submission order. If users submit a job to a specific machine that is not available, the jobs will remain at the top of an organization’s queue until that machine is available. Machines do not need to be online when submitting jobs. Users are encouraged to submit jobs at their convenience. The H-Series quantum computers are periodically taken down for upgrades. If a job is submitted while the machine is in an upgrade cycle, it will remain in the queue and run when the machine is back online. Users are able and encouraged to submit jobs to the queue.
The Quantinuum Nexus user portal displays all jobs submitted to the queue for a specific user. qnexus
can be used to programmatically access resource visibility. The Resource Visibility in the User Portal section narrates how project-level, job-level and device-level data can be displayed. At the device-level, calendar data is available on when H-Series is operational. qnexus
is used to show job-level and project-level visibility in addition to quota visibility.
Queuing System¶
Nexus Queuing System¶
Nexus operates a First-In First-Out (FIFO) queue for all compilation jobs, in addition to execution jobs submitted to nexus-hosted emulators and simulators. Compilation jobs have a 5 minute window before termination and job failure. All jobs submitted to nexus for execution on H-Series-hosted targets are submitted to a first-in, first-out queue within nexus. All jobs submitted to nexus will be directed to H-Series in order of submission date - jobs submitted earlier will be submitted first to H-Series. User and group priorities only impact job selection within the H-Series Fair Queue.
Job Selection¶
Job selection with the fair-share queue is determined by H-System Quantum Credits (HQCs) accumulation per organization, group priority within an organization, user priority within a group and submission date for all jobs of a selected user.
HQCs accumulation
An organization from all organizations submitting to a target is selected based on the HQC accumulation, how many HQCs have been consumed by the organization, within the Fair Queue Time Window (FQTW).
The FQTW is defined to be 2-4 hours.
Group Priority
Within the selected organization, jobs from User Groups are ranked and chosen according to group priority.
If multiple groups have the same priority, HQC accumulation is used as a secondary criterion to select jobs. Jobs will run first for groups with lower HQC accumulation.
User Priority
Once a group is selected, the highest priority user is selected.
Submission Date
The job with the oldest submission date of the selected user begins execution.
Job Execution
The selected job is chunked into slices based on the number of shots requested by the user and the complexity of the job. Job complexity is determined by the number of two-qubit gates and measurement gates.
A slice of a job is a small number of shots that can be executed between calibration runs.
Update organization HQC accumulation within FQTW.
For jobs submitted with large shot counts, jobs are chunked into slices
with a smaller shot counts. The number of shots in a slice is dynamically chosen by the H-Series compiler and will vary with the complexity of the circuit.
A series of system checks are performed before and after each slice. If an error is detected, any suspect results are rejected and the failed chunk shots are rerun at no additional cost.
Once a job is selected and starts running, it is assigned a start date
. Once the job finishes running, it is assigned a result date
. For jobs consisting of multiple slices, the time between the start date and result date will include all of the system checks and calibrations that happened in the middle of that job and possibly slices from other jobs in the queue. Users should not expect that result date
less start date
be the system run-time of the job as this is more than likely not the case.
Partial results can be retrieved for the slices that have completed running on the H-series device or emulator using the get_partial_results
method in pytket
.
Jobs running on the emulator will have a runtime dependent on the number of qubits. A 17-qubit emulation may require 10 minutes to complete while a 25-qubit emulation may require over 24 hours to complete.
Fairness is dictated by the HQC accumulation for each organization. Organizations with premium subscriptions will benefit from slower HQC accumulation and therefore will receive higher priority in the fair-share queue.
Organizations¶
Users from the same organization submitting jobs to H-Series compete for access through their organization’s queue. Organizations consist of users and groups. Multiple users can be in a group and organizations can have multiple users. Organizations can choose whether or not to use user group priorities or user priorities, controlled by organization administrators. If a user has no association with an existing group, they are assigned the DEFAULT
group of the organization.
Organization priority (default: 5) is defined between 1 (highest) and 10 (lowest).
Higher priority jobs run before lower priority jobs.
Jobs not associated with any group are assigned to the
DEFAULT
group with the default group priority (5).
Long queue times can arise if there are several jobs submitted from the same organization.
Organization administrators cannot modify how the Fair Queue selects organizations.
Job Chunking¶
For jobs submitted with large shot counts, jobs are chunked into slices
with a smaller shot counts. The number of shots in a slice is dynamically chosen by the H-Series compiler and will vary with the complexity of the circuit.
A series of system checks are performed before and after each slice. If an error is detected, any suspect results are rejected and the failed chunk shots are rerun at no additional cost.
The time to solution, the difference between the result-date
and the start-date
, is contaminated by chunks of jobs from other organizations. It does not reflect the true execution time on the H-Series device. Batching ensures chunks of jobs from other users do not run during your jobs. Jobs in a batch will run consecutively after each other, after the batch starts.
Minimize H-Series Queue Time¶
The fair-share queue distributes access to H-Series devices and emulators across multiple organizations. Internally within a selected organization, users can improve the likelihood of their job being selected for execution via communication with the organization administrator. The organization administrator can control user and group priorities to ensure a specific user’s jobs start running first within the organization. Group and user priorities can be set by an organization administrator using the user portal or Quantinuum API. The schedule for operations hours on the H-Series device is displayed on the user portal. Emulator targets are readily available to use 24 hours a day. Below are a list of steps a user should follow:
Keep jobs in the organization queue.
Utilise batching when submitting a large number of jobs.
Use User and Group priorities to increase job priority within the organizational queue.
Plan QPU and emulator usage around the calendar month.
Plan usage around published calendar.
Submit to the correct system for the job.
Resource Visibility in the User Portal¶
The nexus user portal is available at https://nexus.quantinuum.com/. To access user-specific queue information, valid credentials are required.
Project View¶
A projects tab in the top navigation bar leads to a Project view. All projects a user will have access to are available here. The different types of access are available here.
Jobs View¶
The user portal also displays all jobs submitted by the user within a project. These can be filtered by a date range for job submission, a name or status.
The user portal job view tabulates the jobs alongside certain properties. These properties are listed below:
Job: A user friendly name attached to the job. Useful for filtering jobs in the job view of the user portal. This is set by the user at the point of job submission.
Type: A
Compile
orExecute
job.Status: If the Job is
Queued
,Running
,Completed
orFailed
.Items Number of items available to view.
Backend: The
BackendConfig
used to submit jobs to theSubmitted by: Indentity that submitted the job.
Submitted: Time period from submission date to the current period.
Job position in the queue is determined by order of submission. Jobs submitted first will be executed first.
The job view in the user portal is user specific. It will not show the position of the user’s jobs in the organization queue, or reveal information on jobs submitted by other users in the same organization.
The circuit data and result data available in a job can be retrieved using the job name.
Compile Job View¶
The compile job view shows the job status and the compilation time. In addition, links to the input circuit and the output compiled circuit (job result) are also displayed.
The link to the compiled circuit (job result) redirects to a compiled circuit page displaying a circuit visual.
Execute Job View¶
The execute job view shows the job status and number of shots. Also displayed are links to the input circuit and the job result.
The job result link redirects to the job result page. Displayed are the following quantities:
number of shots
backend snapshot
number of bits
most probable measurement outcome.
An exportable table is visualized within the nexus portal below. This table shows:
the measurement outcome on the left;
the count (counting occurence);
a probability of occurence (count in proportion to population size).
Calendar Visualisation¶
The device tab in the top navigation bar leads to a page collating all available devices. Clicking the H1-1
entry will lead to a new page dedicated to H1-1
, displaying the following information:
Operational calendar for
H1-1
Manufacturing specifications, such as two-qubit gate fidelity.
Native Gates on
H1-1
Special features enabled by
H1-1
, such as Mid-circuit measurements and all-to-all connectivity.Current status of the device.
The information above is available for all H-Series devices.
Resource Visibility with qnexus
¶
qnexus
is used to submit TKET circuits for compilation and H-Series execution to Nexus. The overall workflow is to construct a measurement circuit for submission with \(n\) shots. Once submitted, a job will appear in nexus user portal with the status Submitted
. Once the job is received by the H-Series queue, the status will be Queued
. Once the job runs and has Completed
, a result will be available to the end user. qnexus
enables retrieval of the result. Even if the H-series job does not complete, results are partially retrievable with qnexus
.
Job Visibility¶
Job status for jobs on H-Series devices can be queried using qnexus
. The end user should be aware of the different status messages.
Queued
Running
Completed
Submitted
Error
Cancelled
In the cell below, a new nexus project is retrieved, Resource-Visibility-Demonstration
.
import qnexus
project = qnexus.projects.get_or_create("Resource-Visibility-Demonstration")
qnexus.context.set_active_project(project)
jobname_suffix = qnexus.projects.datetime.now().strftime("%Y_%m_%d-%H_%M_%S")
Next, a circuit is prepared using two native H-Series gates, OpType.PhasedX
and OpType.ZZMax
.
from pytket.circuit import Circuit
from numpy.random import random_sample
n_qubits = 10
circuit = Circuit(n_qubits)
px_angles = random_sample(n_qubits)
for i in range(n_qubits):
circuit.PhasedX(px_angles[i], px_angles[i], i)
for i, j in zip(range(0, n_qubits - 1), range(1, n_qubits)):
circuit.ZZMax(i, j)
for i in range(n_qubits):
circuit.PhasedX(px_angles[i], px_angles[i], i)
circuit.measure_all();
ref = qnexus.circuits.upload(circuit=circuit, name="first-circuit")
Specify the H2-1E
emulator using QuantinuumConfig
.
config = qnexus.QuantinuumConfig(device_name="H2-1E")
The circuit is submitted to Nexus for compilation.
ref_compile_job = qnexus.start_compile_job(
circuits=[ref],
backend_config=config,
optimisation_level=2,
name=f"compile-job-{jobname_suffix}"
)
qnexus.jobs.wait_for(ref_compile_job)
ref_compile_circuit = qnexus.jobs.results(ref_compile_job)[0].get_output()
The circuit is submitted to H-series using the start_execute_job
call with 10 shots. It is recommended to save the reference to disk.
ref_execute_job = qnexus.start_execute_job(
circuits=[ref],
backend_config=config,
n_shots=[100],
name=f"execute-job-{jobname_suffix}"
)
The qnexus
method jobs.status
enables status retrieval from H-series of the job just submitted.
status = qnexus.jobs.status(ref_execute_job)
The status
variable is an instance of the qnexus
object qnexus.models.job_status.JobStatus
.
The status
property of JobStatus
returns the enum Submitted
.
status.status
<StatusEnum.SUBMITTED: 'Circuit has been submitted.'>
The message
property of JobStatus
returns the status message as a python string.
print(status.message)
Job has been submitted to Nexus.
For the full qnexus
workflow, please see this link.
Quota Visibility¶
In addition to being authenticated, some operations in Nexus require you to have an appropriate amount of Quota. These operations include:
using the Nexus Lab
compiling Circuits on Nexus
Execution on Nexus-hosted H-Series emulators
storage of Project data in the Nexus Database
Your simulation, compilation and Nexus Lab quota will renew each month, but your database usage quota will not renew. In addition, if you have access to Quantinuum H-series devices you’ll need to have a HQC quota.
To retrieve and display available quotas:
import qnexus
df_list = qnexus.quotas.get_all()
df_list.df()
name | description | usage | quota | |
---|---|---|---|---|
0 | compilation | Total CPU running time, in seconds. | 4.497263 | No quota set for user |
1 | simulation | Total CPU running time, in seconds. | 2248.772104 | No quota set for user |
2 | database_usage | Total megabytes used to store scientific data. | 6.039528 | No quota set for user |
3 | jupyterhub | Total Jupyterhub notebook server running time,... | 3630.000000 | No quota set for user |
Check remaining quotas:
if qnexus.quotas.check_quota(name="compilation"):
print("Compilation quota OK!")
else:
print("No more compilation quota!")
Compilation quota OK!
Project Visibility¶
One of the core features of Quantinuum Nexus is a database for usefully structuring your scientific data. Data is contained in Projects. Below, data is retrieved for the Resource-Visibility-Demonstration
project.
import qnexus
project_iterator = qnexus.projects.get_all()
project_iterator.df().head()
name | description | created | modified | contents_modified | id | |
---|---|---|---|---|---|---|
0 | test-inquanto-in-jupyterhub | None | 2023-03-03 17:07:07.087057+00:00 | 2023-03-03 17:11:22.893342+00:00 | 2023-03-03 17:11:22.893342+00:00 | 537cf200-b860-4217-bf04-389a415dc172 |
1 | InQuanto Experiment | None | 2023-03-07 16:54:41.611572+00:00 | 2023-03-07 16:54:41.608377+00:00 | 2023-03-07 16:54:41.608377+00:00 | 1599e802-b0fd-470b-a9f2-7503bef9157d |
2 | InQuanto::Experiment | None | 2023-03-07 16:55:52.289481+00:00 | 2023-03-14 15:17:30.218535+00:00 | 2023-03-14 15:17:30.218535+00:00 | 234a74a3-070a-4f59-9595-ffc27fb7858f |
3 | INQUANTO-TEST | None | 2023-03-15 12:50:54.618655+00:00 | 2023-03-15 12:54:11.942765+00:00 | 2023-03-15 12:54:11.942765+00:00 | 867e3392-93b3-40e2-911b-fb1fd8af05f1 |
4 | inquanto-experiment-depressed-yellow-frosted-o... | None | 2023-03-15 17:11:41.576060+00:00 | 2023-03-15 17:11:41.564940+00:00 | 2023-03-15 17:11:41.564940+00:00 | e5c2788a-8a08-44e0-a64c-7950104ffe76 |
5 | inquanto-experiment-pliable-dread-resolute-vul... | None | 2023-03-15 17:11:54.927385+00:00 | 2023-03-15 17:11:54.917848+00:00 | 2023-03-15 17:11:54.917848+00:00 | 2eec82e6-e8b6-45ca-9482-18034d40ad6d |
6 | inquanto-experiment-irregular-broad-gilled-fly... | None | 2023-03-15 17:55:09.518618+00:00 | 2023-03-15 17:55:20.835296+00:00 | 2023-03-15 17:55:20.835296+00:00 | b59dcd03-49b1-4299-b873-06919a65747c |
7 | inquanto-experiment-subdecurrent-grayling-play... | None | 2023-03-15 18:32:44.169550+00:00 | 2023-03-15 18:32:54.672436+00:00 | 2023-03-15 18:32:54.672436+00:00 | 06cbaa72-b1a1-480c-9069-c7a863a37a4a |
8 | inquanto-experiment-brittle-curry-gleaming-cec... | None | 2023-03-15 18:51:08.163527+00:00 | 2023-03-15 18:51:18.530360+00:00 | 2023-03-15 18:51:18.530360+00:00 | fecf8248-e308-4f7e-a549-b8290dde51d0 |
9 | inquanto-experiment-free-eastern-intimate-undu... | None | 2023-03-15 19:12:04.826090+00:00 | 2023-03-15 19:12:14.825582+00:00 | 2023-03-15 19:12:14.825582+00:00 | 328a7a0a-6613-47f2-a552-c2f568b3a961 |
10 | inquanto-experiment-decurrent-dry-cherished-co... | None | 2023-03-16 11:44:45.598233+00:00 | 2023-03-16 11:44:56.063150+00:00 | 2023-03-16 11:44:56.063150+00:00 | 6a250fc0-3f98-4a8a-93a2-ea5939ee40f7 |
11 | inquanto-experiment-convex-plums-hopping-tormi... | None | 2023-03-16 12:08:51.461013+00:00 | 2023-03-16 12:08:51.453350+00:00 | 2023-03-16 12:08:51.453350+00:00 | 139104af-6289-4381-919e-eaf44411b016 |
12 | inquanto-experiment-irregular-prunes-innocent-... | None | 2023-03-16 12:09:31.876677+00:00 | 2023-03-16 12:09:41.878140+00:00 | 2023-03-16 12:09:41.878140+00:00 | 608f0a52-d480-44cd-be16-3841f8c3b2a8 |
13 | inquanto-experiment-adnate-red-fond-virosa | None | 2023-03-16 12:51:33.461047+00:00 | 2023-03-16 12:51:44.107342+00:00 | 2023-03-16 12:51:44.107342+00:00 | 301e5cd7-5d76-4bf7-9cff-23605320189e |
14 | inquanto-experiment-umbonate-booted-beaming-tr... | None | 2023-03-17 14:25:13.554377+00:00 | 2023-03-17 14:25:27.241950+00:00 | 2023-03-17 14:25:27.241950+00:00 | bd67170b-9052-43af-a13b-219cd80c2da6 |
15 | inquanto-experiment-offset-indigo-fond-impudicus | None | 2023-03-17 14:29:57.187477+00:00 | 2023-03-17 14:30:09.250025+00:00 | 2023-03-17 14:30:09.250025+00:00 | 4a6594c0-982d-4461-94fe-a467dc0766fd |
16 | inquanto-experiment-porous-silvery-vigorous-la... | None | 2023-03-17 14:31:00.367287+00:00 | 2023-03-17 14:31:15.188937+00:00 | 2023-03-17 14:31:15.188937+00:00 | b1b5b751-c895-4fc8-a0a8-e7485e36acf0 |
17 | inquanto-experiment-sinuate-death-dramatic-sap... | None | 2023-03-17 14:31:57.553646+00:00 | 2023-03-17 14:32:06.371091+00:00 | 2023-03-17 14:32:06.371091+00:00 | 5d2c801f-1e32-42bd-a370-cce3ee52fc13 |
18 | inquanto-ci-test | None | 2023-03-17 14:34:48.727543+00:00 | 2023-03-17 14:35:00.572657+00:00 | 2023-03-17 14:35:00.572657+00:00 | d4d41cf8-3f30-48a5-8ee7-5d48bf4e0a2d |
19 | inquanto-experiment-infundibuliform-panther-ho... | None | 2023-03-17 14:56:17.030698+00:00 | 2023-03-17 14:56:27.920159+00:00 | 2023-03-17 14:56:27.920159+00:00 | 758b6982-4bb9-47fd-89d1-d9f4ec68748c |
20 | inquanto-experiment-adnexed-indigo-quiet-squam... | None | 2023-03-17 15:00:10.287033+00:00 | 2023-03-17 15:00:18.302000+00:00 | 2023-03-17 15:00:18.302000+00:00 | b21d937b-c083-4796-90ba-5316abdc9721 |
21 | inquanto-experiment-porous-broad-gilled-astoni... | None | 2023-03-17 15:08:47.735910+00:00 | 2023-03-17 15:09:00.201098+00:00 | 2023-03-17 15:09:00.201098+00:00 | dbcfb79e-f654-41c9-aca3-30afc51e8b73 |
22 | inquanto-experiment-grooved-slimy-haunting-pan... | None | 2023-03-17 15:39:55.804270+00:00 | 2023-03-17 15:40:11.352627+00:00 | 2023-03-17 15:40:11.352627+00:00 | e57098c6-d09c-4ec0-a11a-dc52c43e4d04 |
23 | inquanto-experiment-grooved-lemon-peel-thrilli... | None | 2023-03-17 15:40:25.721136+00:00 | 2023-03-17 15:40:41.921982+00:00 | 2023-03-17 15:40:41.921982+00:00 | a7e42f1f-7e5a-48ac-9217-3b9eceeeb633 |
24 | inquanto-experiment-indistinct-velvet-virile-e... | None | 2023-03-17 15:52:15.447836+00:00 | 2023-03-17 15:52:33.529050+00:00 | 2023-03-17 15:52:33.529050+00:00 | 9306eb7f-eb8c-4267-8044-aeec6fab499a |
25 | inquanto-experiment-veiled-pinkgill-modest-elata | None | 2023-03-17 16:02:42.032975+00:00 | 2023-03-17 16:03:01.900403+00:00 | 2023-03-17 16:03:01.900403+00:00 | 606995b2-30cd-4403-9027-572f9e5fac34 |
26 | inquanto-experiment-hooded-orange-spooky-strob... | None | 2023-03-17 21:01:31.674287+00:00 | 2023-03-17 21:01:31.664091+00:00 | 2023-03-17 21:01:31.664091+00:00 | b0b3c23b-ab87-4888-85ee-c2f13fe9a947 |
27 | inquanto-experiment-brittle-destroying-starlit... | None | 2023-03-17 21:05:35.281930+00:00 | 2023-03-17 21:05:35.271951+00:00 | 2023-03-17 21:05:35.271951+00:00 | e5e1f392-51b2-454f-839f-32260fce98c8 |
28 | inquanto-experiment-free-woolly-silky-perennis | None | 2023-03-17 21:07:51.154893+00:00 | 2023-03-17 21:08:38.772009+00:00 | 2023-03-17 21:08:38.772009+00:00 | 247acf96-1378-47a4-9fbd-3cf0a4ad8a5e |
29 | inquanto-experiment-brittle-fly-brilliant-laniger | None | 2023-03-18 10:28:42.256840+00:00 | 2023-03-18 10:30:13.681858+00:00 | 2023-03-18 10:30:13.681858+00:00 | def650cb-03cd-40c6-b930-95937b1cb60b |
30 | inquanto-experiment-sinuate-silvery-frenetic-l... | None | 2023-03-18 10:30:50.612680+00:00 | 2023-03-18 10:31:25.484032+00:00 | 2023-03-18 10:31:25.484032+00:00 | 86907c6b-06b1-4144-993c-47b1abf88938 |
31 | inquanto-experiment-adnexed-grayling-undulatin... | None | 2023-03-18 10:32:02.724667+00:00 | 2023-03-18 10:32:28.527585+00:00 | 2023-03-18 10:32:28.527585+00:00 | 5fcc4a2d-fafc-481a-bf10-870a162f035a |
32 | inquanto-experiment-adnate-king-tongue-in-chee... | None | 2023-03-18 10:32:53.835262+00:00 | 2023-03-18 10:33:19.321386+00:00 | 2023-03-18 10:33:19.321386+00:00 | d8edb3ac-35c5-4c92-ac95-4d0975557475 |
33 | inquanto-experiment-grooved-poison-ragged-amer... | None | 2023-03-20 07:33:41.845598+00:00 | 2023-03-20 07:34:22.394855+00:00 | 2023-03-20 07:34:22.394855+00:00 | 33f3b952-21fe-445c-a2a0-fbe2524f133e |
34 | inquanto-experiment-indistinct-deadly-gallopin... | None | 2023-03-20 07:35:53.334243+00:00 | 2023-03-20 07:38:28.344392+00:00 | 2023-03-20 07:38:28.344392+00:00 | 699e1581-83a6-4e5e-925a-a0ef34cdb6d5 |
35 | inquanto-experiment-spherical-luscious-hopping... | None | 2023-03-20 07:41:21.527903+00:00 | 2023-03-20 07:42:36.451641+00:00 | 2023-03-20 07:42:36.451641+00:00 | 460269fd-0f52-45a7-b8b5-e25baac0b474 |
36 | My Myqos Experiment | None | 2023-03-27 09:37:08.258144+00:00 | 2023-03-27 13:10:52.527286+00:00 | 2023-03-27 13:10:52.527286+00:00 | fdade5e4-f95b-4753-953b-4e7cf31d6790 |
37 | Paper-QSE-rerun | None | 2023-04-04 13:27:18.784411+00:00 | 2023-04-04 13:27:18.775459+00:00 | 2023-04-04 13:27:18.775459+00:00 | 3f517546-8f16-4686-b864-fe77c0dff446 |
38 | pmt-paper1 | None | 2023-04-12 22:03:44.774889+00:00 | 2023-04-26 14:11:57.823296+00:00 | 2023-04-26 14:11:57.823296+00:00 | bd195fd7-5e5a-483d-992f-c764fe96501a |
39 | PMT-Phase1-casscf-analysis | None | 2023-04-20 15:02:35.739771+00:00 | 2023-04-20 15:06:39.446072+00:00 | 2023-04-20 15:06:39.446072+00:00 | 0f2bf956-7a8d-4c53-84da-5e05eb9f4031 |
40 | PMT-Phase1-caucc_casscf | None | 2023-04-21 15:24:23.322366+00:00 | 2023-04-24 15:03:05.400143+00:00 | 2023-04-24 15:03:05.400143+00:00 | 4b6144ef-5c78-4467-b090-5caf662de833 |
41 | pmt-paper-2021-transition_barrier | None | 2023-04-26 15:44:43.181752+00:00 | 2023-04-26 15:44:43.174063+00:00 | 2023-04-26 15:44:43.174063+00:00 | 4c7b30ea-51a6-4bae-adec-2657b27527f2 |
42 | 56ab2062-5f89-447f-9450-ef83f53ff9da | None | 2023-04-27 10:14:31.597893+00:00 | 2023-04-27 10:14:31.591786+00:00 | 2023-04-27 10:14:31.591786+00:00 | 688588ac-04c5-4d80-872b-816e6172cf82 |
43 | Excited State Benchmarks | Benchmarks of InQuanto and next best alternati... | 2024-02-21 15:48:57.595759+00:00 | 2024-02-21 17:20:24.199213+00:00 | 2024-02-21 17:20:50.246963+00:00 | 4fcc0b0d-6102-4e94-8270-36d5d5e49c38 |
44 | gf_experiment_h11e_new | None | 2024-02-22 12:11:26.985537+00:00 | 2024-02-22 12:11:26.985537+00:00 | 2024-02-26 11:36:44.305704+00:00 | 4a705080-d586-4a91-b512-88013c521b4d |
45 | iceberg-code | None | 2024-03-07 17:08:25.346560+00:00 | 2024-03-07 17:08:25.346560+00:00 | 2024-03-07 17:08:25.351714+00:00 | b38bc1ff-44f4-458d-a8e3-efc631d8a38a |
46 | population ghz iceberg code - half-depth | None | 2024-03-07 17:22:21.540278+00:00 | 2024-03-07 17:22:21.540278+00:00 | 2024-03-07 17:22:21.544880+00:00 | 49e88a1c-f049-4090-819c-9b56e3861fed |
47 | emulator-usage | None | 2024-05-10 16:26:25.529210+00:00 | 2024-05-10 16:26:25.529210+00:00 | 2024-05-10 16:31:06.976577+00:00 | 2b5edb1c-782d-472e-816a-392349570499 |
48 | MCMR-DEMO | Qubit Reuse via Mid-Circuit Measurement with R... | 2024-07-12 18:07:40.427537+00:00 | 2024-07-12 18:07:40.427537+00:00 | 2024-07-15 10:36:48.123204+00:00 | 4550e26b-e12c-4ced-ad3c-fe7df46883fc |
49 | Qubit-Reuse-Demonstration | Circuits and Results for Qubit Reuse Compilati... | 2024-07-15 10:48:07.635959+00:00 | 2024-07-15 10:48:07.635959+00:00 | 2024-08-08 16:44:54.265365+00:00 | 1d9300b7-775e-463f-8126-90aafe4b30b4 |
50 | Emulator-Demonstration | None | 2024-07-17 17:37:23.097752+00:00 | 2024-07-17 17:37:23.097752+00:00 | 2024-08-09 10:39:46.416025+00:00 | 10c0b615-861e-4869-a976-bfd0e2dadd27 |
51 | arb-angle-demonstration | None | 2024-07-19 10:53:22.254390+00:00 | 2024-07-19 10:53:22.254390+00:00 | 2024-07-19 19:19:32.255340+00:00 | 1ec766f9-b9c8-4c57-9141-0cae8d1fbe81 |
52 | qvt_usecase | Project containing job data for Quantum Volume... | 2024-07-22 14:31:34.477487+00:00 | 2024-07-22 14:31:34.477487+00:00 | 2024-07-22 14:42:31.699391+00:00 | 48c8d9ad-ec9b-4e27-91d0-2fd2df38f8a3 |
53 | Nexus-Workflow-Demonstration | None | 2024-07-23 14:47:19.750512+00:00 | 2024-07-23 14:47:19.750512+00:00 | 2024-08-08 15:11:34.620017+00:00 | f0359a8e-cf6b-4436-b205-d4a081c51d15 |
54 | Toric-Code-Demonstration | None | 2024-07-25 11:09:04.341091+00:00 | 2024-07-25 11:09:04.341091+00:00 | 2024-07-25 11:28:54.098798+00:00 | 7a14bc76-9524-4916-b0c7-7a83c1989963 |
55 | Resource-Visibility-Demonstration | None | 2024-07-25 16:53:50.728257+00:00 | 2024-07-25 16:53:50.728257+00:00 | 2024-08-09 12:26:00.491050+00:00 | f0f866d0-73aa-4ea2-a15d-436f38551dd5 |
project_ref = qnexus.projects.get(name_like="Resource-Visibility-Demonstration")
The project reference can be passed to the summarize
method to display a summary of the project.
qnexus.projects.summarize(project_ref)
project | total_jobs | pending_jobs | cancelled_jobs | errored_jobs | completed_jobs | |
---|---|---|---|---|---|---|
0 | Resource-Visibility-Demonstration | 14 | 2 | 0 | 1 | 11 |
All the jobs for the project can be retrieved using the get_all
method. Data is displayed below using df
.
nexus_iterator = qnexus.jobs.get_all(project=project_ref)
nexus_iterator.df()
name | description | created | modified | job_type | last_status | project | id | |
---|---|---|---|---|---|---|---|---|
0 | compile-job-2024_07_25-17_55_26 | 2024-07-25 16:59:28.395905+00:00 | 2024-07-25 16:59:42.668214+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | a2176b4a-6281-46e9-87c2-52dd8a64b6df | |
1 | execute-job-2024_07_25-17_55_26 | 2024-07-25 17:01:32.131770+00:00 | 2024-07-25 17:02:03.653537+00:00 | JobType.EXECUTE | StatusEnum.ERROR | Resource-Visibility-Demonstration | c6957370-556a-4cc2-a4c3-434324a8d2cc | |
2 | compile-job-2024_07_25-18_03_43 | 2024-07-25 17:03:46.873396+00:00 | 2024-07-25 17:03:49.840371+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 72ee0e70-0d07-49cb-8b47-c423d47ce336 | |
3 | execute-job-2024_07_25-18_03_43 | 2024-07-25 17:05:26.978754+00:00 | 2024-07-25 17:07:04.087961+00:00 | JobType.EXECUTE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 1acd1529-c140-4fa0-a2c2-0b32502e8859 | |
4 | compile-job-2024_07_25-18_11_39 | 2024-07-25 17:11:40.421718+00:00 | 2024-07-25 17:11:42.876238+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 5ca5fbb1-5aef-4d14-b51e-912bba625830 | |
5 | execute-job-2024_07_25-18_11_39 | 2024-07-25 17:11:51.980082+00:00 | 2024-07-25 17:13:03.988641+00:00 | JobType.EXECUTE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 3c89b971-2f83-4977-b8f0-35e5765b632b | |
6 | compile-job-2024_07_25-18_15_35 | 2024-07-25 17:15:37.213636+00:00 | 2024-07-25 17:15:39.781830+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | bf541bdf-c9d6-4a8b-a330-190034f6c3bb | |
7 | execute-job-2024_07_25-18_15_35 | 2024-07-25 17:15:48.772359+00:00 | 2024-07-25 17:26:04.234200+00:00 | JobType.EXECUTE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | a03b328c-ed40-4122-b60d-a1127aba0355 | |
8 | compile-job-2024_08_09-13_07_22 | 2024-08-09 12:07:23.196735+00:00 | 2024-08-09 12:07:37.834436+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 7b83970c-fbae-46ad-9901-c654ccf7cd1b | |
9 | execute-job-2024_08_09-13_07_22 | 2024-08-09 12:07:46.299182+00:00 | 2024-08-09 12:17:05.639000+00:00 | JobType.EXECUTE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 5d42fd21-3750-45db-b708-9b2e18abf048 | |
10 | compile-job-2024_08_09-13_22_53 | 2024-08-09 12:22:54.204304+00:00 | 2024-08-09 12:23:02.574678+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | ddced7eb-0bff-4ec1-9254-e178c538a423 | |
11 | execute-job-2024_08_09-13_22_53 | 2024-08-09 12:23:11.992988+00:00 | 2024-08-09 12:23:34.377126+00:00 | JobType.EXECUTE | StatusEnum.QUEUED | Resource-Visibility-Demonstration | 8f28adaf-507a-427f-bb5a-2f720f5375b7 | |
12 | compile-job-2024_08_09-13_25_41 | 2024-08-09 12:25:42.204036+00:00 | 2024-08-09 12:25:51.623533+00:00 | JobType.COMPILE | StatusEnum.COMPLETED | Resource-Visibility-Demonstration | 8f17251a-4037-4545-89c4-fd87477e6a7d | |
13 | execute-job-2024_08_09-13_25_41 | 2024-08-09 12:25:59.813763+00:00 | 2024-08-09 12:26:00.491050+00:00 | JobType.EXECUTE | StatusEnum.SUBMITTED | Resource-Visibility-Demonstration | 2e13f588-3123-4ba8-b22a-6a9e9ef87d73 |
A specific job reference can be selected from the NexusIterator
instance and the qnexus.jobs module can be used to access job-level data.
ref_compile_job = nexus_iterator.list()[0]
The annotations field displays useful metadata for the compile job.
ref_compile_job.annotations.df()
name | description | created | modified | |
---|---|---|---|---|
0 | compile-job-2024_07_25-17_55_26 | 2024-07-25 16:59:28.395905+00:00 | 2024-07-25 16:59:42.668214+00:00 |
The compilation passes used in the compile job can also be visualized by retrieving the compile job result reference and calling get_passes
.
ref_compile_result = qnexus.jobs.results(ref_compile_job)[0]
ref_compile_result.get_passes().df()
pass name | input | output | id | |
---|---|---|---|---|
0 | DecomposeBoxes | first-circuit | first-circuit | 2f403573-53a5-4fda-9254-4c84236f9566 |
1 | CustomPass | first-circuit | first-circuit | 242cc96f-2d5e-4f3b-a8e6-270989ab7d0d |
2 | FullPeepholeOptimise | first-circuit | first-circuit-QuantinuumBackend-2 | 6b2d062e-1014-441c-91c1-8355be521f73 |
3 | NormaliseTK2 | first-circuit-QuantinuumBackend-2 | first-circuit-QuantinuumBackend-2 | 3aa8d117-2bd2-48fe-91f8-3d9685fe402d |
4 | DecomposeTK2 | first-circuit-QuantinuumBackend-2 | first-circuit-QuantinuumBackend-3 | 41ad9192-2aa7-4312-8d95-38d03803420a |
5 | AutoRebase | first-circuit-QuantinuumBackend-3 | first-circuit-QuantinuumBackend-4 | f053df3d-742e-4b2a-8681-e2d5501be20d |
6 | RemoveRedundancies | first-circuit-QuantinuumBackend-4 | first-circuit-QuantinuumBackend-5 | 5140d4c0-9b05-4089-99e7-6d36a34ddc54 |
7 | AutoSquash | first-circuit-QuantinuumBackend-5 | first-circuit-QuantinuumBackend-final | 35590554-0d20-4b51-84cb-3a84b2a17660 |
8 | RemoveRedundancies | first-circuit-QuantinuumBackend-final | first-circuit-QuantinuumBackend-final | b5403fd8-8d3b-47a3-9082-1c1784e9b262 |
9 | FlattenRelabelRegistersPass | first-circuit-QuantinuumBackend-final | first-circuit-QuantinuumBackend-final | 98a98731-beff-425b-b554-b6cf692938e7 |
The input circuit reference can be obtained using get_input
.
from pytket.circuit.display import render_circuit_jupyter
ref_input_circuit = ref_compile_result.get_input()
render_circuit_jupyter(ref_input_circuit.download_circuit())
The input circuit reference can be obtained using get_output
.
from pytket.circuit.display import render_circuit_jupyter
ref_output_circuit = ref_compile_result.get_output()
render_circuit_jupyter(ref_output_circuit.download_circuit())