{ from = new Date(Date.now() - 5 * 60 * 1000); to = new Date(Date.now()); clusterFrom = new Date(Date.now() - (8 * 60 * 60 * 1000)) if (interval) stackedFrom += Math.floor(interval / 1000); else stackedFrom += 1 // Workaround: TimeSelection not linked, just trigger new data on manual refresh }} /> {#if $statusQuery.fetching || $statesTimed.fetching} {:else if $statusQuery.error || $statesTimed.error} {#if $statusQuery.error} Error Requesting Status Data: {$statusQuery.error.message} {/if} {#if $statesTimed.error} Error Requesting Node Scheduler States: {$statesTimed.error.message} {/if} {:else}

Cluster {presetCluster.charAt(0).toUpperCase() + presetCluster.slice(1)}

CPU(s)

{[...clusterInfo?.processorTypes].join(', ')}

{clusterInfo?.runningJobs}
Running Jobs
{clusterInfo?.activeUsers}
Active Users
{clusterInfo?.allocatedNodes}
Active Nodes
{clusterInfo?.flopRate} {clusterInfo?.flopRateUnit}
Total Flop Rate
{clusterInfo?.memBwRate} {clusterInfo?.memBwRateUnit}
Total Memory Bandwidth
{#if clusterInfo?.totalAccs !== 0} {clusterInfo?.gpuPwr} {clusterInfo?.gpuPwrUnit}
Total GPU Power
{:else} {clusterInfo?.cpuPwr} {clusterInfo?.cpuPwrUnit}
Total CPU Power
{/if}
Active Cores {formatNumber(clusterInfo?.allocatedCores)} {formatNumber(clusterInfo?.idleCores)} Idle Cores {#if clusterInfo?.totalAccs !== 0} Active GPU {formatNumber(clusterInfo?.allocatedAccs)} {formatNumber(clusterInfo?.idleAccs)} Idle GPU {/if}
{#key $statusQuery?.data?.nodeMetrics} {/key}
{#if refinedStateData.length > 0}
{#key refinedStateData} sd.count, )} entities={refinedStateData.map( (sd) => sd.state, )} fixColors={refinedStateData.map( (sd) => colors['nodeStates'][sd.state], )} /> {/key}
{#key refinedStateData} {#each refinedStateData as sd, i} {/each}
State Count
{sd.state.charAt(0).toUpperCase() + sd.state.slice(1)} {sd.count}
{/key} {:else} Cannot render state status: No state data returned for Pie Chart {/if}
{#key $statesTimed?.data?.nodeStatesTimed} {/key}
{/if}