Add energy footprint

This commit is contained in:
Jan Eitzinger 2024-07-05 16:16:01 +02:00
parent ac9bba8b5b
commit c6ede67589
Signed by: moebiusband
GPG Key ID: 2574BA29B90D6DD5
4 changed files with 2794 additions and 501 deletions

View File

@ -40,7 +40,6 @@ type JobLink {
type Cluster { type Cluster {
name: String! name: String!
partitions: [String!]! # Slurm partitions partitions: [String!]! # Slurm partitions
metricConfig: [MetricConfig!]!
subClusters: [SubCluster!]! # Hardware partitions/subclusters subClusters: [SubCluster!]! # Hardware partitions/subclusters
} }
@ -56,6 +55,8 @@ type SubCluster {
flopRateSimd: MetricValue! flopRateSimd: MetricValue!
memoryBandwidth: MetricValue! memoryBandwidth: MetricValue!
topology: Topology! topology: Topology!
metricConfig: [MetricConfig!]!
footprint: [String!]!
} }
type MetricValue { type MetricValue {

File diff suppressed because it is too large Load Diff

View File

@ -252,7 +252,8 @@
"peak": 500, "peak": 500,
"normal": 250, "normal": 250,
"caution": 100, "caution": 100,
"alert": 50 "alert": 50,
"energy": true
}, },
{ {
"name": "mem_power", "name": "mem_power",
@ -265,7 +266,8 @@
"peak": 100, "peak": 100,
"normal": 50, "normal": 50,
"caution": 20, "caution": 20,
"alert": 10 "alert": 10,
"energy": true
}, },
{ {
"name": "ipc", "name": "ipc",

View File

@ -16,31 +16,33 @@ import (
// Common subset of Job and JobMeta. Use one of those, not this type directly. // Common subset of Job and JobMeta. Use one of those, not this type directly.
type BaseJob struct { type BaseJob struct {
Cluster string `json:"cluster" db:"cluster" example:"fritz"` Cluster string `json:"cluster" db:"cluster" example:"fritz"`
SubCluster string `json:"subCluster" db:"subcluster" example:"main"` SubCluster string `json:"subCluster" db:"subcluster" example:"main"`
Partition string `json:"partition,omitempty" db:"partition" example:"main"` Partition string `json:"partition,omitempty" db:"partition" example:"main"`
Project string `json:"project" db:"project" example:"abcd200"` Project string `json:"project" db:"project" example:"abcd200"`
User string `json:"user" db:"user" example:"abcd100h"` User string `json:"user" db:"user" example:"abcd100h"`
State JobState `json:"jobState" db:"job_state" example:"completed" enums:"completed,failed,cancelled,stopped,timeout,out_of_memory"` State JobState `json:"jobState" db:"job_state" example:"completed" enums:"completed,failed,cancelled,stopped,timeout,out_of_memory"`
Tags []*Tag `json:"tags,omitempty"` Tags []*Tag `json:"tags,omitempty"`
RawFootprint []byte `json:"-" db:"footprint"` RawEnergyFootprint []byte `json:"-" db:"energy_footprint"`
RawMetaData []byte `json:"-" db:"meta_data"` RawFootprint []byte `json:"-" db:"footprint"`
RawResources []byte `json:"-" db:"resources"` RawMetaData []byte `json:"-" db:"meta_data"`
Resources []*Resource `json:"resources"` RawResources []byte `json:"-" db:"resources"`
Footprint map[string]float64 `json:"footPrint"` Resources []*Resource `json:"resources"`
MetaData map[string]string `json:"metaData"` EnergyFootprint map[string]float64 `json:"energyFootprint"`
ConcurrentJobs JobLinkResultList `json:"concurrentJobs"` Footprint map[string]float64 `json:"footprint"`
Energy float64 `json:"energy"` MetaData map[string]string `json:"metaData"`
ArrayJobId int64 `json:"arrayJobId,omitempty" db:"array_job_id" example:"123000"` ConcurrentJobs JobLinkResultList `json:"concurrentJobs"`
Walltime int64 `json:"walltime,omitempty" db:"walltime" example:"86400" minimum:"1"` Energy float64 `json:"energy"`
JobID int64 `json:"jobId" db:"job_id" example:"123000"` ArrayJobId int64 `json:"arrayJobId,omitempty" db:"array_job_id" example:"123000"`
Duration int32 `json:"duration" db:"duration" example:"43200" minimum:"1"` Walltime int64 `json:"walltime,omitempty" db:"walltime" example:"86400" minimum:"1"`
SMT int32 `json:"smt,omitempty" db:"smt" example:"4"` JobID int64 `json:"jobId" db:"job_id" example:"123000"`
MonitoringStatus int32 `json:"monitoringStatus,omitempty" db:"monitoring_status" example:"1" minimum:"0" maximum:"3"` Duration int32 `json:"duration" db:"duration" example:"43200" minimum:"1"`
Exclusive int32 `json:"exclusive" db:"exclusive" example:"1" minimum:"0" maximum:"2"` SMT int32 `json:"smt,omitempty" db:"smt" example:"4"`
NumAcc int32 `json:"numAcc,omitempty" db:"num_acc" example:"2" minimum:"1"` MonitoringStatus int32 `json:"monitoringStatus,omitempty" db:"monitoring_status" example:"1" minimum:"0" maximum:"3"`
NumHWThreads int32 `json:"numHwthreads,omitempty" db:"num_hwthreads" example:"20" minimum:"1"` Exclusive int32 `json:"exclusive" db:"exclusive" example:"1" minimum:"0" maximum:"2"`
NumNodes int32 `json:"numNodes" db:"num_nodes" example:"2" minimum:"1"` NumAcc int32 `json:"numAcc,omitempty" db:"num_acc" example:"2" minimum:"1"`
NumHWThreads int32 `json:"numHwthreads,omitempty" db:"num_hwthreads" example:"20" minimum:"1"`
NumNodes int32 `json:"numNodes" db:"num_nodes" example:"2" minimum:"1"`
} }
// Job struct type // Job struct type