CloudQC is a network-aware framework for multi-tenant distributed quantum computing that optimizes both quantum network cost and quantum computing performance.
CloudQC addresses the challenges of running distributed quantum computing (DQC) in a multi-tenant quantum cloud environment. It focuses on two key problems:
- Efficiently placing multiple quantum circuits onto Quantum Processing Units (QPUs)
- Scheduling network resources(EPR) pairs
- Multi-tenant Circuit Placement: Places quantum circuits onto QPUs while considering the impact on future circuit placements and minimizing cross-QPU communication
- Network Scheduler: Intelligently allocates quantum network resources (EPR pairs) while accounting for the probabilistic nature of quantum communication
from job import job_generator
from cluster import qCloud
from jobScheduler import job_scheduler
from des import DES
import networkx as nx
# Create a quantum cloud with 4 QPUs in a ring topology
cloud = qCloud(4, nx.cycle_graph, None, 5, 20)
# Generate quantum jobs
job_gen = job_generator()
job_queue = job_gen.generate_job(10)
# Create a discrete event simulator and scheduler
des_simulator = DES(cloud=cloud)
scheduler = job_scheduler(job_queue, des_simulator, cloud)
# Schedule and run jobs
scheduler.schedule_fifo()
des_simulator.run()- Python 3.6+
- numpy, networkx, pytket, matplotlib, pymetis
MIT License