question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Improve performance of pulse.schedule

See original GitHub issue

What is the expected enhancement?

Construction of Schedule using append should be much faster. Currently, it takes 34s (273s) for constructing a schedule with 2000 (4000) instructions. Those are measured by create_random_appended_schedule(100, 20) (200, 20) using the following code:

def create_random_appended_schedule(n_instrs_by_channel, n_channels, pulse_size=10):
    channels = [pulse.DriveChannel(i) for i in range(n_channels)]
    instrs = []
    for i in range(n_instrs_by_channel):
        command = pulse.SamplePulse(np.random.random(pulse_size))
        for chan in channels:
            instrs.append(command(chan))

    start_time = time.time()
    schedule = pulse.Schedule()
    for instr in instrs:
        schedule += instr
    end_time = time.time()
    print(end_time-start_time)

For drastic speed up, we may need a lot of refactoring, but I think we can improve the performance somewhat by a small modification.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:5 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
mtreinishcommented, Jul 19, 2019

Do you think it makes sense to add some pulse benchmarks for cases like this to the asv benchmark suite? https://github.com/Qiskit/qiskit/tree/master/test/benchmarks If so we can track the performance of these operations over time at https://qiskit.github.io/qiskit/

0reactions
taalexandercommented, Aug 16, 2019

Yes, Closing via #2995.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Tuning Pulse Traffic Manager for best performance
This document describes performance-related tuning you may wish to apply to a production Stingray Traffic Manager software, ...
Read more >
openpulse - Faster pulse generation in Qiskit
I'm glad to see that you have increased the performance of the pulse path. The scheduler does need to be profiled, but this...
Read more >
Improved Compute Performance With Acceldata Pulse 3.0
Improved Dashboard Reporting Capabilities. New reporting capabilities in the Pulse dashboard allow users to schedule, enable, deactivate, and ...
Read more >
qiskit.pulse.channels
Schedules are Pulse programs. They describe instruction sequences for the control hardware. The Schedule is one of the most fundamental objects to this...
Read more >
Our pulse and scheduling co-optimization approach.
overcome the above problems, we propose co-optimizing pulses and scheduling. As shown in Figure 2, we optimize pulses to implement quantum gates and...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found