我正在寻找解决我所面临的问题的建议。为了提供背景,我正在尝试开发一个工具来监控我们内部的高性能计算机集群.由于我们使用slurm工作负载调度,所以我使用了它们提供的命令。
我正在运行以下命令:squeue -h -t R -O Partition,NumCPUs,tres-per-node,用于告诉分配给作业的分区GPU和GPU之类的资源。但是,我们拥有的分区名称很长,这会导致将柱状输出作为一个值来处理。
输出:
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-interacti8 gpu:1
gpu-2080ti-long 32 gpu:4
gpu-2080ti-long 16 gpu:2
gpu-v100 4 gpu:1如果我以squeue -h -t R -O Partition,NumCPUs,tres-per-node| awk "{print \$1,\$2,\$3}"的形式在上面的命令上运行awk,就会有问题,因为gpu-2080ti-interacti8被视为一个值,而应该是gpu-2080ti-interacti 8。我已经用--格式查找了-o,但这对我不起作用,因为tres-per-node不存在于squeue提供的%选项中。我正在寻找一个解决方案,可以帮助我分离这些价值观。
发布于 2022-01-26 15:30:04
-O, --Format允许使用:指定列宽度。所以你可以试试
squeue -h -t R -O Partition:30,NumCPUs,tres-per-node用所有分区名称的最大长度替换30。
https://stackoverflow.com/questions/70865475
复制相似问题