4. Allocations

An allocation entity contains a group of agents that one or more users has access to. Users can have access to one or more allocations, as long as access has been granted by the administrators. IPUs used for partition creation are derived from, and restricted to, the agents in the allocations the user has access to.

For example, user A has access to 1 allocation, alloc-1, which consists of 4 agents (16 IPUs):

$ vipu list allocations
---------------------------------
 Allocation ID | Agents
---------------------------------
 alloc-1       | ag0 ag1 ag2 ag3
---------------------------------

If none of the agent’s IPUs in alloc-1 are in use, user A can create a partition spanning all 16 IPUs.

Another user, user B, has access to both alloc-1 and another allocation, alloc-2, consisting of 2 agents (8 IPUs):

$ vipu list allocations
---------------------------------
 Allocation ID | Agents
---------------------------------
 alloc-1       | ag0 ag1 ag2 ag3
 alloc-2       | ag4 ag5
---------------------------------

If none of the agent’s IPUs in alloc-1 and alloc-2 are in use, user B can use them to create partitions. Note that since partitions cannot span across allocations, the largest possible partition would in this case consist of the 16 IPUs in alloc-1. Instead, user B can also create a smaller partition of size 8 using the IPUs in alloc-2.

4.1. IPU attributes

Users can list different IPU attributes from the agents in the allocations the users are assigned to. In order to list the IPU attributes, pass the list ipu-attrs option:

$ vipu list ipu-attrs
 Agent      | IPU | Attribute                         | Value
---------------------------------------------------------------------------
 ag0        | 0   | board ipu index                   | 1
            |     | board serial number               | 0024.0002.8203921
            |     | board type                        | M2000
            |     | clock                             | 1330MHz
            |     | driver version                    | 1.0.58
            |     | firmware major version            | 2
            |     | firmware minor version            | 4
            |     | firmware patch version            | 4
            |     | firmware version                  | 2.4.4
            |     | hexopt active size (bytes)        | 0
            |     | hexopt total size (bytes)         | 268435456
            |     | host link correctable error count | 3
            |     | ipu architecture                  | ipu2
            |     | ipu error state                   | no errors
            |     | link correctable error count      | 6725
            |     | link speed                        | 16 GT/s
 ...

Note that the attributes are fetched from the Graphcore Target Access layer, and forwarded by V-IPU, so the actual list may differ from the output above. See the Graphcore Command Line Tool documentation for the list of supported attributes.