以下は、私が求めている質問に関連するコードです。13 の計算ノードと 1 つのトップ ノード (別名メイン ノード) を持つクラスターを使用しています。最上位ノードはすべてのユーザーを接続するノードであるため、より多くのメモリが割り当てられるため、より高速に実行できます。ただし、他のノードの速度を上げたいと考えています。これは、トップ ノードに比べて実行速度が非常に遅いためです。また、サーバーやハードウェアの調整を行わずに速度を上げたいと考えています。これらの制約を考慮すると、計算ノードでシミュレーションを開始する方法に基づいて、より高速な計算を実現する方法があるかどうか疑問に思っています。現在、特定の初期条件でシミュレーションの一部を開始するには (これは以下で確認できます)、計算ノードに ssh 接続して、シミュレーションを開始するだけです。これを実行して計算速度を上げるより良い方法はありますか (ssh よりも高速な方法があるのではないかと考えています)。どんな助けでも大歓迎です....MPIと呼ばれるものがあることは理解していますが、私が取り組んでいるプロジェクトでは、sshされたノードの計算速度を上げることができれば、MPIの実装が必要になるとは思いません... ありがとう。
./NodeHopper.sh
#!/bin/sh
#NodeHopper uses shell script to run psuedo-parallel computing over a cluster
#The top node is not named sequentially, so its not in the proceeding loop.
#Instead, it is given the node value 13 for computations later
export PROG=13
nohup ./ParaCage.sh & #Runs ParaCage.sh on the main node for the cluster
#Does other nodes sequentially #0 through 12
for i in {0..12}
do
export PROG=$i
#PROG is passed into ./ParaCage.sh and tells ./ParaKeet.sh which initial conditions
#to use for the simulation.
ssh compute-0-$i PROG=$PROG ./ParaCage.sh &
sleep 1
done
./ParaCage.sh
#!/bin/sh
echo "Tunneling to Node:"
echo $PROG
echo "Complete"
cd multichmoII/multichmo$PROG/chmo/
./ParaKeet.sh
ParaKeet.sh
ParaKeet.sh は、使用しているノードに基づいて異なる初期条件でシミュレーションを実行するプログラムです。