diff --git a/web/frontend/src/Job.root.svelte b/web/frontend/src/Job.root.svelte index 93c58733..83697267 100644 --- a/web/frontend/src/Job.root.svelte +++ b/web/frontend/src/Job.root.svelte @@ -93,7 +93,9 @@ startFetching( job, [...toFetch], - job.numNodes > 2 ? ["node"] : ["node", "core"] + job.numNodes > 2 + ? ["node"] + : ["node", "socket", "core"] ); } else { // Accels and not on node scope @@ -102,7 +104,7 @@ [...toFetch], job.numNodes > 2 ? ["node", "accelerator"] - : ["node", "accelerator", "core"] + : ["node", "accelerator", "socket", "core"] ); } @@ -390,8 +392,6 @@ bind:this={statsTable} job={$initq.data.job} jobMetrics={$jobMetrics.data.jobMetrics} - accMetrics={accMetrics} - accNodeOnly={accNodeOnly} /> {/key} {/if} diff --git a/web/frontend/src/StatsTable.svelte b/web/frontend/src/StatsTable.svelte index e85e8352..e1d0c022 100644 --- a/web/frontend/src/StatsTable.svelte +++ b/web/frontend/src/StatsTable.svelte @@ -7,8 +7,6 @@ export let job export let jobMetrics - export let accMetrics - export let accNodeOnly const allMetrics = [...new Set(jobMetrics.map(m => m.name))].sort(), scopesForMetric = (metric) => jobMetrics @@ -23,17 +21,23 @@ || getContext('cc-config')['job_view_nodestats_selectedMetrics'] for (let metric of allMetrics) { - // Not Exclusive or Single Node: Get maxScope() - // No Accelerators in Job and not Acc-Metric: Use 'core' - // Accelerator Metric available on accelerator scope: Use 'accelerator' - // Accelerator Metric only on node scope: Fallback to 'node' - selectedScopes[metric] = (job.exclusive != 1 || job.numNodes == 1) ? - (job.numAccs != 0 && accMetrics.includes(metric)) ? - accNodeOnly ? - 'node' - : 'accelerator' - : 'core' - : maxScope(scopesForMetric(metric)) + // Not Exclusive or Multi-Node: get maxScope directly (mostly: node) + // -> Else: Load smallest available granularity as default as per availability + const availableScopes = scopesForMetric(metric) + if (job.exclusive != 1 || job.numNodes == 1) { + if (availableScopes.includes('accelerator')) { + selectedScopes[metric] = 'accelerator' + } else if (availableScopes.includes('core')) { + selectedScopes[metric] = 'core' + } else if (availableScopes.includes('socket')) { + selectedScopes[metric] = 'socket' + } else { + selectedScopes[metric] = 'node' + } + } else { + selectedScopes[metric] = maxScope(availableScopes) + } + sorting[metric] = { min: { dir: 'up', active: false }, avg: { dir: 'up', active: false }, @@ -84,8 +88,7 @@ {metric}