mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-26 21:39:06 +01:00
1f8c6064e2
* Remove redundant scope * Change Series Id type to string * Adopt golang structs to schema
285 lines
12 KiB
JSON
285 lines
12 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft/2020-12/schema",
|
|
"$id": "embedfs://cluster.schema.json",
|
|
"title": "HPC cluster description",
|
|
"description": "Meta data information of a HPC cluster",
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "The unique identifier of a cluster",
|
|
"type": "string"
|
|
},
|
|
"metricConfig": {
|
|
"description": "Metric specifications",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Metric name",
|
|
"type": "string"
|
|
},
|
|
"unit": {
|
|
"description": "Metric unit",
|
|
"$ref": "embedfs://unit.schema.json"
|
|
},
|
|
"scope": {
|
|
"description": "Native measurement resolution",
|
|
"type": "string"
|
|
},
|
|
"timestep": {
|
|
"description": "Frequency of timeseries points",
|
|
"type": "integer"
|
|
},
|
|
"aggregation": {
|
|
"description": "How the metric is aggregated",
|
|
"type": "string",
|
|
"enum": [
|
|
"sum",
|
|
"avg"
|
|
]
|
|
},
|
|
"peak": {
|
|
"description": "Metric peak threshold (Upper metric limit)",
|
|
"type": "number"
|
|
},
|
|
"normal": {
|
|
"description": "Metric normal threshold",
|
|
"type": "number"
|
|
},
|
|
"caution": {
|
|
"description": "Metric caution threshold (Suspicious but does not require immediate action)",
|
|
"type": "number"
|
|
},
|
|
"alert": {
|
|
"description": "Metric alert threshold (Requires immediate action)",
|
|
"type": "number"
|
|
},
|
|
"subClusters": {
|
|
"description": "Array of cluster hardware partition metric thresholds",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Hardware partition name",
|
|
"type": "string"
|
|
},
|
|
"peak": {
|
|
"type": "number"
|
|
},
|
|
"normal": {
|
|
"type": "number"
|
|
},
|
|
"caution": {
|
|
"type": "number"
|
|
},
|
|
"alert": {
|
|
"type": "number"
|
|
},
|
|
"remove": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"unit",
|
|
"scope",
|
|
"timestep",
|
|
"aggregation",
|
|
"peak",
|
|
"normal",
|
|
"caution",
|
|
"alert"
|
|
]
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"subClusters": {
|
|
"description": "Array of cluster hardware partitions",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Hardware partition name",
|
|
"type": "string"
|
|
},
|
|
"processorType": {
|
|
"description": "Processor type",
|
|
"type": "string"
|
|
},
|
|
"socketsPerNode": {
|
|
"description": "Number of sockets per node",
|
|
"type": "integer"
|
|
},
|
|
"coresPerSocket": {
|
|
"description": "Number of cores per socket",
|
|
"type": "integer"
|
|
},
|
|
"threadsPerCore": {
|
|
"description": "Number of SMT threads per core",
|
|
"type": "integer"
|
|
},
|
|
"flopRateScalar": {
|
|
"description": "Theoretical node peak flop rate for scalar code in GFlops/s",
|
|
"type": "object",
|
|
"properties": {
|
|
"unit": {
|
|
"description": "Metric unit",
|
|
"$ref": "embedfs://unit.schema.json"
|
|
},
|
|
"value": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"flopRateSimd": {
|
|
"description": "Theoretical node peak flop rate for SIMD code in GFlops/s",
|
|
"type": "object",
|
|
"properties": {
|
|
"unit": {
|
|
"description": "Metric unit",
|
|
"$ref": "embedfs://unit.schema.json"
|
|
},
|
|
"value": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"memoryBandwidth": {
|
|
"description": "Theoretical node peak memory bandwidth in GB/s",
|
|
"type": "object",
|
|
"properties": {
|
|
"unit": {
|
|
"description": "Metric unit",
|
|
"$ref": "embedfs://unit.schema.json"
|
|
},
|
|
"value": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"nodes": {
|
|
"description": "Node list expression",
|
|
"type": "string"
|
|
},
|
|
"topology": {
|
|
"description": "Node topology",
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"description": "HwTread lists of node",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"socket": {
|
|
"description": "HwTread lists of sockets",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"memoryDomain": {
|
|
"description": "HwTread lists of memory domains",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"die": {
|
|
"description": "HwTread lists of dies",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"core": {
|
|
"description": "HwTread lists of cores",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"accelerators": {
|
|
"type": "array",
|
|
"description": "List of of accelerator devices",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The unique device id"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "The accelerator type",
|
|
"enum": [
|
|
"Nvidia GPU",
|
|
"AMD GPU",
|
|
"Intel GPU"
|
|
]
|
|
},
|
|
"model": {
|
|
"type": "string",
|
|
"description": "The accelerator model"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"type",
|
|
"model"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"socket",
|
|
"memoryDomain"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"nodes",
|
|
"topology",
|
|
"processorType",
|
|
"socketsPerNode",
|
|
"coresPerSocket",
|
|
"threadsPerCore",
|
|
"flopRateScalar",
|
|
"flopRateSimd",
|
|
"memoryBandwidth"
|
|
]
|
|
},
|
|
"minItems": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"metricConfig",
|
|
"subClusters"
|
|
]
|
|
}
|