PVM завершает работу после добавления хоста - PullRequest
2 голосов
/ 12 февраля 2010

В Ubuntu 9.10 с использованием PVM 3.4.5-12 (пакет PVM при использовании apt-get) Программа завершает работу после добавления хоста.

laptop> pvm
pvm> add bowtie-slave
add bowtie-slave
terminated
laptop>

Текущая конфигурация только $ PVM_RSH = bin / usr / ssh
Я могу без проблем использовать ssh в качестве ведомого без пароля и запускать на нем команды.

Есть идеи?
Заранее спасибо!

Вот примеры журналов:

Журнал для ноутбука

[t80040000] 02/11 10:23:32 ноутбук (127.0.1.1:xxxxx) LINUX 3.4.5
[t80040000] 02/11 10:23:32 готов Чт 11 февраля 10:23:32 2010
[t80040000] 02/11 10:23:32 netoutput () sendto: errno = 22 * ​​1015 * [t80040000] 02/11 10:23:32 em = 0x2c24f0
[t80040000] 02/11 10:23:32 [49 / А] [6e / А] [76 / А] [61 / А] [6 С / А] [69 / А] [64 / А] [20 / А ] [61 / а] [72 / A]
[t80040000] 02/11 10:23:32 netoutput () sendto: неверный аргумент
[t80040000] 02/11 10:23:32 pvmbailout (0)

Боути-журнал

[t80080000] 02/11 10:23:25 bowtie-slave (xxx.x.x.xxx:xxxxx) LINUX64 3.4.5
[t80080000] 02/11 10:23:25 готов Чт 11 февраля 10:23:25 2010
[t80080000] 02/11 10:28:26 work () run = STARTUP, истекло время ожидания мастера
[t80080000] 02/11 10:28:26 pvmbailout (0)

Ответы [ 3 ]

2 голосов
/ 22 февраля 2010

Я тоже боролся с этой проблемой. Я только что нашел пару вещей, которые терпели неудачу для меня.

Сначала мой главный хост начинал с имени узла, которое не было распознано подчиненным хостом. То есть он называл себя «foobar», но на самом деле это должен был быть «foobar.example.com», чтобы раб знал, как с ним разговаривать. Вы указываете это, запустив главную консоль следующим образом:

pvm -nfoobar.example.com

Я также указал полное имя раба. Итак в консоли:

add baz.mumble.example.com

Тогда у меня возникла проблема, когда консоль зависала при добавлении ведомого. Эй, по крайней мере, это не просто остановка! Я обнаружил, что это из-за брандмауэра на подчиненном хосте - связь терялась (pvmd не связываются через ssh после установки, у них есть другой порт, через который они общаются). К сожалению, запуск без брандмауэра не подходит для этого хоста. По умолчанию pvmd выбирает случайный номер порта, а это не то, что мне нужно. Очевидно, существует недокументированная переменная окружения PVMNETSOCKPORT, которая контролирует, какие порты она использует. Прямо сейчас я работаю над тем, чтобы правильно установить его, чтобы я мог вставить правильное отверстие в брандмауэр.

Удачи! Я постараюсь обновить этот ответ, если получу еще что-нибудь.

1 голос
/ 18 февраля 2010

Ааа ... радости запуска PVM! Я использую PVM через внешнюю библиотеку, InterComm . Начало работы с PVM на любой платформе - это всегда увлекательное занятие. Вот несколько вещей, которые вы можете попробовать:

Если вы можете rsh на своих вычислительных узлах, установите $PVM_RSH=/path/to/rsh. В противном случае для настройки через ssh:

Настройте SSH без пароля и вручную убедитесь, что он работает.

Затем создайте $PVM_ROOT/ssh, содержащий что-то вроде:

#!/bin/sh

host=$1
shift
/usr/bin/ssh $host ". ~/.pvmprofile; $@"

Как только об этом позаботятся:

Установить некоторые переменные окружения (это зависит от машины):

setenv PVM_ARCH LINUX64
setenv PVM_ROOT /users/ps14/opt-intel/pvm3
setenv PVM_BIN ${PVM_ROOT}/bin

# Set the following accordingly:    
setenv PVM_RSH ${PVM_ROOT}/ssh
#setenv PVM_RSH rsh

Теперь создайте файл «.pvmprofile», содержащий эти переменные:

rm -f ~/.pvmprofile
env | grep PVM_ > ~/.pvmprofile

Создать файл хоста, содержащий уникальные имена хостов:

sort -k 1,1 -u ${PBS_NODEFILE} >!  pvm_hostfile

Теперь запустите PVM и добавьте узлы. Мне нравится делать это как однострочник:

printf "%s\n%s\n" conf quit|${PVM_ROOT}/lib/pvm pvm_hostfile
0 голосов
/ 23 февраля 2010

Я не знал, что смогу ответить на свой вопрос до сих пор. Причина сбоя - файл hosts в /etc/hosts.

.

Ubuntu имеет локальный хост, настроенный на 127.0.0.1 локальный хост, однако, используя PVM, он должен использовать реальный IP-адрес. Таким образом, я поместил фактический IP-адрес, за которым следовало имя моей машины, поверх localhost, чтобы PVM сначала прочитал эту строку. Тогда все работало. Я не знаю, почему это никогда не давало мне сообщение об ошибке обратной связи.

Как прокомментировал и rescdsk, указание, какое использовать для запуска мастер-консоли, будет работать, но я хотел быть ленивым и просто набрать pvm, чтобы он работал.

Я еще не обращался к проблемам безопасности ... возможно, у rescdsk или у Пита будут хорошие предложения по дырам в безопасности. Хотя мой хост / кластеры не будут подключены к Интернету. Есть ли какие-либо проблемы?

...