Skip to content

Commit 6d98cb3

Browse files
committed
refactor: separating supercontainers into resource types
Problem: we want to be able to ask for subsystem resources on a more granular level. Solution: separate supercontainers out into each of mpi, hardware, network (communication) and os. The use case is that if we are registering different subsystems to a graph, the different resource types should be more modularity defined. Signed-off-by: vsoch <[email protected]>
1 parent 204a4b9 commit 6d98cb3

File tree

6 files changed

+223
-170
lines changed

6 files changed

+223
-170
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Compspec
1+
# Compspec Schemas
22

33
This is a prototype repository for compatibility specifications that are being worked on by the [OCI compatibility working group](https://github.com/opencontainers/wg-image-compatibility). While that work is underway (and the structure and format of these metadata to be determined. For the time being we have defined two things:
44

@@ -14,7 +14,7 @@ Both of the above are based on proposals [C](https://github.com/opencontainers/w
1414

1515
## Organization
1616

17-
The different subdirectories of compatibility families (sets of metadata owned by different groups).
17+
The different subdirectories of compatibility families (sets of metadata owned by different groups). We originally had a nested group under supercontainers, and these have been separated out to distinguish a family of attributes like MPI from another like gpu. The supercontainers is also removed for the time being to brand it as a generic kind of subsystem.
1818

1919
Likely these metadata can be moved to be owned properly by the group. They are all kept here for the time being for ease of access. Also for the time being, we have represented the entire set of labels (and smaller namespaces) for one compatibiilty family (e.g., supercontainers) in one JSON file, and of course this is subject to change.
2020

hardware/compspec.json

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
{
2+
"graph": {
3+
"id": "hardware",
4+
"type": "compspec",
5+
"label": "compatibilities",
6+
"nodes": {
7+
"hardware": {
8+
"label": "hardware"
9+
},
10+
"hardware.gpu": {
11+
"label": "gpu hardware"
12+
},
13+
"hardware.gpu.enabled": {
14+
"label": "true if gpu is enabled"
15+
},
16+
"hardware.gpu.driver": {
17+
"label": "gpu driver"
18+
},
19+
"hardware.gpu.architecture": {
20+
"label": "gpu architecture"
21+
},
22+
"hardware.gpu.driver.version": {
23+
"label": "gpu driver version"
24+
},
25+
"hardware.gpu.cuda": {
26+
"label": "gpu cuda"
27+
},
28+
"hardware.gpu.cuda.version": {
29+
"label": "cuda version"
30+
}
31+
},
32+
"edges": [
33+
{
34+
"source": "hardware",
35+
"target": "hardware.gpu",
36+
"relation": "contains"
37+
},
38+
{
39+
"source": "hardware.gpu",
40+
"target": "hardware.gpu.enabled",
41+
"relation": "contains"
42+
},
43+
{
44+
"source": "hardware.gpu",
45+
"target": "hardware.gpu.driver",
46+
"relation": "contains"
47+
},
48+
{
49+
"source": "hardware.gpu.driver",
50+
"target": "hardware.gpu.driver.version",
51+
"relation": "contains"
52+
},
53+
{
54+
"source": "hardware.gpu",
55+
"target": "hardware.gpu.architecture",
56+
"relation": "contains"
57+
},
58+
{
59+
"source": "hardware.gpu",
60+
"target": "hardware.gpu.version",
61+
"relation": "contains"
62+
},
63+
{
64+
"source": "hardware.gpu",
65+
"target": "hardware.gpu.cuda",
66+
"relation": "contains"
67+
},
68+
{
69+
"source": "hardware.gpu.cuda",
70+
"target": "hardware.gpu.cuda.version",
71+
"relation": "contains"
72+
}
73+
],
74+
"metadata": {
75+
"version": "0.0.0",
76+
"source": "https://github.com/compspec/schemas"
77+
}
78+
}
79+
}

mpi/compspec.json

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{
2+
"graph": {
3+
"id": "mpi",
4+
"type": "compspec",
5+
"label": "compatibilities",
6+
"nodes": {
7+
"mpi": {
8+
"label": "message passing interface (mpi)"
9+
},
10+
"mpi.implementation": {
11+
"label": "mpi implementation"
12+
},
13+
"mpi.version": {
14+
"label": "mpi version"
15+
},
16+
"mpi.portability": {
17+
"label": "mpi portability attributes"
18+
},
19+
"mpi.portability.optimization": {
20+
"label": "mpi portability optimization"
21+
},
22+
"mpi.portability.mode": {
23+
"label": "mpi portability mode"
24+
}
25+
},
26+
"edges": [
27+
{
28+
"source": "mpi",
29+
"target": "mpi.version",
30+
"relation": "contains"
31+
},
32+
{
33+
"source": "mpi",
34+
"target": "mpi.implementation",
35+
"relation": "contains"
36+
},
37+
{
38+
"source": "mpi",
39+
"target": "mpi.portability",
40+
"relation": "contains"
41+
},
42+
{
43+
"source": "mpi.portability",
44+
"target": "mpi.portability.optimization",
45+
"relation": "contains"
46+
},
47+
{
48+
"source": "mpi.portability",
49+
"target": "mpi.portability.mode",
50+
"relation": "contains"
51+
}
52+
],
53+
"metadata": {
54+
"version": "0.0.0",
55+
"source": "https://github.com/compspec/schemas"
56+
}
57+
}
58+
}

network/compspec.json

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"graph": {
3+
"id": "network",
4+
"type": "compspec",
5+
"label": "compatibilities",
6+
"nodes": {
7+
"network": {
8+
"label": "network"
9+
},
10+
"network.communication": {
11+
"label": "communication"
12+
},
13+
"network.communication.framework": {
14+
"label": "communication framework"
15+
}
16+
},
17+
"edges": [
18+
{
19+
"source": "network",
20+
"target": "network.communication",
21+
"relation": "contains"
22+
},
23+
{
24+
"source": "network.communication",
25+
"target": "network.communication.framework",
26+
"relation": "contains"
27+
}
28+
],
29+
"metadata": {
30+
"version": "0.0.0",
31+
"source": "https://github.com/supercontainers/compspec"
32+
}
33+
}
34+
}

os/compspec.json

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"graph": {
3+
"id": "os",
4+
"type": "compspec",
5+
"label": "compatibilities",
6+
"nodes": {
7+
"os": {
8+
"label": "operating system"
9+
},
10+
"os.name": {
11+
"label": "operating system name"
12+
},
13+
"os.release": {
14+
"label": "operating system release"
15+
},
16+
"os.vendor": {
17+
"label": "operating system vendor"
18+
},
19+
"os.version": {
20+
"label": "operating system version"
21+
}
22+
},
23+
"edges": [
24+
{
25+
"source": "os",
26+
"target": "os.name",
27+
"relation": "contains"
28+
},
29+
{
30+
"source": "os",
31+
"target": "os.release",
32+
"relation": "contains"
33+
},
34+
{
35+
"source": "os",
36+
"target": "os.vendor",
37+
"relation": "contains"
38+
},
39+
{
40+
"source": "os",
41+
"target": "os.version",
42+
"relation": "contains"
43+
}
44+
],
45+
"metadata": {
46+
"version": "0.0.0",
47+
"source": "https://github.com/supercontainers/compspec"
48+
}
49+
}
50+
}

0 commit comments

Comments
 (0)