링크 된 다른 질문은 당신이 필요로하는 것을 정확히 제공하지만, 스레드 수가 OMP_NUM_THREADS
환경 변수로 제어되는 OpenMP 응용 프로그램 용으로 작성되었으므로 약간 수정해야합니다. 여기
는 작업 스크립트의 가장 중요한 부분입니다 :
#BSUB -n 4
-4 슬롯 요청
#BSUB -R "span[ptile=1]"
- 슬롯은 노드 당 하나를 분산 요청; 이전과 함께이 옵션은 4 개 가지 노드에 걸쳐 작업을 걸쳐 생성 된 호스트 파일에서 호스트 당 하나 개의 슬롯을 넣어 LSF 지시
#BSUB -x
- 노드
위의 세 가지 옵션에 단독으로 액세스 요청 LSF에게 4 개의 노드를 할당하도록 지시하고 각 노드에 하나의 슬롯을 예약합니다. 독점 액세스가 요청되기 때문에 다른 작업이 동일한 노드를 작업과 공유하지 않으므로 노드 당 원하는만큼의 스레드를 시작할 수 있습니다. 그렇다면 Open MPI의 mpiexec
을 호출하고 Open MPI 설정에서 LSF 통합이 컴파일 된 경우 LSF에서 호스트 목록을 자동으로 가져 와서 노드 당 하나의 프로세스를 시작하면됩니다.
샘플 LSF 작업 파일은 다음과 같습니다
#BSUB -n 4
#BSUB -R "span[ptile=1]"
#BSUB -x
mpiexec -np 4 ./myprocess --numthreads=12
당신은 또한 -W
옵션과 -M
옵션을 충분한 양의 메모리와 충분한 동작 시간을 요청해야합니다. LSF (대부분의 다른 분산 리소스 관리자와 마찬가지로)의 메모리는 슬롯 당 으로 요청되므로 ./myprocess
인스턴스가 소비하는 최대 메모리 양을 지정해야합니다.
LSF 통합이 Open MPI 배포에서 컴파일되지 않으면 LSF 호스트 파일을 구문 분석하고 이전 MPF 호스트 파일을 작성해야하므로 프로세스가 다소 복잡합니다.
감사합니다! 질문 : 어떻게 청구됩니까? 즉, 호스트의 모든 코어에 대해 비용이 청구됩니다 (이는 더 바람직 할 것입니다). 또는 각 호스트의 단일 코어에 대해서만 청구됩니다 ('-x'옵션이 싫은 경우 발생할 수 있음). –
그 설정에 따라 달라집니다. 시스템 관리자에게 문의하십시오. –
왜'-n 48'과'-R "span [ptile = 12]"'? 그게 더 간단하지 않고'-x'를 필요로하지 않을까요? –