내 슈퍼컴퓨터에 다음과 같은 기능이 포함된 NODELIST가 있다고 가정해 보겠습니다.
NODELIST FEATURES
NodeA (none)
NodeB specialfeature
이 기능이 있든 없든 specialfeature
성능을 벤치마킹하려고 합니다. 달리기 성능을 측정하는 것은 specialfeature
사용하기 쉽습니다. 그냥 전화했어요
sbatch --constraint="specialfeature" mybenchmarktest.exe
specialfeature
위의 내용은 함수가 포함된 노드(예: 노드 B) 에서 실행이 발생하도록 보장합니다 . 그러나 specialfeature
문제가 발생 하지 않고 벤치마크를 실행하고 싶다면 . 부르다
sbatch mybenchmarktest.exe
SLURM이 NodeA 또는 NodeB에서 내 작업을 실행할 수 있음을 의미합니다. 이는 내 벤치마크가 내가 원하는 결과를 측정하지 못할 수도 있음을 의미합니다.
기능 없이 프로세스가 실행되도록 하는 방법이 있습니까?나는 다음과 같은 호출을 상상한다:
sbatch --contraint="!specialfeature" mybenchmarktest.exe
참고: 이 사소한 경우에는 NodeA(해당 기능이 없는 노드)에서 실행되도록 요청할 수 있다는 것을 알고 있지만 SLURM에게 "이러한 기능을 사용하지 마십시오"라고 알리는 보다 일반적인 방법을 찾고 있습니다. ".
답변1
현재(버전 15.8 기준) 이러한 방식으로 기능을 거부할 수 있는 방법은 없습니다. 유일한 방법은 다음과 같은 방법으로 보충 기능을 정의하는 것입니다.
NODELIST FEATURES
NodeA nospecialfeature
NodeB specialfeature
그런 다음 을 사용하여 하나의 작업을 제출한 --constraint=specialfeatures
다음 를 사용하여 다른 작업을 제출합니다 --constraint=nospecialfeature
.
구성을 변경할 수 없는 경우 다른 옵션은 다음과 같은 구조를 사용하여 허용되는 호스트 목록을 수동으로 작성하는 것입니다.
sinfo -h --format "%N %f" | grep specialfeature |\
awk '{print $1}' | paste -d, -s | xargs scontrol show hostlist
--nodelist
옵션과 함께 결과를 사용하십시오 . 자유롭게 결합하여 grep
목록을 만드세요.