2 つのクラスターで操作するためのスクリプトをプログラミングしています。
私の目的は、1 つのクラスターのみに焦点を当てることです。つまり、すべてのスクリプト ソース コードはクラスターの 1 つだけにあるということです。
たとえば、クラスター AI にはすべてのスクリプトがインストールされているため、クラスター B に ssh してこれらのスクリプトを実行し、クラスター B に再度インストールする必要はありません。
ssh root@ClusterB 'bash -s' < local_ClusterA_script.sh
クラスターBがClusterAからlocal_ClusterA_script.shを実行するようなbashスクリプトで知っていました。
ここで、クラスター A からクラスター B にバッチ ジョブを送信するために ssh を使用しなければならないというさらなる課題があります。このバッチ ジョブには、クラスター A からのスクリプトが必要です。
# run.sh :
#!/bin/bash
INPUT_ARGS="$@"
qsub -v argv="$INPUT_ARGS" -l arch=x86_64 -l walltime=10:00:00 -l vmem=8GB -l nodes=1:ppn=6 $CLUSTERA_BIN/run.script
# run.script
runprogram()
{
#Input
INPUT_ARGS=`echo $argv`
$CLUSTERA_BIN/runprogram.py "$INPUT_ARGS" ;
}
だから私の問題は、クラスタ B がどこにあるの$CLUSTERA_BIN/runprogram.py
かということです。run.script のコードをクラスター B で正常に実行するにはどうすればよいですか?
と思っていたコマンドの1つです ssh root@ClusterB 'bash -s' < run.sh $MYARGS
が、明らかにこのようには機能しません。