下面是与我要问的问题相关的代码。我正在使用具有 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 是一个程序,用于运行具有不同初始条件的模拟,这些初始条件基于正在使用的节点。