Subsystem graph generation for the Flux containment subsystem
Project description
Compspec Containment
A compspec (Composition spec) is a specification and model for comparing things. Compspec containment is a plugin for extraction of the Flux Framework containment subsystem, which means verices (cluster, racks, nodes, sockets, cores, etc) and edges between them that describe relationships (e.g., "contains"). Other cluster types can be added and they will need to have an intermediate translation into a graph. To learn more:
- Compspec: the Python library that discovers and loads this plugin.
Usage
Install compspec and the plugin here:
pip install compspec
pip install compspec-containment
In the dev container, try running an extraction for the Flux instance running:
flux start --test-size=4
compspec extract containment cluster-a
To save to file:
# This extracts a cluster named "a"
compspec extract --outfile containment-subsystem.json containment a
You can see the example example/containment-subsystem.json.
compspec-containment output
{
"graph": {
"directed": false,
"metadata": {
"type": "containment",
"name": "a",
"install_name": "compat-experiment"
},
"nodes": [
{
"id": "0",
"metadata": {
"type": "cluster",
"paths": {
"containment": "/cluster0"
}
}
},
{
"id": "1",
"metadata": {
"type": "node",
"name": "039b58a80799",
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799"
}
}
},
{
"id": "2",
"metadata": {
"type": "core",
"id": 0,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core0"
}
}
},
{
"id": "3",
"metadata": {
"type": "core",
"id": 1,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core1"
}
}
},
{
"id": "4",
"metadata": {
"type": "core",
"id": 2,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core2"
}
}
},
{
"id": "5",
"metadata": {
"type": "core",
"id": 3,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core3"
}
}
},
{
"id": "6",
"metadata": {
"type": "core",
"id": 4,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core4"
}
}
},
{
"id": "7",
"metadata": {
"type": "core",
"id": 5,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core5"
}
}
},
{
"id": "8",
"metadata": {
"type": "core",
"id": 6,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core6"
}
}
},
{
"id": "9",
"metadata": {
"type": "core",
"id": 7,
"rank": 0,
"paths": {
"containment": "/cluster0/039b58a80799/core7"
}
}
},
{
"id": "10",
"metadata": {
"type": "node",
"name": "039b58a80799",
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799"
}
}
},
{
"id": "11",
"metadata": {
"type": "core",
"id": 0,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core0"
}
}
},
{
"id": "12",
"metadata": {
"type": "core",
"id": 1,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core1"
}
}
},
{
"id": "13",
"metadata": {
"type": "core",
"id": 2,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core2"
}
}
},
{
"id": "14",
"metadata": {
"type": "core",
"id": 3,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core3"
}
}
},
{
"id": "15",
"metadata": {
"type": "core",
"id": 4,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core4"
}
}
},
{
"id": "16",
"metadata": {
"type": "core",
"id": 5,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core5"
}
}
},
{
"id": "17",
"metadata": {
"type": "core",
"id": 6,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core6"
}
}
},
{
"id": "18",
"metadata": {
"type": "core",
"id": 7,
"rank": 1,
"paths": {
"containment": "/cluster0/039b58a80799/core7"
}
}
},
{
"id": "19",
"metadata": {
"type": "node",
"name": "039b58a80799",
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799"
}
}
},
{
"id": "20",
"metadata": {
"type": "core",
"id": 0,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core0"
}
}
},
{
"id": "21",
"metadata": {
"type": "core",
"id": 1,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core1"
}
}
},
{
"id": "22",
"metadata": {
"type": "core",
"id": 2,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core2"
}
}
},
{
"id": "23",
"metadata": {
"type": "core",
"id": 3,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core3"
}
}
},
{
"id": "24",
"metadata": {
"type": "core",
"id": 4,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core4"
}
}
},
{
"id": "25",
"metadata": {
"type": "core",
"id": 5,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core5"
}
}
},
{
"id": "26",
"metadata": {
"type": "core",
"id": 6,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core6"
}
}
},
{
"id": "27",
"metadata": {
"type": "core",
"id": 7,
"rank": 2,
"paths": {
"containment": "/cluster0/039b58a80799/core7"
}
}
},
{
"id": "28",
"metadata": {
"type": "node",
"name": "039b58a80799",
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799"
}
}
},
{
"id": "29",
"metadata": {
"type": "core",
"id": 0,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core0"
}
}
},
{
"id": "30",
"metadata": {
"type": "core",
"id": 1,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core1"
}
}
},
{
"id": "31",
"metadata": {
"type": "core",
"id": 2,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core2"
}
}
},
{
"id": "32",
"metadata": {
"type": "core",
"id": 3,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core3"
}
}
},
{
"id": "33",
"metadata": {
"type": "core",
"id": 4,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core4"
}
}
},
{
"id": "34",
"metadata": {
"type": "core",
"id": 5,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core5"
}
}
},
{
"id": "35",
"metadata": {
"type": "core",
"id": 6,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core6"
}
}
},
{
"id": "36",
"metadata": {
"type": "core",
"id": 7,
"rank": 3,
"paths": {
"containment": "/cluster0/039b58a80799/core7"
}
}
}
],
"edges": [
{
"source": "0",
"target": "1"
},
{
"source": "1",
"target": "2"
},
{
"source": "1",
"target": "3"
},
{
"source": "1",
"target": "4"
},
{
"source": "1",
"target": "5"
},
{
"source": "1",
"target": "6"
},
{
"source": "1",
"target": "7"
},
{
"source": "1",
"target": "8"
},
{
"source": "1",
"target": "9"
},
{
"source": "0",
"target": "10"
},
{
"source": "10",
"target": "11"
},
{
"source": "10",
"target": "12"
},
{
"source": "10",
"target": "13"
},
{
"source": "10",
"target": "14"
},
{
"source": "10",
"target": "15"
},
{
"source": "10",
"target": "16"
},
{
"source": "10",
"target": "17"
},
{
"source": "10",
"target": "18"
},
{
"source": "0",
"target": "19"
},
{
"source": "19",
"target": "20"
},
{
"source": "19",
"target": "21"
},
{
"source": "19",
"target": "22"
},
{
"source": "19",
"target": "23"
},
{
"source": "19",
"target": "24"
},
{
"source": "19",
"target": "25"
},
{
"source": "19",
"target": "26"
},
{
"source": "19",
"target": "27"
},
{
"source": "0",
"target": "28"
},
{
"source": "28",
"target": "29"
},
{
"source": "28",
"target": "30"
},
{
"source": "28",
"target": "31"
},
{
"source": "28",
"target": "32"
},
{
"source": "28",
"target": "33"
},
{
"source": "28",
"target": "34"
},
{
"source": "28",
"target": "35"
},
{
"source": "28",
"target": "36"
}
]
}
}
License
HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.
See LICENSE, COPYRIGHT, and NOTICE for details.
SPDX-License-Identifier: (MIT)
LLNL-CODE- 842614
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file compspec_containment-0.0.12.tar.gz.
File metadata
- Download URL: compspec_containment-0.0.12.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44debe1a2577bec727a971b40535efdb07c01de71ed58deae35d52c6eee4a364
|
|
| MD5 |
7ed24f373f9a6275134f2b9dbd7d87cf
|
|
| BLAKE2b-256 |
0a2e4699970b299322308a72bd9599ee600198053ef3cd5e18df715e31f4147b
|
File details
Details for the file compspec_containment-0.0.12-py3-none-any.whl.
File metadata
- Download URL: compspec_containment-0.0.12-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eb3c21e5a42c1d17d23a4fba6e480066b74b0f992eb6956a4e22ce5bebcdfe8
|
|
| MD5 |
91e9ce7ef480fcf9d04af00d239b999b
|
|
| BLAKE2b-256 |
14b6a53ebb2738bf081dfdd7833fe3b6921681bd6dad5c3e19b7c711155cbab3
|