kosmos.simulator.dqc_simulator

Classes

class DQCSimulator(network: kosmos.topology.net.Network, seed: int = 1, assignment_strategy_cls: type[kosmos.dqc_scheduling.assignment_strategies.assignment_strategy.AssignmentStrategy] = GreedyAssignment, eg_protocol_cls: type[kosmos.protocols.eg_protocol.EGProtocol] = EGProtocol, eg_protocol_config: kosmos.protocols.config.protocol.EGProtocolConfig | None = None)[source]

Bases: kosmos.simulator.simulator.Simulator

Distributed Quantum Computing simulator.

Executes quantum circuits in a distributed manner across multiple nodes.

quantum_manager

Quantum register manager for handling entanglements, qubits and states cross the network.

Type:

QuantumRegisterManager

circuit_runner

Qiskit Aer simulator for executing quantum circuits.

Type:

AerSimulatorRunner

assignment_strategy_cls

Assignment strategy class.

Type:

type[AssignmentStrategy]

eg_protocol_cls

Entanglement generation protocol class.

Type:

type[EGProtocol]

eg_protocol_config

Config for entanglement generation protocol.

Type:

EGProtocolConfig

execution_scheduler

Scheduler that determines the execution order of circuit partition and remote operations.

Type:

ExecutionScheduler | None

execution_results

Dictionary containing execution metrics including timing, counts, and expectation values.

Type:

dict[str, Any]

Initialize the DQC simulator.

Parameters:
  • network (Network) – The quantum network topology.

  • seed (int) – Random seed for reproducibility. Defaults to 1.

  • assignment_strategy_cls (type[AssignmentStrategy]) – Assignment strategy class. Defaults to GreedyAssignment.

  • eg_protocol_cls (type[EGProtocol]) – EGProtocol class (or subclass) to use for entanglement generation. Defaults to EGProtocol.

  • eg_protocol_config (EGProtocolConfig | None) – Configuration for EGProtocol. If None, a default EGProtocolConfig() is created. Defaults to None.


Methods

load_circuit(circuit: qiskit.QuantumCircuit | str) None[source]

Partition and distribute a quantum circuit for distributed execution.

Parameters:

circuit (QuantumCircuit | str) – Qiskit QuantumCircuit or QASM string.

schedule_protocols() None[source]

Schedule communication & circuit execution protocols.

run() dict[str, Any][source]

Execute all scheduled events.

Returns:

Execution results including timing and measurements.

Return type:

dict[str, Any]

measure_final_state() tuple[dict[str, int], numpy.ndarray][source]

Measure the final quantum state after circuit partition finished.

Returns:

Raw measurement counts (bitstring -> count).

Return type:

tuple[dict[str, int], np.ndarray]