{ 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(', ')}



{#if clusterInfo?.totalAccs !== 0} {/if}
{clusterInfo?.runningJobs} Running Jobs {clusterInfo?.activeUsers} Active Users
Flop Rate (Any) Memory BW Rate
{clusterInfo?.flopRate} {clusterInfo?.flopRateUnit} {clusterInfo?.memBwRate} {clusterInfo?.memBwRateUnit}
Allocated Nodes
{clusterInfo?.allocatedNodes} / {clusterInfo?.totalNodes} Nodes
Allocated Cores
{formatNumber(clusterInfo?.allocatedCores)} / {formatNumber(clusterInfo?.totalCores)} Cores
Allocated Accelerators
{clusterInfo?.allocatedAccs} / {clusterInfo?.totalAccs} Accelerators
{#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}