Multi-Circuit Job Batching

Duration:

Duration:

May 2023 - November 2023 (6 months)

May 2023 - November 2023 (6 months)

Responsibilities:

Responsibilities:

User research, wireframing, prototyping, testing, team collaboration

User research, wireframing, prototyping, testing, team collaboration

Role:

Role:

Lead UX/UI Designer

Lead UX/UI Designer

Objective

Allow customers to run jobs in batches to improve resource utilization, simplify job management, and reduce operational overhead. By enabling multi-circuit job execution, we enhance computational efficiency and provide a scalable solution for complex workflows.

Problem Statement

  • Managing Large Workflows is Cumbersome – For complex workflows, circuit variations can be large (~200 circuits). Managing and submitting each job individually is inefficient and time-consuming.

  • Noise Sensitivity – Running jobs separately increases the likelihood of fluctuating noise levels, impacting the accuracy of results. Running batched jobs together helps maintain consistency.

  • Redundant Job Submission & Management Code – Customers currently need to write boilerplate job submission and management code for each single-circuit job, adding unnecessary complexity.

  • Inefficient Resource Utilization – Running jobs individually increases computational overhead, reducing efficiency.

  • Lack of Visibility in the Console – In the current cloud console, multi-circuit jobs appear the same as single-circuit jobs, making it difficult to distinguish and manage them effectively.

Key Goals

  • Provide SDK/API Support – Ensure seamless integration for developers to submit and manage batched jobs programmatically.

  • Implement Multi-Circuit Visibility in the Cloud Console – Clearly differentiate multi-circuit jobs from single-circuit ones, improving job tracking and management.

  • Provide Safeguards for Best UX – Ensure an intuitive user experience by optimizing job submission, monitoring, and error handling.

Business Opportunities

  • Attract New Customers – Offering efficient batch job execution makes our platform more appealing to enterprises with complex workflows.

  • Build Confidence in Current Customers – Providing an optimized multi-circuit experience reinforces trust and encourages continued usage.

  • Improve Computational Efficiency – Reducing job submission overhead and improving resource utilization leads to cost savings and performance gains.

  • Future-Proof Hybrid Computing Workflows – Multi-circuit execution lays the groundwork for seamless quantum-classical job management, positioning us as a leader in hybrid computing solutions.

Impact

  • Empowered Users – Customers can run more complex workflows without the burden of excessive job management, increasing their confidence in our offering. By providing better tooling, we encourage customers to take on more sophisticated tasks, leading to deeper engagement and long-term investment in our platform.

  • Improved Accuracy – Running batch jobs together reduces the impact of fluctuating noise levels, leading to better computational results. This ensures customers can rely on consistent and high-quality outputs for their workflows.

  • Reduced Development Overhead – Eliminates the need for writing repetitive job submission and management code, streamlining the user experience and allowing teams to focus on innovation rather than infrastructure.

  • More Efficient Resource Utilization – Reduces computational and network overhead, leading to faster job execution and cost savings. This also aligns with industry expectations for scalable and efficient quantum and hybrid workflows.

  • Easier Aggregated Results – Processing results for a batch is more efficient than reconstructing results from individually submitted jobs, enabling a more seamless analysis of complex workflows.

  • Increased User Satisfaction – Providing enhanced workflow management tools and improving job visibility makes customers more effective, improving their return on investment and satisfaction with the platform.

  • Increased Customer Confidence – Enterprise customers often require robust tooling to manage their workflows effectively. Offering these capabilities reassures customers that our platform meets their needs, driving greater adoption and trust.

  • Higher Usage & Spend – With clear controls preventing unintended spend and proactive failure notifications, customers gain confidence in our system. This trust leads to increased usage and higher overall investment.

  • Proactive Risk Management – Alerting customers early about potential job failures helps build trust in the platform and encourages continued engagement by reducing uncertainty in execution.

By establishing multi-circuit job management as a core feature, we position our platform as an essential tool for enterprises and advanced users, reinforcing confidence in our roadmap and ensuring sustained growth.

Solution

