Defines the MapCOPALayout class.

Module Contents



A circuit outcome probability array (COPA) layout for circuit simulation by state vector maps.

class pygsti.layouts.maplayout.MapCOPALayout(circuits, model, dataset=None, max_cache_size=None, num_sub_tables=None, num_table_processors=1, num_param_dimension_processors=(), param_dimensions=(), param_dimension_blk_sizes=(), resource_alloc=None, verbosity=0)

Bases: pygsti.layouts.distlayout.DistributableCOPALayout

A circuit outcome probability array (COPA) layout for circuit simulation by state vector maps.

A simple distributed layout that divides a list of circuits among available processors and optionally supports caching “prefix” states that result from common prefixes found in the circuits.



A list of:class:Circuit objects representing the circuits this layout will include.


The model that will be used to compute circuit outcome probabilities using this layout. This model is used to complete and expand the circuits in circuits.

datasetDataSet, optional

If not None, restrict the circuit outcomes stored by this layout to only the outcomes observed in this data set.

max_cache_sizeint, optional

The maximum number of “prefix” quantum states that may be cached for performance. If None, there is no limit to how large the cache may be.

num_sub_tablesint, optional

The number of groups (“sub-tables”) to divide the circuits into. This is the number of atoms for this layout.

num_table_processorsint, optional

The number of atom-processors, i.e. groups of processors that process sub-tables.

num_param_dimension_processorstuple, optional

A 1- or 2-tuple of integers specifying how many parameter-block processors are used when dividing the physical processors into a grid. The first and second elements correspond to counts for the first and second parameter dimensions, respecively.

param_dimensionstuple, optional

The number of parameters along each parameter dimension. Can be an empty, 1-, or 2-tuple of integers which dictates how many parameter dimensions this layout supports.

param_dimension_blk_sizestuple, optional

The parameter block sizes along each present parameter dimension, so this should be the same shape as param_dimensions. A block size of None means that there should be no division into blocks, and that each block processor computes all of its parameter indices at once.

resource_allocResourceAllocation, optional

The resources available for computing circuit outcome probabilities.

verbosityint or VerbosityPrinter

Determines how much output to send to stdout. 0 means no output, higher integers mean more output.