Loading src/components/simulations/details/gauges.tsx +6 −6 Original line number Diff line number Diff line Loading @@ -77,18 +77,18 @@ export function SimulationGauges({ </div> <div className="flex flex-col"> <GaugeWrapper> <GraphHeader>P Flops</GraphHeader> <GraphHeader>Performance</GraphHeader> <Gauge minValue={0} maxValue={2000} value={statistics?.p_flops} value={statistics?.p_flops ?? 0} labels={{ tickLabels: { type: "outer", ticks: [{ value: 500 }, { value: 1000 }, { value: 1500 }], }, valueLabel: { formatTextValue: (value) => value, formatTextValue: (value) => value + " PFlop/s", }, }} arc={{ Loading @@ -98,18 +98,18 @@ export function SimulationGauges({ /> </GaugeWrapper> <GaugeWrapper> <GraphHeader>G Flops</GraphHeader> <GraphHeader>Efficency</GraphHeader> <Gauge minValue={0} maxValue={2000} value={statistics?.g_flops_w} value={statistics?.g_flops_w ?? 0} labels={{ tickLabels: { type: "outer", ticks: [{ value: 500 }, { value: 1000 }, { value: 1500 }], }, valueLabel: { formatTextValue: (value) => value, formatTextValue: (value) => value + " GFlops/watts", }, }} arc={{ Loading src/routes/simulations.$simulationId.summary.tsx +18 −11 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import Box from "../components/shared/simulation/box"; import { SimulationGauges } from "../components/simulations/details/gauges"; import { isEqual, subSeconds } from "date-fns"; import { useReplayCooling, useReplayScheduler } from "../util/hooks/useReplay"; import { CoolingCDU } from "../models/CoolingCDU.model"; export const Route = createFileRoute("/simulations/$simulationId/summary")({ validateSearch: ( Loading Loading @@ -60,19 +61,25 @@ function SimulationSummary() { return <LoadingSpinner />; } let currentMetrics = metrics.data[currentTimestamp]; let currentMetrics: CoolingCDU[] | undefined = undefined; if (Object.values(metrics.data).length > 0 && !!metrics.data[0]) { currentMetrics = metrics.data[currentTimestamp]; if (!currentMetrics) { currentMetrics = Object.values(metrics.data)[0]; } } let currentStatistics = schedulerStatistics.find((timestep) => isEqual( let currentStatistics = schedulerStatistics.find((timestep) => { if (timestep) { return isEqual( timestep.timestamp, isEqual(currentTimestamp, end) ? subSeconds(end, 1).toISOString() : currentTimestamp, ), ); } return false; }); return ( <div className="flex flex-1 flex-col gap-4 overflow-y-auto px-8 py-8"> Loading Loading
src/components/simulations/details/gauges.tsx +6 −6 Original line number Diff line number Diff line Loading @@ -77,18 +77,18 @@ export function SimulationGauges({ </div> <div className="flex flex-col"> <GaugeWrapper> <GraphHeader>P Flops</GraphHeader> <GraphHeader>Performance</GraphHeader> <Gauge minValue={0} maxValue={2000} value={statistics?.p_flops} value={statistics?.p_flops ?? 0} labels={{ tickLabels: { type: "outer", ticks: [{ value: 500 }, { value: 1000 }, { value: 1500 }], }, valueLabel: { formatTextValue: (value) => value, formatTextValue: (value) => value + " PFlop/s", }, }} arc={{ Loading @@ -98,18 +98,18 @@ export function SimulationGauges({ /> </GaugeWrapper> <GaugeWrapper> <GraphHeader>G Flops</GraphHeader> <GraphHeader>Efficency</GraphHeader> <Gauge minValue={0} maxValue={2000} value={statistics?.g_flops_w} value={statistics?.g_flops_w ?? 0} labels={{ tickLabels: { type: "outer", ticks: [{ value: 500 }, { value: 1000 }, { value: 1500 }], }, valueLabel: { formatTextValue: (value) => value, formatTextValue: (value) => value + " GFlops/watts", }, }} arc={{ Loading
src/routes/simulations.$simulationId.summary.tsx +18 −11 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import Box from "../components/shared/simulation/box"; import { SimulationGauges } from "../components/simulations/details/gauges"; import { isEqual, subSeconds } from "date-fns"; import { useReplayCooling, useReplayScheduler } from "../util/hooks/useReplay"; import { CoolingCDU } from "../models/CoolingCDU.model"; export const Route = createFileRoute("/simulations/$simulationId/summary")({ validateSearch: ( Loading Loading @@ -60,19 +61,25 @@ function SimulationSummary() { return <LoadingSpinner />; } let currentMetrics = metrics.data[currentTimestamp]; let currentMetrics: CoolingCDU[] | undefined = undefined; if (Object.values(metrics.data).length > 0 && !!metrics.data[0]) { currentMetrics = metrics.data[currentTimestamp]; if (!currentMetrics) { currentMetrics = Object.values(metrics.data)[0]; } } let currentStatistics = schedulerStatistics.find((timestep) => isEqual( let currentStatistics = schedulerStatistics.find((timestep) => { if (timestep) { return isEqual( timestep.timestamp, isEqual(currentTimestamp, end) ? subSeconds(end, 1).toISOString() : currentTimestamp, ), ); } return false; }); return ( <div className="flex flex-1 flex-col gap-4 overflow-y-auto px-8 py-8"> Loading