From 8d0ca26896bf128a404b7c43eafe7cbc20656cd3 Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Thu, 16 May 2024 10:40:58 -0400 Subject: [PATCH 1/7] Updates 'any' node type + 'n' gpus where n != 0 behavior --- apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb | 2 +- ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb index 536ad0b..439762a 100644 --- a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb @@ -30,7 +30,7 @@ slurm_args = case node_type # 'any' case handled by scheduler, this is just a quick short circuit when "any" - base_slurm_args + any_node + base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}"] when "any-40core" base_slurm_args + p18_node diff --git a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb index 536ad0b..439762a 100644 --- a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb +++ b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb @@ -30,7 +30,7 @@ slurm_args = case node_type # 'any' case handled by scheduler, this is just a quick short circuit when "any" - base_slurm_args + any_node + base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}"] when "any-40core" base_slurm_args + p18_node From 58258208dcfb34bb50be50ba9a4a1c155868ef37 Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Thu, 16 May 2024 11:02:36 -0400 Subject: [PATCH 2/7] Updates max-cores for any node-type --- apps.awesim.org/apps/bc_desktop/pitzer.yml.erb | 3 +-- ondemand.osc.edu/apps/bc_desktop/pitzer.yml.erb | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/apps.awesim.org/apps/bc_desktop/pitzer.yml.erb b/apps.awesim.org/apps/bc_desktop/pitzer.yml.erb index f1d2c4d..e3176e3 100644 --- a/apps.awesim.org/apps/bc_desktop/pitzer.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/pitzer.yml.erb @@ -89,8 +89,7 @@ attributes: - [ "any", "any", data-min-cores: 1, - data-max-cores: 80, - data-set-gpus: 0, + data-max-cores: 48, ] - [ "40 core", "any-40core", diff --git a/ondemand.osc.edu/apps/bc_desktop/pitzer.yml.erb b/ondemand.osc.edu/apps/bc_desktop/pitzer.yml.erb index f1d2c4d..e3176e3 100644 --- a/ondemand.osc.edu/apps/bc_desktop/pitzer.yml.erb +++ b/ondemand.osc.edu/apps/bc_desktop/pitzer.yml.erb @@ -89,8 +89,7 @@ attributes: - [ "any", "any", data-min-cores: 1, - data-max-cores: 80, - data-set-gpus: 0, + data-max-cores: 48, ] - [ "40 core", "any-40core", From 8c2115499403757901f76e566140959e596229cd Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Thu, 16 May 2024 13:03:24 -0400 Subject: [PATCH 3/7] GPUs can still be 0 --- .../apps/bc_desktop/submit/slurm.yml.erb | 130 +++++++++--------- .../apps/bc_desktop/submit/slurm.yml.erb | 22 +-- 2 files changed, 78 insertions(+), 74 deletions(-) diff --git a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb index 439762a..e1e4c9b 100644 --- a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb @@ -1,81 +1,83 @@ <%- - base_slurm_args = ["--nodes", "#{bc_num_slots}"] - base_slurm_args.concat ["--licenses", "#{licenses}"] unless licenses.empty? +base_slurm_args = ["--nodes", "#{bc_num_slots}"] +base_slurm_args.concat ["--licenses", "#{licenses}"] unless licenses.empty? - def tasks_per_node - [ "--ntasks-per-node", "#{cores}" ] - end - - def any_node - tasks_per_node - end - - def p18_node - return tasks_per_node + [ "--constraint", "40core" ] - end +def tasks_per_node + [ "--ntasks-per-node", "#{cores}" ] +end - def p20_node - return tasks_per_node + [ "--constraint", "48core" ] - end +def any_node + tasks_per_node +end - def gpu_count - if !gpus.nil? && !gpus.empty? && gpus.to_i.positive? - gpus - else - 1 - end - end +def p18_node + return tasks_per_node + [ "--constraint", "40core" ] +end - slurm_args = case node_type - # 'any' case handled by scheduler, this is just a quick short circuit - when "any" - base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}"] +def p20_node + return tasks_per_node + [ "--constraint", "48core" ] +end - when "any-40core" - base_slurm_args + p18_node - when "any-48core" - base_slurm_args + p20_node +def plus_gpus(arr, gpu_arr) + gpu_count.to_i > 0 ? arr + gpu_arr : arr +end - when "gpu-any" - base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}"] - when "gpu-40core" - base_slurm_args + p18_node + ["--gpus-per-node", "#{gpu_count}"] - when "gpu-48core" - base_slurm_args + p20_node + ["--gpus-per-node", "#{gpu_count}"] - when "vis" - base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"] - when "densegpu" - base_slurm_args + p20_node + ["--gpus-per-node", "4"] +def gpu_count + if !gpus.nil? && !gpus.empty? && gpus.to_i >= 0 + gpus + else + 1 + end +end - # using partitions here is easier than specifying memory requests - when "largemem" - partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - when "hugemem" - partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] +slurm_args = case node_type + # 'any' case handled by scheduler, this is just a quick short circuit + when "any" + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "any-40core" + base_slurm_args + p18_node + when "any-48core" + base_slurm_args + p20_node - else - base_slurm_args - end + when "gpu-any" + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-40core" + plus_gpus(base_slug_arms + p18_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-48core" + plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "#{gpu_count}"]) + when "vis" + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) + when "densegpu" + plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) + + # using partitions here is easier than specifying memory requests + when "largemem" + partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + when "hugemem" + partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + else + base_slurm_args + end - image = '/apps/project/ondemand/singularity/mate-rhel8/mate-rhel8.sif' +image = '/apps/project/ondemand/singularity/mate-rhel8/mate-rhel8.sif' -%> --- batch_connect: - before_script: | - # Export the module function if it exists - [[ $(type -t module) == "function" ]] && export -f module +before_script: | + # Export the module function if it exists + [[ $(type -t module) == "function" ]] && export -f module - # MATE acts strange in pitzer-exp and doesn't like /var/run/$(id -u) - export XDG_RUNTIME_DIR="$TMPDIR/xdg_runtime" + # MATE acts strange in pitzer-exp and doesn't like /var/run/$(id -u) + export XDG_RUNTIME_DIR="$TMPDIR/xdg_runtime" - # reset SLURM_EXPORT_ENV so that things like srun & sbatch work out of the box - export SLURM_EXPORT_ENV=ALL + # reset SLURM_EXPORT_ENV so that things like srun & sbatch work out of the box + export SLURM_EXPORT_ENV=ALL script: - accounting_id: "<%= account %>" - native: - <%- slurm_args.each do |arg| %> - - "<%= arg %>" - <%- end %> +accounting_id: "<%= account %>" +native: + <%- slurm_args.each do |arg| %> + - "<%= arg %>" + <%- end %> diff --git a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb index 439762a..a92a7ea 100644 --- a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb +++ b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb @@ -19,8 +19,12 @@ return tasks_per_node + [ "--constraint", "48core" ] end + def plus_gpus(arr, gpu_arr) + gpu_count.to_i > 0 ? arr + gpu_arr : arr + end + def gpu_count - if !gpus.nil? && !gpus.empty? && gpus.to_i.positive? + if !gpus.nil? && !gpus.empty? && gpus.to_i >= 0 gpus else 1 @@ -30,24 +34,23 @@ slurm_args = case node_type # 'any' case handled by scheduler, this is just a quick short circuit when "any" - base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}"] - + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) when "any-40core" base_slurm_args + p18_node when "any-48core" base_slurm_args + p20_node when "gpu-any" - base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}"] + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) when "gpu-40core" - base_slurm_args + p18_node + ["--gpus-per-node", "#{gpu_count}"] + plus_gpus(base_slug_arms + p18_node, ["--gpus-per-node", "#{gpu_count}"]) when "gpu-48core" - base_slurm_args + p20_node + ["--gpus-per-node", "#{gpu_count}"] + plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "#{gpu_count}"]) when "vis" - base_slurm_args + any_node + ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"] + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) when "densegpu" - base_slurm_args + p20_node + ["--gpus-per-node", "4"] - + plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) + # using partitions here is easier than specifying memory requests when "largemem" partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" @@ -55,7 +58,6 @@ when "hugemem" partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" base_slurm_args + tasks_per_node + ["--partition", partition ] - else base_slurm_args end From 5054a766687e606eba33a396d2b1e0668494e23e Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Thu, 16 May 2024 13:07:18 -0400 Subject: [PATCH 4/7] Fixes indentation problems --- .../apps/bc_desktop/submit/slurm.yml.erb | 128 +++++++++--------- .../apps/bc_desktop/submit/slurm.yml.erb | 4 +- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb index e1e4c9b..63769c4 100644 --- a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb @@ -1,83 +1,83 @@ <%- -base_slurm_args = ["--nodes", "#{bc_num_slots}"] -base_slurm_args.concat ["--licenses", "#{licenses}"] unless licenses.empty? + base_slurm_args = ["--nodes", "#{bc_num_slots}"] + base_slurm_args.concat ["--licenses", "#{licenses}"] unless licenses.empty? -def tasks_per_node - [ "--ntasks-per-node", "#{cores}" ] -end + def tasks_per_node + [ "--ntasks-per-node", "#{cores}" ] + end -def any_node - tasks_per_node -end + def any_node + tasks_per_node + end -def p18_node - return tasks_per_node + [ "--constraint", "40core" ] -end + def p18_node + return tasks_per_node + [ "--constraint", "40core" ] + end -def p20_node - return tasks_per_node + [ "--constraint", "48core" ] -end + def p20_node + return tasks_per_node + [ "--constraint", "48core" ] + end -def plus_gpus(arr, gpu_arr) - gpu_count.to_i > 0 ? arr + gpu_arr : arr -end + def plus_gpus(arr, gpu_arr) + gpu_count.to_i > 0 ? arr + gpu_arr : arr + end -def gpu_count - if !gpus.nil? && !gpus.empty? && gpus.to_i >= 0 - gpus - else - 1 + def gpu_count + if !gpus.nil? && !gpus.empty? && gpus.to_i >= 0 + gpus + else + 1 + end end -end -slurm_args = case node_type - # 'any' case handled by scheduler, this is just a quick short circuit - when "any" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) - when "any-40core" - base_slurm_args + p18_node - when "any-48core" - base_slurm_args + p20_node + slurm_args = case node_type + # 'any' case handled by scheduler, this is just a quick short circuit + when "any" + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "any-40core" + base_slurm_args + p18_node + when "any-48core" + base_slurm_args + p20_node - when "gpu-any" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) - when "gpu-40core" - plus_gpus(base_slug_arms + p18_node, ["--gpus-per-node", "#{gpu_count}"]) - when "gpu-48core" - plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "#{gpu_count}"]) - when "vis" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) - when "densegpu" - plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) + when "gpu-any" + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-40core" + plus_gpus(base_slug_arms + p18_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-48core" + plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "#{gpu_count}"]) + when "vis" + plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) + when "densegpu" + plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) - # using partitions here is easier than specifying memory requests - when "largemem" - partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - when "hugemem" - partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - else - base_slurm_args - end + # using partitions here is easier than specifying memory requests + when "largemem" + partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + when "hugemem" + partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + else + base_slurm_args + end -image = '/apps/project/ondemand/singularity/mate-rhel8/mate-rhel8.sif' + image = '/apps/project/ondemand/singularity/mate-rhel8/mate-rhel8.sif' -%> --- batch_connect: -before_script: | - # Export the module function if it exists - [[ $(type -t module) == "function" ]] && export -f module + before_script: | + # Export the module function if it exists + [[ $(type -t module) == "function" ]] && export -f module - # MATE acts strange in pitzer-exp and doesn't like /var/run/$(id -u) - export XDG_RUNTIME_DIR="$TMPDIR/xdg_runtime" + # MATE acts strange in pitzer-exp and doesn't like /var/run/$(id -u) + export XDG_RUNTIME_DIR="$TMPDIR/xdg_runtime" - # reset SLURM_EXPORT_ENV so that things like srun & sbatch work out of the box - export SLURM_EXPORT_ENV=ALL + # reset SLURM_EXPORT_ENV so that things like srun & sbatch work out of the box + export SLURM_EXPORT_ENV=ALL script: -accounting_id: "<%= account %>" -native: - <%- slurm_args.each do |arg| %> - - "<%= arg %>" - <%- end %> + accounting_id: "<%= account %>" + native: + <%- slurm_args.each do |arg| %> + - "<%= arg %>" + <%- end %> diff --git a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb index a92a7ea..228b53b 100644 --- a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb +++ b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb @@ -50,7 +50,7 @@ plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) when "densegpu" plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) - + # using partitions here is easier than specifying memory requests when "largemem" partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" @@ -79,5 +79,5 @@ script: accounting_id: "<%= account %>" native: <%- slurm_args.each do |arg| %> - - "<%= arg %>" + - "<%= arg %>" <%- end %> From aa192afaf2dc058a609e156a1ff403e459747ffe Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Thu, 16 May 2024 13:09:04 -0400 Subject: [PATCH 5/7] Ensures both apps are the same --- apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb index 63769c4..228b53b 100644 --- a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb @@ -50,7 +50,7 @@ plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) when "densegpu" plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) - + # using partitions here is easier than specifying memory requests when "largemem" partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" From d89ef9157edf5a8c3f14628399376b5ae29e30db Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Tue, 21 May 2024 10:17:31 -0400 Subject: [PATCH 6/7] Fixes typos in submit/slurm.yml.erb files --- .../apps/bc_desktop/submit/slurm.yml.erb | 54 +++++++++---------- .../apps/bc_desktop/submit/slurm.yml.erb | 12 ++--- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb index 228b53b..e8b719c 100644 --- a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb @@ -32,35 +32,35 @@ end slurm_args = case node_type - # 'any' case handled by scheduler, this is just a quick short circuit - when "any" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) - when "any-40core" - base_slurm_args + p18_node - when "any-48core" - base_slurm_args + p20_node + # 'any' case handled by scheduler, this is just a quick short circuit + when "any" + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "any-40core" + base_slurm_args + p18_node + when "any-48core" + base_slurm_args + p20_node - when "gpu-any" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) - when "gpu-40core" - plus_gpus(base_slug_arms + p18_node, ["--gpus-per-node", "#{gpu_count}"]) - when "gpu-48core" - plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "#{gpu_count}"]) - when "vis" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) - when "densegpu" - plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) + when "gpu-any" + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-40core" + plus_gpus(base_slurm_args + p18_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-48core" + plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "#{gpu_count}"]) + when "vis" + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) + when "densegpu" + plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "4"]) - # using partitions here is easier than specifying memory requests - when "largemem" - partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - when "hugemem" - partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - else - base_slurm_args - end + # using partitions here is easier than specifying memory requests + when "largemem" + partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + when "hugemem" + partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + else + base_slurm_args + end image = '/apps/project/ondemand/singularity/mate-rhel8/mate-rhel8.sif' -%> diff --git a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb index 228b53b..ef2bca0 100644 --- a/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb +++ b/ondemand.osc.edu/apps/bc_desktop/submit/slurm.yml.erb @@ -34,22 +34,22 @@ slurm_args = case node_type # 'any' case handled by scheduler, this is just a quick short circuit when "any" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) when "any-40core" base_slurm_args + p18_node when "any-48core" base_slurm_args + p20_node when "gpu-any" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}"]) + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) when "gpu-40core" - plus_gpus(base_slug_arms + p18_node, ["--gpus-per-node", "#{gpu_count}"]) + plus_gpus(base_slurm_args + p18_node, ["--gpus-per-node", "#{gpu_count}"]) when "gpu-48core" - plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "#{gpu_count}"]) + plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "#{gpu_count}"]) when "vis" - plus_gpus(base_slug_arms + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) when "densegpu" - plus_gpus(base_slug_arms + p20_node, ["--gpus-per-node", "4"]) + plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "4"]) # using partitions here is easier than specifying memory requests when "largemem" From 2725801a515104d25f3f42d4ae490023d57219ab Mon Sep 17 00:00:00 2001 From: HazelGrant Date: Tue, 21 May 2024 10:36:48 -0400 Subject: [PATCH 7/7] Fixes failing test --- .../apps/bc_desktop/submit/slurm.yml.erb | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb index e8b719c..ef2bca0 100644 --- a/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb +++ b/apps.awesim.org/apps/bc_desktop/submit/slurm.yml.erb @@ -32,35 +32,35 @@ end slurm_args = case node_type - # 'any' case handled by scheduler, this is just a quick short circuit - when "any" - plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) - when "any-40core" - base_slurm_args + p18_node - when "any-48core" - base_slurm_args + p20_node + # 'any' case handled by scheduler, this is just a quick short circuit + when "any" + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "any-40core" + base_slurm_args + p18_node + when "any-48core" + base_slurm_args + p20_node - when "gpu-any" - plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) - when "gpu-40core" - plus_gpus(base_slurm_args + p18_node, ["--gpus-per-node", "#{gpu_count}"]) - when "gpu-48core" - plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "#{gpu_count}"]) - when "vis" - plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) - when "densegpu" - plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "4"]) + when "gpu-any" + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-40core" + plus_gpus(base_slurm_args + p18_node, ["--gpus-per-node", "#{gpu_count}"]) + when "gpu-48core" + plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "#{gpu_count}"]) + when "vis" + plus_gpus(base_slurm_args + any_node, ["--gpus-per-node", "#{gpu_count}", "--gres", "vis"]) + when "densegpu" + plus_gpus(base_slurm_args + p20_node, ["--gpus-per-node", "4"]) - # using partitions here is easier than specifying memory requests - when "largemem" - partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - when "hugemem" - partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" - base_slurm_args + tasks_per_node + ["--partition", partition ] - else - base_slurm_args - end + # using partitions here is easier than specifying memory requests + when "largemem" + partition = bc_num_slots.to_i > 1 ? "largemem-parallel" : "largemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + when "hugemem" + partition = bc_num_slots.to_i > 1 ? "hugemem-parallel" : "hugemem" + base_slurm_args + tasks_per_node + ["--partition", partition ] + else + base_slurm_args + end image = '/apps/project/ondemand/singularity/mate-rhel8/mate-rhel8.sif' -%>