Q-CTRL digest

Run batch workloads with ease using Fire Opal’s latest feature: Asynchronous job execution

June 13, 2024
Written by
Rowen Wu

At Q-CTRL, our mission is to make quantum technology useful. One way we do this is by abstracting complexities from quantum hardware so that you can focus on building useful applications.

Anyone leveraging cloud-based quantum hardware has faced device queues. Since quantum computers are in high demand, waiting for a job to run can take hours. If you’re using synchronous tools, you’re forced to sit around waiting for results to come back to run the next job or to ensure that the process finishes. Running real, high-value workloads requiring multiple iterative executions requires a huge amount of time, which you could be dedicating to other tasks.

One of the most highly requested features from our Fire Opal users has been the ability to execute jobs asynchronously. You asked, we listened! We are thrilled to deliver asynchronous execution in Fire Opal. In fact, we’ve made it the default experience, making it easier than ever for you to leverage automated error suppression and manage multiple workflows in your quantum computing applications.

What does that mean? More flexibility for you to run and retrieve circuits when it’s convenient for you without having to worry about maintaining a connection. You can send jobs to the queue and then move on to your other tasks, retrieving the results when they’re ready—and when you are.

"The ability to run a batch of circuits in parallel is essential for my work, as it offers significant flexibility in executing hardware experiments involving a large number of circuits. I'm excited that Fire Opal now supports async batch execution so I can use its error suppression much more efficiently!” - Ruihao Li, Quantum Research Data Scientist, Cleveland Clinic

By abstracting and simplifying common workflow tasks, Fire Opal helps you focus on innovation with more efficient R&D cycles.

Improved efficiency with asynchronous execution

Fire Opal is a software package that enables anyone to run their most valuable quantum applications with ease by automatically reducing noise and error, boosting algorithmic success, and simplifying hardware management on real quantum computers. It delivers huge improvements in performance on complex algorithms with zero settings or configuration.

However, hardware noise isn’t the only challenge that quantum computing users face—given the scarcity of devices, most users also face long queue times. Given the potential for long waits between submitting jobs and receiving results, the ability to asynchronously send a batch of jobs allows you to freely switch between tasks and save time.

That’s why all Fire Opal methods involving hardware execution—execute, iterate, and solve_qaoa)—are now asynchronous by default. Instead of waiting and returning results, these methods will return a job object, which you can use to monitor status and retrieve results whenever it’s convenient for you.

Asynchronous batch processing with the iterate feature

Many use cases, like quantum machine learning, typically require the execution of many circuits—too many to fit in single job. But if you send jobs one at a time waiting for the previous one to execute, you may lose your place in the queue and face huge delays. In order to make these workloads practical, we need a way to send all jobs at once and ensure that they’re optimized to execute together in the device queue. In other words, we need to submit a batch workload.

Asynchronous job execution makes batch workload processing simpler and more efficient than ever when coupled with the recently released iterate feature. The iterate function optimizes the submission of multiple jobs to ensure that your pre-processing time is shortened and you don’t lose your place in the device queue. 

When submitting a batch of jobs asynchronously to Fire Opal, those jobs can be processed in parallel and optimized to avoid re-queueing.

Check out our documentation to learn how to run batch workloads efficiently.

Flexible result retrieval

In the cases that you prefer to poll for results synchronously, the job.result() method is your go-to solution. This method allows you to wait for the job result, which is necessary when you want to submit another job based on the results of the previous one, such as in the case of variational algorithms.

Fire Opal’s existing Activity Monitor feature remains a valuable tool for viewing job history and seeing historical action IDs. By running fireopal.get_result(action_id), you can easily access the results of previous jobs. These convenient features ensure that all your data is safe and just one query away.

Learn how to view previous jobs and retrieve results.

Transform your workflows and accelerate your research

Asynchronous execution makes it easier than ever to scale your quantum computing workloads efficiently. Simply send your jobs to Fire Opal, and rest assured that execution is optimized in every way possible—from hardware performance to efficient job processing. 

Try out these new capabilities and see how they can transform your workflows and accelerate your research. Many of our valued users championed this feature, and we appreciate their feedback and patience as we work to enhance our products.

Sign up for Fire Opal today to achieve meaningful results from quantum computers today!