{ "$schema": "http://json-schema.org/draft/2020-12/schema", "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", "type": "string" }, "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" ] }, "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" } }, "required": [ "name", "peak", "caution", "alert" ] } } }, "required": [ "name", "unit", "scope", "timestep" ] }, "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": "integer" }, "flopRateSimd": { "description": "Theoretical node peak flop rate for SIMD code in GFlops/s", "type": "integer" }, "memoryBandwidth": { "description": "Theoretical node peak memory bandwidth in GB/s", "type": "integer" }, "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", "topology", "processorType", "socketsPerNode", "coresPerSocket", "threadsPerCore", "flopRateScalar", "flopRateSimd", "memoryBandwidth" ] }, "minItems": 1 } }, "required":[ "name", "metricConfig", "subClusters" ] }