여러 개의 직렬 프로그램을 "병렬로"실행해야하는 경우 (문제가 간단하지만 시간이 오래 걸리기 때문에 동일한 프로그램에 대해 많은 데이터 세트를 읽어야 함) 하나의 노드 만 사용하는 경우 솔루션은 간단합니다 . 내가하는 일은 각 명령 다음에 계속해서 일련의 작업을 앰퍼샌드로 제출하는 것입니다. 작업 스크립트에서 :PBS 일괄 처리 시스템이 노드에서 여러 개의 직렬 작업을 이동합니까?
./program1 &
./program2 &
./program3 &
./program4
다른 프로세서에서 각 직렬 프로그램을 자연스럽게 실행합니다. 이것은 로그인 서버 나 독립 실행 형 워크 스테이션에서 잘 작동하며 물론 하나의 노드 만 요구하는 일괄 처리 작업에도 적합합니다.
하지만 110 개의 다른 데이터 세트를 읽으려면 동일한 프로그램의 110 개의 다른 인스턴스를 실행해야한다면 어떻게해야합니까? 110 ./program# 명령을 제출하는 스크립트로 여러 노드 (예 : 14)에 제출하면 일괄 처리 시스템이 각기 다른 노드의 다른 프로세서에서 각 작업을 실행합니까, 아니면 동일한 시스템에서 모든 작업을 실행하려고합니까? 8 코어 노드?
다른 데이터를 읽으려고 간단한 MPI 코드를 사용하려고했지만 다양한 오류가 발생하여 110 개의 프로세스 중 약 100 개가 성공하고 다른 프로세스는 충돌합니다. 나는 또한 작업 배열을 고려했지만 내 시스템에서 지원하는지 확실하지 않습니다.
개별 데이터 세트에서 직렬 프로그램을 광범위하게 테스트했습니다. 런타임 오류가 없으며 각 노드에서 사용 가능한 메모리를 초과하지 않습니다.
대단히 감사합니다. 지금 제안 사항 중 일부를 구현하고 있습니다. –
+1 Gnu 병렬 - 훌륭한 도구. – Owen