QPU Timing Information from SAPI¶
Timing Data Returned by dwave-cloud-client
¶
Below is a sample skeleton of Python code for accessing timing data returned by dwave-cloud-client
.
Timing values are returned in the computation object and the timing object; further code could
query those objects in more detail.
The timing object referenced on line 16 is a Python dictionary containing
(key, value) pairs. The keys match keywords discussed in this section.
01 import random
02 import datetime as dt
03 from dwave.cloud import Client
04 # Connect using the default or environment connection information
05 with Client.from_config() as client:
06 # Load the default solver
07 solver = client.get_solver()
08 # Build a random Ising model to exactly fit the graph the solver supports
09 linear = {index: random.choice([-1, 1]) for index in solver.nodes}
10 quad = {key: random.choice([-1, 1]) for key in solver.undirected_edges}
11 # Send the problem for sampling, include solver-specific parameter 'num_reads'
12 computation = solver.sample_ising(linear, quad, num_reads=100)
13 computation.wait()
14 # Print the first sample out of a hundred
15 print(computation.samples[0])
16 timing = computation['timing']
17 # Service time
18 time_format = "%Y-%m-%d %H:%M:%S.%f"
19 start_time = dt.datetime.strptime(str(computation.time_received)[:-6], time_format)
20 finish_time = dt.datetime.strptime(str(computation.time_solved)[:-6], time_format)
21 service_time = finish_time - start_time
22 qpu_access_time = timing['qpu_access_time']
23 print("start_time="+str(start_time)+", finish_time="+str(finish_time)+ \
24 ", service_time="+str(service_time)+", qpu_access_time=" \
25 +str(float(qpu_access_time)/1000000))