0

동일한 프로그램을 여러 번 실행하지만 PBS를 통해 제출 된 클러스터의 각 인스턴스마다 다른 인수를 사용하는 방법은 무엇입니까? 또한 각 프로그램을 별도의 노드로 지정할 수 있습니까? 현재 다음 스크립트를 사용하여 PBS를 가지고있는 경우 :다른 인수로 동일한 프로그램의 여러 인스턴스를 실행하는 PBS

#PBS -l nodes=1:ppn=1 
/myscript 

단일 노드에서 단일 프로그램을 한 번 실행합니다. 다음 스크립트를 사용하는 경우 :

#PBS -l nodes=1:ppn=1 
/mscript -arg arg1 & 
/myscript -arg arg2 

나는 각 프로그램을 연속적으로 실행하지만 하나의 노드 만 사용한다고 생각합니다. 여러 노드를 선언 한 다음 실행하려는 프로그램의 각 인스턴스에 특정 노드를 위임 할 수 있습니까?

많은 도움이나 제안을 부탁드립니다. 나는 어떤 것에 대해서 명확하지 않거나 잘못된 용어를 사용하는 것에 대해 사과드립니다 ... 저는 클러스터 컴퓨팅에 아주 익숙합니다.

답변

0

MPI 형식을 사용하여이를 수행하려고합니다. MPI는 메시지 전달 인터페이스의 약자이며 인터페이스를 구현하는 많은 라이브러리가 있습니다. OpenMPI는 PBS와 잘 통합되어 있으므로 사용하는 것이 좋습니다. 당신이 새라고 말하면, 당신은 이것을 이해할 수 있습니다. tutorial.

0

GNU Parallel이 목적에 이상적입니다. 귀하의 경우의 예 PBS 스크립트 :

#PBS -l nodes=2:ppn=4 # set ppn for however many cores per node on your cluster 
#Other PBS directives 

module load gnu-parallel # this will depend on your cluster setup 

parallel -j4 --sshloginfile $PBS_NODEFILE /mscript -arg {} \ 
    ::: arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 

GNU Parallel가 여러 노드에 SSH 연결을 처리합니다. 명령 줄에 인수를 사용하여 예제를 작성했지만 텍스트 파일에서 인수를 읽는 것이 좋습니다. 다음은 man pagetutorial에 대한 링크입니다. 옵션 -j4은 ppn (노드 당 코어 수)과 일치해야합니다.