{ from = new Date(Date.now() - 5 * 60 * 1000); to = new Date(Date.now()); clusterFrom = new Date(Date.now() - (8 * 60 * 60 * 1000)) pagingState = { page:1, itemsPerPage: 10 }; 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 || $topJobsQuery.fetching} {:else if $statusQuery.error || $statesTimed.error || $topJobsQuery.error} {#if $statusQuery.error} Error Requesting Status Data: {$statusQuery.error.message} {/if} {#if $statesTimed.error} Error Requesting Node Scheduler States: {$statesTimed.error.message} {/if} {#if $topJobsQuery.error} Error Requesting Jobs By Project: {$topJobsQuery.error.message} {/if} {:else} Cluster "{presetCluster.charAt(0).toUpperCase() + presetCluster.slice(1)}" {[...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
{#if topJobsQuery?.data?.jobsStatistics?.length > 0}

Top Projects: Jobs

tp['totalJobs'], )} entities={$topJobsQuery.data.jobsStatistics.map((tp) => scrambleNames ? scramble(tp.id) : tp.id)} />
{#each $topJobsQuery.data.jobsStatistics as tp, i} {/each}
Project Jobs
{scrambleNames ? scramble(tp.id) : tp.id} {tp['totalJobs']}
{:else} Cannot render job status: No state data returned for Pie Chart {/if}
{#key $statusQuery?.data?.jobsMetricStats} {/key}
{#key $statesTimed?.data?.nodeStates} {/key}
{#key $statesTimed?.data?.healthStates} {/key}
{/if}