Loading src/components/simulations/raps.form.tsx +33 −1 Original line number Diff line number Diff line import { ChangeEvent } from "react"; import { JobsMode } from "../../models/Scheduler.model"; import { JobsMode, Scheduler } from "../../models/Scheduler.model"; import { SimulationRequest } from "../../models/SimulationRequest.model"; import { Checkbox } from "../shared/checkbox"; import { Select } from "../shared/dropdown"; Loading Loading @@ -80,6 +80,38 @@ export function RAPSForm(props: { /> </> )} <Select label="Schedule Policy" choices={[ //{ label: "Custom", value: "custom" }, { label: "fcfs", value: "fcfs" }, { label: "sjf", value: "sjf" }, { label: "prq", value: "prq" }, ]} value={props.form.scheduler.schedule_policy} onChange={(e) => { props.setForm({ ...props.form, scheduler: { ...props.form.scheduler, schedule_policy: e.target.value as Scheduler['schedule_policy'], } }); }} /> <Checkbox label="Reschedule" checked={props.form.scheduler.reschedule} onChange={(e: ChangeEvent<HTMLInputElement>) => { props.setForm({ ...props.form, scheduler: { ...props.form.scheduler, reschedule: e.target.checked, }, }); }} /> </> ); } src/models/Scheduler.model.ts +7 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ export interface IScheduler { enabled: boolean; down_nodes: string[]; jobs_mode: JobsMode; schedule_policy: 'fcfs'|'sjf'|'prq' reschedule: boolean jobs: CustomJob[]; seed: number | null; num_jobs: number | null; Loading @@ -16,14 +18,18 @@ export class Scheduler implements IScheduler { down_nodes: string[]; jobs: CustomJob[]; jobs_mode: JobsMode; num_jobs: number | null; schedule_policy: 'fcfs'|'sjf'|'prq' reschedule: boolean seed: number | null; num_jobs: number | null; constructor() { this.down_nodes = []; this.enabled = true; this.jobs = []; this.jobs_mode = "replay"; this.schedule_policy = 'fcfs'; this.reschedule = false; this.num_jobs = null; this.seed = null; } Loading src/models/Simulation.model.ts +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ export interface Simulation { id: string; user: string; state: "running" | "success" | "fail"; error_messages: string|null; start: string; end: string; execution_start: string; Loading src/models/SimulationStatistic.model.ts +5 −2 Original line number Diff line number Diff line Loading @@ -8,10 +8,13 @@ export interface SimulationStatistic { throughput: number; average_power: number; average_loss: number; min_loss: number; max_loss: number; system_power_efficiency: number; total_energy_consumed: number; carbon_emissions: number; total_cost: number; p_flops: number; g_flops_w: number; p_flops: number|null; g_flops_w: number|null; system_util: number|null; } src/routes/simulations.$simulationId.configuration.tsx +12 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,18 @@ function SimulationConfiguration() { </Box> </> ) : null} <Box> <Box.Header>Schedule Policy</Box.Header> <Box.Value> {data.config.scheduler.schedule_policy} </Box.Value> </Box> <Box> <Box.Header>Reschedule</Box.Header> <Box.Value> {`${data.config.scheduler.reschedule}`.toUpperCase()} </Box.Value> </Box> </Section> <Section header="Cooling Configuration"> <Box> Loading Loading
src/components/simulations/raps.form.tsx +33 −1 Original line number Diff line number Diff line import { ChangeEvent } from "react"; import { JobsMode } from "../../models/Scheduler.model"; import { JobsMode, Scheduler } from "../../models/Scheduler.model"; import { SimulationRequest } from "../../models/SimulationRequest.model"; import { Checkbox } from "../shared/checkbox"; import { Select } from "../shared/dropdown"; Loading Loading @@ -80,6 +80,38 @@ export function RAPSForm(props: { /> </> )} <Select label="Schedule Policy" choices={[ //{ label: "Custom", value: "custom" }, { label: "fcfs", value: "fcfs" }, { label: "sjf", value: "sjf" }, { label: "prq", value: "prq" }, ]} value={props.form.scheduler.schedule_policy} onChange={(e) => { props.setForm({ ...props.form, scheduler: { ...props.form.scheduler, schedule_policy: e.target.value as Scheduler['schedule_policy'], } }); }} /> <Checkbox label="Reschedule" checked={props.form.scheduler.reschedule} onChange={(e: ChangeEvent<HTMLInputElement>) => { props.setForm({ ...props.form, scheduler: { ...props.form.scheduler, reschedule: e.target.checked, }, }); }} /> </> ); }
src/models/Scheduler.model.ts +7 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ export interface IScheduler { enabled: boolean; down_nodes: string[]; jobs_mode: JobsMode; schedule_policy: 'fcfs'|'sjf'|'prq' reschedule: boolean jobs: CustomJob[]; seed: number | null; num_jobs: number | null; Loading @@ -16,14 +18,18 @@ export class Scheduler implements IScheduler { down_nodes: string[]; jobs: CustomJob[]; jobs_mode: JobsMode; num_jobs: number | null; schedule_policy: 'fcfs'|'sjf'|'prq' reschedule: boolean seed: number | null; num_jobs: number | null; constructor() { this.down_nodes = []; this.enabled = true; this.jobs = []; this.jobs_mode = "replay"; this.schedule_policy = 'fcfs'; this.reschedule = false; this.num_jobs = null; this.seed = null; } Loading
src/models/Simulation.model.ts +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ export interface Simulation { id: string; user: string; state: "running" | "success" | "fail"; error_messages: string|null; start: string; end: string; execution_start: string; Loading
src/models/SimulationStatistic.model.ts +5 −2 Original line number Diff line number Diff line Loading @@ -8,10 +8,13 @@ export interface SimulationStatistic { throughput: number; average_power: number; average_loss: number; min_loss: number; max_loss: number; system_power_efficiency: number; total_energy_consumed: number; carbon_emissions: number; total_cost: number; p_flops: number; g_flops_w: number; p_flops: number|null; g_flops_w: number|null; system_util: number|null; }
src/routes/simulations.$simulationId.configuration.tsx +12 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,18 @@ function SimulationConfiguration() { </Box> </> ) : null} <Box> <Box.Header>Schedule Policy</Box.Header> <Box.Value> {data.config.scheduler.schedule_policy} </Box.Value> </Box> <Box> <Box.Header>Reschedule</Box.Header> <Box.Value> {`${data.config.scheduler.reschedule}`.toUpperCase()} </Box.Value> </Box> </Section> <Section header="Cooling Configuration"> <Box> Loading