0
컴퓨팅 클러스터에서 실행중인 embarassingly parallel (bash) 스크립트가 있습니다. 이 스크립트는 쉘 스크립트이며 이 아니며이 MPI 라이브러리에 링크되어 있습니다. 즉, MPI 등급을 보낼 수있는 유일한 방법은 명령 줄 매개 변수를 사용하는 것입니다. xargs 병렬 및 mpirun 결합
지금까지 나는 단 하나의 노드 내에서 실행하고, 해결책은 간단했다 :#!/bin/bash
#SBATCH --nodes=1
N=16
seq $N | xargs -P $N -I% my_script.bash % $N
가 어떻게 두 개의 노드로 확장 할 수 있습니까? '--nodes = 2'와
N=32
을 사용하면
xargs
은 같은 노드에있는 모든 스레드를 생성하려고합니다. 다른 한편으로는
mpiexec
만을 사용할 수 없습니다. 스크립트가
MPI
라이브러리에 연결되어 있지 않아 스크립트에 어떤 스레드가 있는지 알 수 없으므로.
솔루션에서 MPI를 사용해야합니까? GNU Parallel을 사용하면 매우 쉽습니다 : seq $ N | parallel -S server1, server2, my_script.bash {} $ N –