Commit cff0f705 authored by Duggan, John's avatar Duggan, John
Browse files

Add compute resource selection

parent 94855fe9
Loading
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ from typing import Tuple
from nova.galaxy import Dataset, Parameters, Tool
from nova.galaxy.interfaces import BasicTool

from ips_fastran_gui.app.models.main_model import MainModel
from ips_fastran_gui.app.models.main_model import ComputeOptions, MainModel

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
@@ -35,8 +35,9 @@ class IPSFastranTool(BasicTool):
        tool_params.add_input(name="__job_resource|__job_resource__select", value="yes")
        tool_params.add_input(name="__job_resource|nodes", value=self.model.resource_params.number_of_nodes)
        tool_params.add_input(name="__job_resource|qos", value=self.model.resource_params.partition)
        tool_params.add_input(name="__job_resource|remote_resource_cloud_nersc", value="nersc")
        tool_params.add_input(name="__job_resource|time", value=self.model.resource_params.time_limit)
        if self.model.resource_params.compute_resource == ComputeOptions.perlmutter:
            tool_params.add_input(name="__job_resource|remote_resource_cloud_nersc", value="nersc")
        self.tool = Tool(id="fusion_ips_fastran")

        return self.tool, tool_params
+10 −0
Original line number Diff line number Diff line
"""Module for the main model."""

from enum import Enum

from pydantic import BaseModel, Field


@@ -18,9 +20,17 @@ class Config(BaseModel):
    file_contents: str = Field(default="")


class ComputeOptions(str, Enum):
    """Compute resource options."""

    orc = "ORNL ORC"
    perlmutter = "NERSC Perlmutter"


class ResourceParameters(BaseModel):
    """Contains resource parameters for running the job."""

    compute_resource: ComputeOptions = Field(default=ComputeOptions.orc, title="Compute Resource")
    partition: str = Field(default="debug", title="Partition")
    number_of_nodes: int = Field(default=1, ge=1, le=2, title="Number of Nodes")
    time_limit: int = Field(default=10, ge=1, le=10080, title="Time Limit (minutes)")
+2 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ class ResourcesTab:

    def create_ui(self) -> None:
        # InputField(v_model="resource_params.partition")
        with GridLayout(columns=2, classes="mb-2", gap="0.5em"):
        with GridLayout(columns=3, classes="mb-2", gap="0.5em"):
            InputField(v_model="resource_params.compute_resource", type="select")
            InputField(v_model="resource_params.number_of_nodes", type="number")
            InputField(v_model="resource_params.time_limit", type="number")