Implement a multi-circuit job batching system that:

  • Supports SDK/API Integration – Enables customers to efficiently submit and manage batch jobs through programmatic interfaces.

  • Enhances Cloud Console Experience – Clearly labels and distinguishes multi-circuit jobs, improving visibility and usability.

  • Ensures Optimized Execution – Batches jobs together to minimize noise fluctuations and improve result accuracy.

  • Reduces Boilerplate Code – Allows customers to avoid redundant job submission and management code, streamlining their workflow.

  • Improves Resource Efficiency – Minimizes overhead by executing jobs in batches instead of individually.

  • Supports Future Hybrid Workloads – Lays the foundation for seamless quantum-classical job execution, enabling scalable and efficient workflows.

Current Developer Experience

In the current console experience, when a multi-circuit job is submitted, it appears in the cloud console just like any other job. There is no clear distinction indicating whether a job contains multiple circuits, making it difficult to identify and differentiate multi-circuit jobs from single-circuit ones.

How a multi circuit job would appear in the IonQ Quantum Cloud Console

Upon expansion of the job, the data was missing

On the details page of the parent job you could see that there are children jobs in the last section of this page called Output. This information is hidden and not accessible. There is no easy way to figure out whether this is multicircuit job.

Output section of the parent multi circuit job indicating children jobs

Once the results are ready the job details page of the parent job shows errors. The results are only accessible via the SDK and API. The error message is misleading as it doesn't provide users with enough context what happened to the results of the job they were running.

The job details page would show "no results" when the job was finished.

Problems to solve

Prevent job from failing

Multi circuit jobs can be costly. What can happen is that a customer would want all the circuits to be completed but then for whatever reason one circuit fails and then all the circuits will continue running and be complete. It would be beneficial to know before running a multi circuit job whether any of the circuits will fail.

Tracking progress & know when jobs fail

Circuit jobs will be grouped under parent jobs and therefore it might not be very clear to the customer what is the progress on the individual circuits and whether there is any issue with any of the jobs. Did they run or they didn't run? Did any of my jobs fail? We should provide intuitive experience around high level status messaging.

Multi action on the jobs

Managing multiple circuits at the same time requires tools that will have an effect on multiple circuits. The customer should be able to choose which circuits they would like to take action on and the actions will be dependent on the status of that circuit job.

Resubmit circuits

A customer might not be satisfied with the results they are getting within the multi circuit jobs and submitting the entire multi-circuit might be very costly. It will be beneficial to provide them with an option to resubmit a singular circuit instead of submitting the entire multi-circuit job so they could get to the desired results without spending a fortune.

Approaches and Iterations

5

Explorations

Circuits on Detail Page

Focused on user exploring circuits information (input, results, output) after clicking on the parent job.

5

Explorations

Circuits on Detail Page

Focused on user exploring circuits information (input, results, output) after clicking on the parent job.

5

Explorations

Circuits on Detail Page

Focused on user exploring circuits information (input, results, output) after clicking on the parent job.

5

Explorations

Circuits in Jobs Table

Focused on user getting to the circuits in the main jobs table and creating separate detail pages for each circuit.

5

Explorations

Circuits in Jobs Table

Focused on user getting to the circuits in the main jobs table and creating separate detail pages for each circuit.

5

Explorations

Circuits in Jobs Table

Focused on user getting to the circuits in the main jobs table and creating separate detail pages for each circuit.

1

Exploration

Circuits in Table on Detail Page

Leveraging reusable components to build circuits table on the parent detail page. Each circuit has its own dedicated detail page.

Circuits on Detail Page

View the Circuit Results in the Job Preview

View the Circuit Results in the Job Preview

Design Critique: Although it may seem convenient, the user must know the exact circuit names to find the relevant information.

Circuits on Detail Page

Browse Through All Circuit Results - Inputs and Outputs

Browse Through All Circuit Results - Inputs and Outputs

Design Critique: If a job contains 200 circuits, the user must scroll through all 200 circuits in each section of the job details page.

Circuits on Detail Page

Select a Circuit for Each Section on the Job Details Page

Select a Circuit for Each Section on the Job Details Page

