netqasm.backend.qnodeos

Quantum node controller interface for simulators.

This module provides the QNodeController class which can be used by simulators as a base class for modeling the quantum node controller.

class netqasm.backend.qnodeos.QNodeController(name, instr_log_dir=None, flavour=None, **kwargs)

Bases: object

Class for representing a Quantum Node Controller in a simulation.

A QNodeController represents a physical quantum node controller that handles messages coming from the Host, lets the Executor execute subroutines, and sends results back to the Host.

Parameters
  • name (str) –

  • instr_log_dir (Optional[str]) –

  • flavour (Optional[Flavour]) –

__init__(name, instr_log_dir=None, flavour=None, **kwargs)

QNodeController constructor.

Parameters
  • name (str) – name used for logging purposes

  • instr_log_dir (Optional[str]) – directory used to write log files to

  • flavour (Optional[Flavour]) – which NetQASM flavour this quantum node controller should expect and be able to interpret

abstract stop()
Return type

None

property finished
Return type

bool

handle_netqasm_message(msg_id, msg)
Parameters
  • msg_id (int) –

  • msg (Message) –

Return type

Generator[Any, None, None]

property has_active_apps
Return type

bool

property network_stack
Return type

Optional[BaseNetworkStack]

add_network_stack(network_stack)
Parameters

network_stack (BaseNetworkStack) –

Return type

None