{ "$schema": "http://json-schema.org/draft-07/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" }, "metricDataRepository": { "description": "Type of the metric data repository for this cluster", "type": "object", "properties": { "kind": { "type": "string", "enum": [ "influxdb-v1", "influxdb-v2", "prometheus", "cc-metric-store" ] }, "url": { "type": "string" }, "token": { "type": "string" } }, "required": [ "kind", "url" ] }, "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" }, "peak": { "type": "number" }, "normal": { "type": "number" }, "caution": { "type": "number" }, "alert": { "type": "number" } } }, "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" ] } }, "required":[ "name", "metricDataRepository", "metricConfig", "partitions" ] }