Design Critique: You would need to choose from 200 circuits to view the input or results. It can be cumbersome to select a circuit for every section of the job details page.

Circuits on Detail Page

Select a Circuit from the Dropdown to View the Results, Input, and Output

Select a Circuit from the Dropdown to View the Results, Input, and Output

Design Critique: You would need to choose from 200 circuits to view the input or results.

Circuits on Detail Page

Expand and Collapse Information About the Circuit You Need to View

Expand and Collapse Information About the Circuit You Need to View

Design Critique: You would need to scroll through 200 circuits to find one, and we would need to create a new component.

Circuits in Jobs Table

Clicking on a Job Will Expand the List of Circuits

Clicking on a Job Will Expand the List of Circuits

Design Critique: Displaying the number of circuits next to the job name is unclear, and we need to build a new component.

Circuits in Jobs Table

Clicking on a Job Will Expand the List of Circuits

Clicking on a Job Will Expand the List of Circuits

Design Critique: Displaying the number of circuits next to the job name is unclear, and we need to build a new component.

Circuits in Jobs Table

Clicking on a Job Will Expand a Nested Table with Circuits

Clicking on a Job Will Expand a Nested Table with Circuits

Design Critique: Creating a table within a table seems challenging, and the jobs don't feel connected.

Circuits in Jobs Table

Clicking on a Job Will Expand a Nested Table with Circuits

Clicking on a Job Will Expand a Nested Table with Circuits

Design Critique: Jobs feel more connected now, but their relationship still remains unclear.

Circuits in Jobs Table

Clicking on a Job Will Expand a Nested Table with Circuits

Clicking on a Job Will Expand a Nested Table with Circuits

Design Critique: With the header, jobs seem more connected now, but we still need a new component.

Circuits in Table on Detail Page

Winner

Parent Job Has Children Jobs Displayed on the Detail Page

Parent Job Has Children Jobs Displayed on the Detail Page

Design Critique: A separate table for children jobs helps scale actions and information that can be added to the children jobs table in the future, without the need to build a new component.

Solution Proposal

Running Multi-Circuit Jobs

SDK/API

Ensure customers can use preflight checks for multi-circuit jobs to estimate costs before running. If the total job cost exceeds the organization's or user's quota, fail the job with an appropriate message. The project budget will serve as the limit.

Parent Job UI Design

Multi-circuit jobs will be displayed like other jobs, with a new column showing the number of circuits. The status will provide visibility into circuit progress, issues, and completion.

  • Add a "running" status with progress animation.

  • Display completion percentage (e.g., 80%) and flag issues (e.g., 1 failed circuit).

  • Use yellow "warning" statuses to highlight issues early.

  • Failed/canceled circuits count as completed.

  • Allow job cancellation and re-running from the console with confirmation, keeping job data for historical context.

  • Enable a consolidated download for all circuit outputs in one file (JSON).

  • Remove unnecessary histogram from the parent job details page.

SDK/API

  • Add a "number of circuits" field to the parent job for easy tracking.

  • Provide circuit status updates via the Get Parent Job API to flag failed circuits early.

  • Show progress percentage and job status summary (e.g., 1 completed, 1 running).

  • Allow canceling and re-running parent jobs.

---

Managing Circuit Jobs

UI Design

Circuit jobs within a multi-circuit job will have their own status and be listed in a table. Users can expand to see job details.

  • Allow bulk actions (cancel, export, download output, re-run) with confirmation.

  • Export job IDs for automation and post-processing.

  • Re-running a circuit will keep its historical attempts. The parent job ID remains unchanged, and its status and progress are unaffected.

  • Introduce a circuit progression tracker to show job completion and highlight failures. Re-running circuits won't alter the parent job's completion percentage.

SDK/API

  • Add the number of runs to child job IDs for easy retrieval of historical data.

  • Enable bulk actions (cancel, re-run, download outputs) for children jobs.

---

Customizing Multi-Circuit Experience

UI Design

Provide an organization-level setting for customizing multi-circuit behavior:

  • Option to fail all jobs if one fails or keep them running, controlled by the organization owner.