From b7abddf0c83c2182ba76c35f96a1d948561ca104 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 26 Nov 2021 09:15:50 +0100 Subject: [PATCH] Extend job archive schema for node sharing * Allow for node sharing * Add GPU support --- schema/json/cluster.schema.json | 6 +-- schema/json/job-meta.schema.json | 60 +++++++++++++++++++++---- schema/json/job-metric-data.schema.json | 10 ++--- 3 files changed, 59 insertions(+), 17 deletions(-) diff --git a/schema/json/cluster.schema.json b/schema/json/cluster.schema.json index 4b8da73..e84f529 100644 --- a/schema/json/cluster.schema.json +++ b/schema/json/cluster.schema.json @@ -25,15 +25,15 @@ "type": "integer" }, "flop_rate_scalar": { - "description": "Theorethical node peak flop rate for scalar code in GFlops/s", + "description": "Theoretical node peak flop rate for scalar code in GFlops/s", "type": "integer" }, "flop_rate_simd": { - "description": "Theorethical node peak flop rate for SIMD code in GFlops/s", + "description": "Theoretical node peak flop rate for SIMD code in GFlops/s", "type": "integer" }, "memory_bandwidth": { - "description": "Theorethical node peak memory bandwidth in GB/s", + "description": "Theoretical node peak memory bandwidth in GB/s", "type": "integer" }, "metric_config": { diff --git a/schema/json/job-meta.schema.json b/schema/json/job-meta.schema.json index 2434f43..68723ce 100644 --- a/schema/json/job-meta.schema.json +++ b/schema/json/job-meta.schema.json @@ -6,7 +6,7 @@ "properties": { "job_id": { "description": "The unique identifier of a job", - "type": "string" + "type": "integer" }, "user_id": { "description": "The unique identifier of a user", @@ -20,15 +20,37 @@ "description": "The unique identifier of a cluster", "type": "string" }, + "partition": { + "description": "The queue to which the job was submitted", + "type": "string" + }, + "array_id": { + "description": "The unique identifier of an array job", + "type": "integer" + }, "num_nodes": { "description": "Number of nodes used", "type": "integer", "exclusiveMinimum": 0 }, + "num_hwthreads": { + "description": "Number of HWThreads used", + "type": "integer", + "exclusiveMinimum": 0 + }, + "num_gpus": { + "description": "Number of GPUs used", + "type": "integer", + "exclusiveMinimum": 0 + }, "exclusive": { "description": "Job uses only exclusive nodes", "type": "boolean" }, + "smt": { + "description": "Job uses smt feature", + "type": "boolean" + }, "walltime": { "description": "Requested walltime of job in seconds", "type": "integer", @@ -41,6 +63,7 @@ "completed", "failed", "canceled", + "stopped", "timeout" ] }, @@ -59,14 +82,34 @@ "type": "integer", "exclusiveMinimum": 0 }, - "nodes": { - "description": "List of nodes", + "resources": { + "description": "Resources used by job", "type": "array", "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true + "type": "object", + "properties": { + "hostname": { + "type": "string" + }, + "hwthreads": { + "type": "array", + "description": "List of OS processor ids", + "items": { + "type": "integer" + } + }, + "gpus": { + "type": "array", + "description": "List of of gpu device addresses", + "items": { + "type": "integer" + } + }, + "required": [ + "hostname" + ] + }, + "minItems": 1 }, "tags": { "description": "List of tags", @@ -215,6 +258,7 @@ }, "required": [ "mem_used", + "cpu_used", "flops_any", "mem_bw", "net_bw", @@ -231,7 +275,7 @@ "start_time", "stop_time", "duration", - "nodes", + "resources", "tags", "statistics" ] diff --git a/schema/json/job-metric-data.schema.json b/schema/json/job-metric-data.schema.json index 09f9561..03ad00f 100644 --- a/schema/json/job-metric-data.schema.json +++ b/schema/json/job-metric-data.schema.json @@ -5,16 +5,15 @@ "type": "object", "properties": { "unit": { - "description": "", "type": "string" }, "scope": { - "description": "", "type": "string", "enum": [ "node", "cpu", - "socket" + "socket", + "gpu" ] }, "timestep": { @@ -40,12 +39,11 @@ } }, "series": { - "description": "", "type": "array", "items": { "type": "object", "properties": { - "node_id": { + "hostname": { "type": "string" }, "id": { @@ -86,7 +84,7 @@ } }, "required": [ - "node_id", + "hostname", "data" ] }