PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 11 дек 17 7:15

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Кластер для новичков
СообщениеДобавлено: 21 июл 09 12:44 
Не в сети

Зарегистрирован: 20 июл 09 12:10
Сообщения: 8
Расскажите, пожалуйста, если кто-нибудь знает как настраиваются кластеры в принципе. Я новичок в этом деле.

У меня стоит следующая задача:

Есть программа VASP, она поддерживает OpenMPI и необходимо, чтобы расчетом занимались все машины, которые находятся в локальной сети (скажем 10-20 компьюетеров). Сеть Gigabit Ethernet, все машины получают адрес от DHCP и соединены DLinkовским свитчем. Операционноя система Gentoo Linux, возможен вариант другого Linuxа.

Что для этого необходимо сделать, какие действия произвести? Может нужно поднять nfs, ntp-синхронизацию, настроить SSH или что-то другое. Подскажите с чего начать и какую документацию почитать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 21 июл 09 13:50 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 871
Откуда: НИВЦ МГУ
программа-минимум - поднять общий NFS-диск, синхронизировать базу пользователей, обеспечить безпарольный вход по ssh (по ключу) тем пользователям, которые будут запускать VASP и др. параллельные программы, установить OpenSSH, проверить работоспособность на тестах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 23 июл 09 14:54 
Не в сети

Зарегистрирован: 20 июл 09 12:10
Сообщения: 8
Спасибо за ответ, но я пошел другим путем.

Установил Torque затем OpenMPI. Затем скомпилировал VASP с поддержкой MPI. На одной двухпроцессорной машине, если запускать VASP (тестовая задача) командой ./vasp, то он выполняет задачу за 280 секунд (провели 10 тестов). А если командой mpirun -n 2 ./vasp, то за 180 секунд (10 тестов). В обоих случаях результат тестовой задачи совпадает.

Запускаем таким образом:
Код:
# whoami
testuser
# pwd
/home/testuser/vasp/
# echo "mpirun -n 4 /home/testuser/vasp/vasp" | qsub -l nodes=4:ppn=2,walltime=10:00:00
240.fis-215-1.vstu.edu.ru
# qstat
#


Таким образом задача добавляется, но не исполняется. Пользователь testuser создан только на серверной машине (т. е. на узлах его нет). Папка пользователя не расшарена по NFS.

Вопрос: нужно ли расшаривать папку пользователя по NFS и заводить аналогичные записи на узлах? Или что-то другое принципиально не правильно? Подскажите, кто сталкивался с такой проблемой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 23 июл 09 18:27 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 871
Откуда: НИВЦ МГУ
Цитата:
Таким образом задача добавляется, но не исполняется. Пользователь testuser создан только на серверной машине (т. е. на узлах его нет). Папка пользователя не расшарена по NFS.


Простите, а как по-Вашему будет запускаться процесс задачи на вычислительных узлах? Как туда попадёт исполняемый файл, от имени какого пользователя он будет запущен? Минимум миниморум я написал выше. Добейтесь запуска хотя бы вручную. А уж потом городите Torque и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 24 июл 09 8:18 
Не в сети

Зарегистрирован: 20 июл 09 12:10
Сообщения: 8
Спасибо, сегодня попробую без torque по ssh и отпишусь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 24 июл 09 23:07 
Не в сети

Зарегистрирован: 20 июл 09 12:10
Сообщения: 8
Урааа!!! Работает!
Настроил ssh на безпарольную авторизацию с public key. Домашний каталог пользователя testuser (на сервере) смонтирован по NFS на каждом узле в домашний каталог пользователя с тем же именем, UID и GID. В нем и находится папка с vasp. В папке с vasp создан файл hosts такого содержания:
Код:
node01 slots=2
node02 slots=2
node03 slots=2
localhost slots=2

Запускаю программу сначала так:
Код:
# mpirun --bynode --hostfile hosts -n 8 ./vasp

затем так:
Код:
# mpirun --bynode --hostfile hosts -n 4 ./vasp

В первом случае на каждом узле запускается 2 процесса с именем vasp и время расчета оказывается 160 секунд, а во втором - по 1 процессу на машину и время 125 секунд.
На каждой машине top показывает загрузку процессора 30-40% (dual core 2140).
Подскажите пожалуйста, можно ли увеличить эффективность работы так, чтобы процессор каждой машины был полностью или хотя бы почти полностью загружен? Или это проблема способа которым компилировался vasp (использовался gfortran, а не ifort)?
Используется сеть 100Мбит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 28 июл 09 11:20 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 871
Откуда: НИВЦ МГУ
И компилятор и сеть имеют значение. Можно проверить потери на сети, посмотрев в top время ожидания и системное. Если эти величины большие, значит задача долго простаивает на сетевых или дисковых операциях.
По эффективности кода ifort на относительно новых процессорах даёт до 100% прироста. Но это редко, обычно 10-15%.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 28 июл 09 15:11 
Не в сети

Зарегистрирован: 20 июл 09 12:10
Сообщения: 8
Cпасибо за подсказку, скомпилировал с ifort (ох и много же с ним возни... ) прирост составил 30-40%.

Теперь возникла другая проблема:
На узлах смонтированы по ssh папка пользователя и /usr. При попытке просто запустить VASP на каком-либо узле (без mpirun)
VASP выдает следующую ошибку:
Код:
# ./vasp
./vasp: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory

Файл libimf.so находится в /usr/opt/intel/fc/10.0.026/lib/ .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 29 июл 09 11:47 
Не в сети

Зарегистрирован: 11 дек 02 19:37
Сообщения: 871
Откуда: НИВЦ МГУ
samu3l писал(а):
На узлах смонтированы по ssh папка пользователя и /usr. При попытке просто запустить VASP на каком-либо узле (без mpirun)

По NFS, вероятно?

Цитата:
Файл libimf.so находится в /usr/opt/intel/fc/10.0.026/lib/

Добавьте этот каталог в /etc/ld.so.conf на узлах и выполните там команду /sbin/ldconfig


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 31 июл 09 11:19 
Не в сети

Зарегистрирован: 20 июл 09 12:10
Сообщения: 8
Цитата:
По NFS, вероятно?

Конечно по NFS ))

Решил проблему по другому:
Создал в /usr/lib символические ссылки на все библиотеки ifort в /usr/opt/intel/fc/10../lib.
Теперь вроде все работает.

Cпасибо за отличные ответы!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кластер для новичков
СообщениеДобавлено: 26 июл 12 10:56 
Не в сети

Зарегистрирован: 27 янв 10 21:17
Сообщения: 6
samu3l писал(а):
Цитата:
По NFS, вероятно?

Конечно по NFS ))

Решил проблему по другому:
Создал в /usr/lib символические ссылки на все библиотеки ifort в /usr/opt/intel/fc/10../lib.
Теперь вроде все работает.

Cпасибо за отличные ответы!


LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/opt/intel/fc/10.0.026/lib/
export LD_LIBRARY_PATH

На мой взгляд более правильный вариант


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB