diff --git a/README.md b/README.md index fb40149..eb91222 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,11 @@ gpus_users -v # Summary of node usage node_usage ``` + +Any of the gpu_users command can be followed up with a lab (e.g. cvmlp, rehg, hoffman, etc.) to filter for the usage only in that lab, i.e. + +``` +gpus_users --cvmlp +gpus_users -q --cvmlp +gpus_users -v --cvmlp +``` diff --git a/gpus_users.bashrc b/gpus_users.bashrc index 17c4905..8a2138a 100644 --- a/gpus_users.bashrc +++ b/gpus_users.bashrc @@ -3,7 +3,7 @@ usage_by_lab() { { sacctmgr -nop show assoc format=account,user,grptres | grep -v 'root' | grep -v 'test-lab'; squeue -O "UserName,StateCompact,QOS,tres-alloc:1000,Account,Partition" -h | tr -s " " | awk '$0="G> "$0' | grep gpu | sort; - } | awk -f $1 - + } | awk -v labfilter="$2" -f $1 - } usage_by_node() { @@ -16,15 +16,14 @@ usage_by_node_type() { } | awk -f $1 - } + gpus_users() { - if [ $# -eq 1 ]; then - if [[ $1 == "-q" ]]; then - usage_by_lab ~/slurm_usage_utils/lab_usage_qos.awk - elif [[ $1 == "-v" ]]; then - usage_by_lab ~/slurm_usage_utils/lab_usage_verbose.awk - fi + if [[ $1 == "-q" ]]; then + usage_by_lab ~/slurm_usage_utils/lab_usage_qos.awk $2 + elif [[ $1 == "-v" ]]; then + usage_by_lab ~/slurm_usage_utils/lab_usage_verbose.awk $2 else - usage_by_lab ~/slurm_usage_utils/lab_usage.awk + usage_by_lab ~/slurm_usage_utils/lab_usage.awk $1 fi } diff --git a/lab_usage.awk b/lab_usage.awk index 5deaec5..922689d 100755 --- a/lab_usage.awk +++ b/lab_usage.awk @@ -63,6 +63,11 @@ END { if (lab == "guest-lab") { continue; } + if (length(labfilter) != 0) { + if (substr(lab, 0, length(lab)-4) != substr(labfilter,3)) { + continue; + } + } print_str = sprintf(\ "[ %d/%d/%d ]", labs_to_gpus_used[lab]["R"], diff --git a/lab_usage_qos.awk b/lab_usage_qos.awk index de5b9a3..f0444dc 100644 --- a/lab_usage_qos.awk +++ b/lab_usage_qos.awk @@ -46,6 +46,11 @@ END { if (lab == "guest-lab") { continue; } + if (length(labfilter) != 0) { + if (substr(lab, 0, length(lab)-4) != substr(labfilter,3)) { + continue; + } + } print_str = sprintf("[ %d/%d/%d ]", labs_to_gpus_used[lab]["R"], labs_to_gpus_used[lab]["PD"], labs_to_gpus[lab]) printf("| %14s | %-15s |\n", lab, print_str); if (lab in gpu_counts) { diff --git a/lab_usage_verbose.awk b/lab_usage_verbose.awk index 32f481d..4611cdc 100755 --- a/lab_usage_verbose.awk +++ b/lab_usage_verbose.awk @@ -90,6 +90,11 @@ END { if (lab == "guest-lab") { continue; } + if (length(labfilter) != 0) { + if (substr(lab, 0, length(lab)-4) != substr(labfilter,3)) { + continue; + } + } print_str = sprintf(\ "[ %d / %d / %d (Run/Sched/Total) GPUS]", labs_to_gpus_used[lab]["R"],