18.8. Replica grouping
- class popxl.ReplicaGrouping
- __init__()
Not intended to be called directly, use
replica_grouping()
instead.
- property assignment: List[int]
Obtain the group each replica is assigned to.
Examples (with
ir.replication_factor = 8
):ir.replica_grouping(stride=1, group_size=8).assignment [0, 0, 0, 0, 0, 0, 0, 0] ir.replica_grouping(stride=1, group_size=1).assignment [0, 1, 2, 3, 4, 5, 6, 7] ir.replica_grouping(stride=1, group_size=2).assignment [0, 0, 1, 1, 2, 2, 3, 3] ir.replica_grouping(stride=2, group_size=2).assignment [0, 1, 0, 1, 2, 3, 2, 3] ir.replica_grouping(stride=1, group_size=4).assignment [0, 0, 0, 0, 1, 1, 1, 1] ir.replica_grouping(stride=2, group_size=4).assignment [0, 1, 0, 1, 0, 1, 0, 1]
- Returns
A list where the index is the replica and value is the group index
- Return type
List[int]
- property group_size: int
Get the group size.
- Returns
The number of replicas in each replica group.
- Return type
- property is_const: bool
Return True if has a constant stride and group size, and therefore can be represented using a PopART C++ ReplicaGrouping.
- property num_groups: int
Get the number of groups.
- Returns
The number of replica groups.
- Return type
- property stride: int
Get the stride.
- Returns
The offset between elements in a replica group.
- Return type
- Raises
NotImplementedError – if non-constant stride
- transpose()
Return the transpose of this replica grouping.
A replica grouping whereby the first element of each group is the first new group, the second element of each group is the second group etc.
Examples:
[0, 0, 0, 0] -> [0, 1, 2, 3] [0, 1, 0, 1] -> [0, 0, 1, 1] [0, 0, 1, 1] -> [0, 1, 0, 1] [0, 1, 2, 3] -> [0, 0, 0, 0]
A good way to visualise the transpose is by considering the group matrix. For example, for the assignment
[0, 1, 0, 1, 2, 3, 2, 3]
the group matrix is: [[0, 2],[1, 3], [4, 6], [5, 7]]
Whereby the first axis is the group index and the values are the replica index. The transpose of this matrix is: [[0, 1, 4, 5],
2, 3, 6, 7]]
Which converts back to the assignments
[0, 0, 1, 1, 0, 0, 1, 1]
.- Returns
A “transpose” replica grouping of self.
- Return type