以下是與我所問的問題相關的代碼。我正在處理一個有13個計算節點和1個頂級節點(又名主節點)的集羣。頂層節點是連接所有用戶的節點,因此它可以分配更多內存,因此運行速度更快。然而,我想提高其他節點的速度,因爲它們相對於頂級節點運行速度非常緩慢,並且我希望在不進行任何服務器和/或硬性調整的情況下提高速度。考慮到這些限制,我想知道是否有一種方法可以基於我如何在計算節點上啓動模擬來實現更快的計算。目前,爲了在某些初始條件下啓動部分仿真(這可以在下面看到),我只需ssh到計算節點上,然後啓動我的仿真。有沒有更好的方法來做到這一點,可以提高計算速度(我認爲可能比ssh更快)?任何幫助將不勝感激....我知道有一些所謂的MPI,但我對我的工作不相信實施MPI將是必要的,如果我可以提高SSH連接節點的計算速度項目... 謝謝。如何提高Linux羣集上計算節點的並行處理速度?
./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是運行的程序使用基於哪個節點的不同初始條件進行仿真正在使用。
是不是這個程序正在做什麼?看着我的數據,我開始懷疑這一點。所有計算節點都運行相同的條件,並且頭節點正在運行得很好......它們是否真的沒有並行運行?我雖然通過踢他們這樣的方式,他們會...... – Loonuh