qcs_api_client.models.architecture#

Module Contents#

Classes#

Architecture

Represents the logical underlying architecture of a quantum processor.

Attributes#

T

qcs_api_client.models.architecture.T#
class qcs_api_client.models.architecture.Architecture#

Represents the logical underlying architecture of a quantum processor.

The architecture is defined in detail by the nodes and edges that constitute the quantum processor. This defines the set of all nodes that could be operated upon, and indicates to some approximation their physical layout. The main purpose of this is to support geometry calculations that are independent of the available operations, and rendering ISA-based information. Architecture layouts are defined by the family, as follows.

The “Aspen” family of quantum processor indicates a 2D planar grid layout of octagon unit cells. The node_id in this architecture is computed as \(100 p_y + 10 p_x + p_u\) where \(p_y\) is the zero-based Y position in the unit cell grid, \(p_x\) is the zero-based X position in the unit cell grid, and \(p_u\) is the zero-based position in the octagon unit cell and always ranges from 0 to 7. This scheme has a natural size limit of a 10x10 unit cell grid, which permits the architecture to scale up to 800 nodes.

Note that the operations that are actually available are defined entirely by Operation instances. The presence of a node or edge in the Architecture model provides no guarantee that any 1Q or 2Q operation will be available to users writing QUIL programs.

Attributes:

edges (List[Edge]): A list of all computational edges in the instruction set architecture. family (Family): Family identifier.

Value ‘None’ implies the architecture has no specific layout topology. Value ‘Full’ implies that each node is connected to every other (a fully-connected architecture)

For other values based on deployed architecture layouts (e.g. Aspen and Ankaa), refer to the architecture classes themselves for more details.

nodes (List[Node]): A list of all computational nodes in the instruction set architecture.

edges :List[qcs_api_client.models.edge.Edge]#
family :qcs_api_client.models.family.Family#
nodes :List[qcs_api_client.models.node.Node]#
to_dict(pick_by_predicate: Optional[Callable[[Any], bool]] = is_not_none) Dict[str, Any]#
classmethod from_dict(src_dict: Dict[str, Any]) T#