Problem initialization/readout time

In sampling a problem multiple times in succession with an annealing QPU, my understanding is that (1) an embedding for the problem is first found in the QPU, (2) the initial Hamiltonian is then programmed, (3) the anneal then occurs, (4) the solution is read out at the end of the anneal, and, (5) steps 2-4 are carried out n-1 more times, n being the number of samplings of the problem.

Assuming my thinking is correct in that the same embedding in the QPU is recycled between samplings, then the time taken between the beginnings of sampling k and sampling k+1 is the sum of the anneal, readout, and initialization times. 

My questions regarding this are: are the readout and initialization times constant for all samplings run in this way? If not, how much variance can we expect in these times across all samplings? Are these times problem-specific? And, is there a way of retrieving these times for a particular run?

0

Comments

2 comments
  • Hey Tristan, I think most of what you are looking for is in https://docs.dwavesys.com/docs/latest/c_qpu_timing.html, and other pages in that timing doc.

    My understanding is that the steps are:

    1. Programming
    2. Annealing
    3. Readout
    4. Delay

    Step 1 occurs one time, and 2 - 4 occur num_reads times. I believe the readout and programming time are constant, but differ between QPU chips. There is another doc (one per chip) that has the exact times, but I can't find it. Steps 2 and 4 have times that can be specified by the user.

     

    You can retrieve timing information from the SampleSet s returned when you sample your problem. s.info["timing"] gives a dictionary containing values for many of the components of the QPU access time.

     

    I'm not sure about variation/accuracy in times across sampling. 

    1
    Comment actions Permalink
  • Hi Tristan, 

    One thing to note about the timing doc Mike linked, is that the anneal time is only counted once in the actual QPU access time (that page shows the anneal_schedule and anneal_time as separate entities. It's more straightforward to omit the anneal_time parameter and just include the anneal_schedule, as the schedule includes total (active and inactive) anneal time). That's a great resource to check out though!

    Here's a link to the physical properties and exact times on each QPU. 

    The programming time is problem dependent. It depends on the size of the problem and the h and J values you set. The programming time specified in the documents in the above link were measured on a full working graph and a random problem.

    The readout time is constant. 

     

    1
    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post