| ||||||||||||||||||||||||
В наиболее простом случае, когда на всех узлах кластера установлена одна и та же копия операционной системы (одинаковые версии ядра, библиотек и т.д.), выполнить это условие можно следующим образом. Компиляция программы из исходных кодов осуществляется на главном компьютере кластера (консоли кластера), после чего происходит копирование исполняемых модулей в файловые системы узлов кластера. Поскольку узлы кластера уже связаны друг с другом по протоколу SSH (помните, при настройке PVM мы сделали замену rsh на ssh?), видится разумным использовать для копирования именно этот протокол. Использование SSH для копирования позволит нам не устанавливать дополнительное программное обеспечение тип NFS или распределенной файловой системы. Для автоматизации процесса копирования требуется обеспечить возможность беспарольного доступа по SSH к узлам кластера с консоли кластера. Рассмотрим случай, когда кластер состоит из консоли кластера и четырех узлов (node1, node2, node3 и node4), система PVM установлена в каталог /pvm3 и названия узлов прописаны в файле /etc/hosts:
# file /etc/hosts 192.168.1.1 server.mydomain.com server 192.168.1.2 node1.mydomain.com node1 192.168.1.3 node2.mydomain.com node2 192.168.1.4 node3.mydomain.com node3 192.168.1.5 node4.mydomain.com node4 В этом случае для копирования можно предложить следующий простой скрипт:
#!/bin/sh
#
# Скрипт clcopy.sh
# Копирование исполняемых модулей на узлы кластера
#
user=`whoami`
for node in node1 node2 node3 node4; do
scp $1 $user@$node:/pvm3/bin/LINUX/ >/dev/null 2>&1
echo "File $1 sent to node $node"
done
echo "All done"
При наличии этого скрипта пересылка исполняемого файла на все узлы кластера выполняется следующей командой: yuri@server>clcopy.sh myprog |
| |||||||||||||||||||||||