From 941d47d800b86286c1335de9f0d693fa1d348721 Mon Sep 17 00:00:00 2001 From: Jonas Lindemann Date: Tue, 23 May 2023 16:11:14 +0200 Subject: [PATCH 1/2] Smaller fixed --- etc/gfxlauncher.conf | 5 +++++ gfxlaunch.py | 10 +++++----- gfxusage.py | 7 ------- lhpcdt/launcher.py | 1 + lhpcdt/scripts.py | 14 +++++++++----- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/etc/gfxlauncher.conf b/etc/gfxlauncher.conf index 1968c65..e7df05c 100644 --- a/etc/gfxlauncher.conf +++ b/etc/gfxlauncher.conf @@ -37,6 +37,11 @@ group_cpu = lu,lu32 group_gpu = gpu,gpu2,gpuk20,gpua100 group_win = win group_all = lvis,lvis2,lu,lu32,gpu,gpu2,gpuk20,gpua100 +group_graphics = lvis + +options_ondemand_exclusive = false +options_ondemand_ntasks_per_node = 4 +options_graphics_exclusive = true use_sacctmgr = yes diff --git a/gfxlaunch.py b/gfxlaunch.py index 3c2baeb..70e265f 100755 --- a/gfxlaunch.py +++ b/gfxlaunch.py @@ -244,12 +244,12 @@ def create_light_palette(): app = QtWidgets.QApplication(sys.argv) - if dark_mode: - palette = create_dark_palette() - else: - palette = create_light_palette() + #if dark_mode: + # palette = create_dark_palette() + #else: + # palette = create_light_palette() - app.setPalette(palette) + #app.setPalette(palette) # Show splash diff --git a/gfxusage.py b/gfxusage.py index bf8ca30..7ecd517 100755 --- a/gfxusage.py +++ b/gfxusage.py @@ -132,13 +132,6 @@ def create_light_palette(): app = QtWidgets.QApplication(sys.argv) - if dark_mode: - palette = create_dark_palette() - else: - palette = create_light_palette() - - app.setPalette(palette) - # Show user interface form = monitor.SessionWindow() diff --git a/lhpcdt/launcher.py b/lhpcdt/launcher.py index abd89b4..2e1ac8c 100644 --- a/lhpcdt/launcher.py +++ b/lhpcdt/launcher.py @@ -864,6 +864,7 @@ def on_submit_finished(self): if self.active_connection is not None: self.active_connection.terminate() self.active_connection = remote.VGLConnect() + self.active_connection.vgl_path = self.config.vgl_path print("Command line:", self.cmd) self.active_connection.execute(self.job.nodes, self.cmd) diff --git a/lhpcdt/scripts.py b/lhpcdt/scripts.py index 1043aac..5f5dfa7 100644 --- a/lhpcdt/scripts.py +++ b/lhpcdt/scripts.py @@ -17,11 +17,12 @@ def __init__(self, filename=""): def __parse_metadata(self): """Parse run-script for metadata""" - # LDT category = "Post Processing" - # LDT title = "ParaView 5.4.1" - # LDT part = "snic" - # LDT job = "notebook" - # LDT group = "ondemand" + ##LDT category = "Post Processing" + ##LDT title = "ParaView 5.4.1" + ##LDT part = "snic" + ##LDT job = "notebook" + ##LDT group = "ondemand" + ##LDT vgl = "yes" self.__variables = {} @@ -117,6 +118,9 @@ def parse(self, dryrun=False, no_launcher=False): #print("Found:", script) filename = os.path.join(script_dir, script) + if os.path.isdir(filename): + continue + run_script = RunScript(filename) run_script.launcher = self.__launcher From c9ea6d95e9f60c081a78609063f070933837580a Mon Sep 17 00:00:00 2001 From: Jonas Lindemann Date: Tue, 30 May 2023 09:41:04 +0200 Subject: [PATCH 2/2] Added configuration options for group default settings for tasks, memory and exclusive. --- etc/gfxlauncher.conf | 40 +++++++++++++++++------------------- gfxlaunch.py | 4 ++-- lhpcdt/config.py | 39 +++++++++++++++++++++++++++++------ lhpcdt/launcher.py | 9 ++++++++ scripts/paraview_slurm.sh | 1 - tests/run_test_paraview_2.sh | 1 + 6 files changed, 64 insertions(+), 30 deletions(-) delete mode 100755 scripts/paraview_slurm.sh create mode 100755 tests/run_test_paraview_2.sh diff --git a/etc/gfxlauncher.conf b/etc/gfxlauncher.conf index e7df05c..0fa558d 100644 --- a/etc/gfxlauncher.conf +++ b/etc/gfxlauncher.conf @@ -1,10 +1,13 @@ [general] script_dir = /sw/pkg/ondemand-dt/run install_dir = /sw/pkg/gfxlauncher -help_url = "https://lunarc-documentation.readthedocs.io/en/latest/gfxlauncher/" +help_url = "https://lunarc-documentation.readthedocs.io/en/latest/getting_started/gfxlauncher/" browser_command = firefox [slurm] +default_part = gpua40 +default_account = lu-test + feature_mem96gb = "96 GB Memory node" feature_mem64gb = "64 GB Memory node" feature_mem128gb = "128 GB Memory node" @@ -20,38 +23,32 @@ feature_kepler = "2 x NVIDIA K80 GPU" feature_ampere = "2 x NVIDIA A100 GPU" feature_ignore = "rack-,rack_,bc,haswell,cascade,enc,jobtmp,skylake,ampere,kepler,sandy" -part_lu = "Aurora CPU" -part_lu32 = "Aurora CPU (32c)" -part_gpu = "Aurora GPU (K80)" -part_gpu2 = "Aurora GPU (A100)" -part_gpuk20 = "Aurora GPU (K20)" -part_gpua100 = "Aurora GPU (A100)" -part_lvis = "On-demand (K20)" -part_lvis2 = "On-demand (A40)" -part_win = "Windows on-demand (V100)" +part_lu48 = "COSMOS CPU (AMD, 48c)" +part_lu32 = "COSMOS CPU (Intel, 32c)" +part_gpua40 = "On-Demand Shared (A40)" +part_gpua100 = "On-Demand Shared (A100)" part_ignore = "lunarc,hep" -group_ondemand = lvis,lvis2 +group_ondemand = gpua40 group_metashape184 = lvis2 -group_cpu = lu,lu32 -group_gpu = gpu,gpu2,gpuk20,gpua100 +group_cpu = lu48 +group_gpu = gpua100,gpua40 group_win = win -group_all = lvis,lvis2,lu,lu32,gpu,gpu2,gpuk20,gpua100 -group_graphics = lvis +group_all = lu48,lu32,gpua100,gpua40 -options_ondemand_exclusive = false -options_ondemand_ntasks_per_node = 4 -options_graphics_exclusive = true +group_ondemand_tasks = 4 +group_ondemand_memory = -1 +group_ondemand_exclusive = no use_sacctmgr = yes [menus] -menu_prefix = "On-Demand - " +menu_prefix = "Applications - " desktop_entry_prefix = "gfx-" [vgl] -vgl_bin = /sw/pkg/rviz/vgl/bin/latest -vgl_path = /sw/pkg/rviz/vgl/bin/latest +vgl_bin = /usr/bin/vglconnect +vgl_path = /usr/bin backend_node = gfx0 vglconnect_template = %s/vglconnect %s %s/%s @@ -62,3 +59,4 @@ jupyterlab_module = Anaconda3 [xfreerdp] xfreerdp_path = /sw/pkg/freerdp/2.0.0-rc4/bin xfreerdp_cmdline = %s /v:%s /u:$USER /d:ad.lunarc /sec:tls /cert-ignore /audio-mode:1 /gfx +gfx-progressive -bitmap-cache -offscreen-cache -glyph-cache +clipboard /size:1280x1024 /dynamic-resolution /t:"LUNARC HPC Desktop Windows 10 (NVIDA V100)" + diff --git a/gfxlaunch.py b/gfxlaunch.py index 70e265f..486416b 100755 --- a/gfxlaunch.py +++ b/gfxlaunch.py @@ -33,7 +33,7 @@ under certain conditions; see LICENSE for details. """ gfxlaunch_copyright_short = """LUNARC HPC Desktop On-Demand - %s""" -gfxlaunch_version = "0.9.4" +gfxlaunch_version = "0.9.5" # --- Fix search path for tool @@ -230,7 +230,7 @@ def create_light_palette(): # Redirect standard output - redirect = True + redirect = False # Create Queue and redirect sys.stdout to this queue diff --git a/lhpcdt/config.py b/lhpcdt/config.py index ef167bf..f435897 100644 --- a/lhpcdt/config.py +++ b/lhpcdt/config.py @@ -134,6 +134,10 @@ def _default_props(self): self.conda_source_env = "" self.conda_use_env = "" + self.part_groups = {} + self.part_groups_defaults = {} + + def print_config(self): """Print configuration""" @@ -355,18 +359,41 @@ def parse_config_file(self): # Check for partition groups self.part_groups = {} + self.part_groups_defaults = {} try: slurm_options = config.options("slurm") for option in slurm_options: if option.find("group_") != -1: parts = self._config_get(config, "slurm", option) - group = option.split("_")[1].strip() - partitions = parts.split(",") - self.part_groups[group] = [] - for part in partitions: - self.part_groups[group].append(part.strip()) - + if len(option.split("_"))==2: + group = option.split("_")[1].strip() + partitions = parts.split(",") + self.part_groups[group] = [] + for part in partitions: + self.part_groups[group].append(part.strip()) + elif len(option.split("_"))==3: + group = option.split("_")[1].strip() + directive = option.split("_")[2].split(" ")[0].strip() + + tasks = 1 + memory = -1 + exclusive = False + + if not group in self.part_groups_defaults: + self.part_groups_defaults[group] = {} + + if directive == "tasks": + self.part_groups_defaults[group]["tasks"] = int(parts) + if directive == "memory": + self.part_groups_defaults[group]["memory"] = int(parts) + if directive == "exclusive": + if parts.strip() == "yes": + exclusive = True + else: + exclusive = False + self.part_groups_defaults[group]["exclusive"] = exclusive + except configparser.Error as e: self.print_error(e) return False diff --git a/lhpcdt/launcher.py b/lhpcdt/launcher.py index 2e1ac8c..60b41ec 100644 --- a/lhpcdt/launcher.py +++ b/lhpcdt/launcher.py @@ -270,6 +270,15 @@ def __init__(self, parent=None): if self.silent: self.enable_silent_ui() + if self.group in self.config.part_groups_defaults: + if "tasks" in self.config.part_groups_defaults[self.group]: + self.tasks_per_node = self.config.part_groups_defaults[self.group]["tasks"] + if "memory" in self.config.part_groups_defaults[self.group]: + if self.config.part_groups_defaults[self.group]["memory"]>0: + self.memory = self.config.part_groups_defaults[self.group]["memory"] + if "exclusive" in self.config.part_groups_defaults[self.group]: + self.exclusive = self.config.part_groups_defaults[self.group]["exclusive"] + # Update controls to reflect parameters self.update_controls() diff --git a/scripts/paraview_slurm.sh b/scripts/paraview_slurm.sh deleted file mode 100755 index 1b5a553..0000000 --- a/scripts/paraview_slurm.sh +++ /dev/null @@ -1 +0,0 @@ -gfxlaunch --vgl --vglrun --title "ParaView" --partition erik --account erik-test --exclusive --cmd /sw/pkg/paraview/5.4.1/bin/paraview --simplified \ No newline at end of file diff --git a/tests/run_test_paraview_2.sh b/tests/run_test_paraview_2.sh new file mode 100755 index 0000000..29bcb63 --- /dev/null +++ b/tests/run_test_paraview_2.sh @@ -0,0 +1 @@ +../gfxlaunch --vgl --group ondemand --title "ParaView 5.11.1" --cmd /sw/pkg/ondemand-dt/run/paraview-5.11.1.sh