Тестовые скрипты:
Запуск расчетов:
Последняя скомпилированная версия Concorde расположена в /usr/local/Concorde/concorde
. Есть также прекомпилированная версия, расположенная в /usr/local/Concorde/binaries
. Здесь будет рассмотрен пример запуска на кластере нескольких независимых вычислений Concorde:
~/submit-tp -n 8 -f ~/submit-concorde.sh
Эта команда запустит 8 независимых расчетов на 8 ядрах. Содержимое скрипта ~/submit-concorde.sh
:
#!/bin/bash
i=1
for node in `cat $PBS_NODEFILE`; do
echo node=$node i=$i
ssh $node "~/examples/concorde-script.sh $i" &
let i=i+1
done
wait
Как видно, в цикле запускается скрипт concorde-script.sh
на каждом из выделенных узлов (по ssh). При этом число запусков скрипта на узле соответствует числу выделенных на нем ядер (все выделенные ядра используются). Задача не завершится, пока хотя бы один процесс не завершил расчет. Для этого используется команда wait. Таким образом, все выделенные ядра задействованы, но их вычисления независимы. Это видно по тексту скрипта concorde-script.sh
:
#!/bin/bash
NUM="$1"
if [ ! -d ~/examples/concorde/$NUM ]; then
mkdir -p ~/examples/concorde/$NUM;
fi
cd ~/examples/concorde/$NUM
# Start calculations
time /usr/local/Concorde/concorde/TSP/concorde -s 99 -k $((NUM * 100))
Этот скрипт является просто тестом для проверки работы Concorde. Он создает директорию в ~/examples/concorde/, переходит туда и начинает вычисления (результаты будут храниться в созданной директории). После выполнения задачи в текущей директории появятся файлы (примерные имена):
[gajduchok@v339 ~]$ ls -l job.1332447269.*
-rw------- 1 gajduchok users 170 Mar 23 00:15 job.1332447269.e24279
-rw------- 1 gajduchok users 6205 Mar 23 00:15 job.1332447269.o24279
В них содержится стандартный вывод и ошибки (если есть), выданные в процессе вычислений.