Ниже приведен код, относящийся к вопросу, который я задаю. Я работаю с кластером, который имеет 13 вычислительных узлов и 1 верхний узел (он же главный узел). Верхний узел — это узел, который соединяет всех пользователей, поэтому ему выделяется больше памяти, чтобы он мог работать быстрее. Однако я хотел бы увеличить скорость других узлов, потому что они работают довольно медленно по сравнению с верхним узлом, и я хотел бы увеличить их скорость без каких-либо настроек сервера и/или оборудования. Учитывая эти ограничения, мне интересно, есть ли способ ускорить вычисления, основываясь на том, как я запускаю симуляции на вычислительных узлах. В настоящее время, чтобы запустить часть симуляции с определенными начальными условиями (это можно увидеть ниже), я просто подключаюсь к вычислительному узлу по ssh, а затем инициирую симуляцию. Есть ли лучший способ сделать это, чтобы увеличить скорость вычислений (я думаю, может быть что-то быстрее, чем ssh?). Буду очень признателен за любую помощь... Я понимаю, что есть что-то, называемое MPI, но для проекта, над которым я работаю, я не считаю, что реализация MPI будет необходима, если я могу просто увеличить скорость вычислений узлов ssh'd. ... Спасибо.
./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 — это программа для запуска симуляции с различными начальными условиями в зависимости от того, какой узел используется.