Дистрибутив scientific linux-5.7
Вдоволь натрахашись с пакетами rpm (там выползали ну просто страннейшие глюки с torque и openmpi/mpich2), обновляться до 6.1 не вариант, ну пока не вариант... хотя возможно, половину проблем это решило бы.
Принято было мною решение не париться, и собрать всё руками из исходников. Что мне вообще нужно сделать? Настроить систему очередей torque (openpbs) и проверить, чтобы она работала вместе с mpi. Взял сразу две реализации openmpi и mpich2. (первая вроде как на сях, другая на питоне).
Делал всё по инструкции, собирал из исходников. http://www.adaptivecomputing.com/resources/downloads/torque/ отсюда брал torque, версии 2.5.9, отсюда http://www.open-mpi.org/ openmpi последней стабильной версии, ну и отсюда http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads mpich2
Собрал всё, установил. torque поставил в /usr/local (ну и скрипты добавил в /etc/init.d). openmpi и mpich2 поставил в /opt/openmpi и /opt/mpich2 , чтобы была возможность выбора, и она была более очевидной.
Итак, настроил. Всё, в принципе работает. Вот, что пишет pbsnodes -a:
mgm
state = free
np = 4
ntype = cluster
jobs = 0/10.<хостнейм>
status = много букафф
gpus = 0
node1
state = free
np = 8
ntype = cluster
jobs = 0/10.хостнейм
status = много букафф
gpus = 0
node2
state = free
np = 8
ntype = cluster
jobs = 0/10.хостнейм
status = много букафф
gpus = 0
node3
state = free
np = 8
ntype = cluster
jobs = 0/10.хостнейм
status = много букафф
gpus = 0
Таким образом 4 ноды (первая главная), остальные вычислительные.
И в принципе всё работает... и в принципе как надо. Одно но, до которого голова моя никак не дойдёт %) не соображаю уже.
Запускаю тестовый скрипт вот такого вида:
#!/bin/bash
#PBS -l mem=100mb,walltime=1:30:00
#PBS -S /bin/bash
#PBS -N testmpi
#PBS -q batch
echo start
date
echo 'openmpi test...'
/opt/openmpi/bin/mpirun ~/testpbs/test.openmpi
echo 'mpich2 test...'
/opt/mpich2/bin/mpirun ~/testpbs/test.mpich2
date
echo end
собственно, test.openmpi и test.mpich2 тестовые программки по типу хеллоуворлда. они работают, всё нормально. После отработки этого скрипта создаются два файлика testmpi.e<номер> и testmpi.o<номер>, во втором соответственно вывод (то есть всё, что после echo, data, и вывод самих программ)
ИТАК, а если добавить в этот скрипт безобидный параметр nodes=4:
#!/bin/bash
#PBS -l [b]nodes=4[/b],mem=100mb,walltime=1:30:00
#PBS -S /bin/bash
#PBS -N testmpi
#PBS -q batch
echo start
date
echo 'openmpi test...'
/opt/openmpi/bin/mpirun ~/testpbs/test.openmpi
echo 'mpich2 test...'
/opt/mpich2/bin/mpirun ~/testpbs/test.mpich2
date
echo end
задача вроде запускается, всё нормально. но никаких файликов в том же каталоге не создаётся!!! и ничего никуда не пишется. никаких ошибок тоже... почему??? %)
И ещё кое-что... если указать параметр nodes=4:npp=4, то тогда он и вовсе ругается, что недостаточно ресурсов
qsub: Job exceeds queue resource limits MSG=cannot locate feasible nodes (nodes file is empty or all systems are busy)
Хотя это бессмыслица. на первой ноде 4 проца. на всех остальных по 8. уж по 4 на каждой точно должно запуститься.
В принципе, если эти параметры опускать и запускать без них - всё работает, да... но для чего тогда вообще эти параметры нужны? Где я ошибся?