Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Кластер и расспараллеливание программы  (Прочитано 6926 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Draug_narmO

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Благодарю! Тогда упрусь сразу в MPI ...

Попробую сделать все как вы сказали ... но вот вопрос про rsh ... это одно и тоже что и ssh?
« Последнее редактирование: 01 Июня 2009, 12:37:30 от Draug_narmO »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
но вот вопрос про rsh ... это одно и тоже что и ssh?

Нет.
http://lmgtfy.com/?q=rsh+vs+ssh

Пользователь решил продолжить мысль 01 Июня 2009, 11:07:23:
Забыл добавить.
В "труде на тему..." все делалось путем установки из исходников. Это неправильно. Я тогда был молодой и зеленый. Надо брать программы из репозиториев, там они как правило пригнаны друг к другу.
Устанавливать программы из исходников следует только в том случае, если в репозитории старая версия, содержащая баг, ну совершенно мешающий жить.

И к делу в "труде" относятся только первые несколько строчек, перечисляющие необходимые библиотеки. Вам он, вероятно, вообще не понадобится, все есть в документации к LAM/MPI. (Я тогда использовал MPICH, с LAM что-то не срослось)

Пользователь решил продолжить мысль 01 Июня 2009, 16:48:46:
Вот еще что. Как выясняется, надо ставить Open MPI, LAM/MPI ныне в загоне.

1. https://forum.ubuntu.ru/index.php?topic=57883.0

2.
Цитировать
Do you like LAM/MPI? Then check out Open MPI!
LAM/MPI is now in a maintenance mode. Bug fixes and critical patches are still being applied, but little real "new" work is happening in LAM/MPI. This is a direct result of the LAM/MPI Team spending the vast majority of their time working on our next-generation MPI implementation -- Open MPI.
« Последнее редактирование: 01 Июня 2009, 16:48:46 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Draug_narmO

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Спасибо огромное за информацию!

По ходу дела возник вопрос.
на сайте
http://www.code-aster.org/wiki/doku.php?id=en:p02_install:p100_aster_mpi#how_to_install_openmpi_in_ubuntu
Написано:
Цитировать
192.168.1.1 slots=4
for a quad core processor. Use slots=2 if using a dual-core processor

Но а если у меня одноядерный, но при этом это кластер! и у меня 3 узла + серв, т.е. 4 компа одно ядерных? ... что тогда писать =\

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
RTFS (S=source)  :coolsmiley:

Скорей всего, надо перечислить все хосты с slots=1.

Это из аналогии с MPICH-ем.
Этот файл показывает, на каких машинах надо запускать программу, и сколько копий можно на каждой.
Так что, если техника выдерживает, и нет processor affinity, можно slots и увеличить.

Пользователь решил продолжить мысль 02 Июня 2009, 11:44:12:
В общем, читайте маны, они рулез.

http://www.open-mpi.org/faq/?category=running#oversubscribing
« Последнее редактирование: 02 Июня 2009, 11:44:12 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Draug_narmO

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Все с тогоже сайта по примеру, запустил программу вычисления Пи ...
Вот что выползло о_О ...

draug@303-9:~$ mpirun pi
--------------------------------------------------------------------------
Failed to find the following executable:

Host:       303-m
Executable: pi

Cannot continue.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Failed to find the following executable:

Host:       303-2
Executable: pi

Cannot continue.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Failed to find the following executable:

Host:       303-3
Executable: pi

Cannot continue.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Failed to find the following executable:

Host:       303-9
Executable: pi

Cannot continue.
--------------------------------------------------------------------------

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Скорей всего, у рабов пути не настроены, или не сработала команда rcp, и файл pi не был скопирован куда следует.
mpirun это скрипт, можно открыть его в текстовом редакторе и посмотреть, как он работает.

Все там же, в факе: http://www.open-mpi.org/faq/?category=running#simple-spmd-run

Еще прием: ищем в гугле полученную ошибку, получаем: http://www.google.com/search?hl=ru&safe=off&client=opera&rls=en&hs=44O&q=Failed+to+find+the+following+executable+OpenMPI&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=



« Последнее редактирование: 02 Июня 2009, 11:56:19 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Draug_narmO

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Я нашел ошибку ... во первых на каждой машине С прогу нужно скомпилировать, а во вторых он не компилит его =\
вот что выдает

draug@303-9:~$ mpicc -o pi pi.c
pi.c:10:19: error: stdio.h: No such file or directory
pi.c:11:20: error: stdlib.h: No such file or directory
pi.c: In function ‘main’:
pi.c:34: warning: incompatible implicit declaration of built-in function ‘printf’
pi.c:35: warning: incompatible implicit declaration of built-in function ‘scanf’
pi.c:62: warning: incompatible implicit declaration of built-in function ‘printf’
pi.c:81:2: warning: no newline at end of file

Может что то не до установил =\ ...

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн Draug_narmO

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Спасибо большое ... недавно читал как раз этот топик, а сейчас по запарке забыл ^_^ ...

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
во-первых на каждой машине С прогу нужно скомпилировать

Что-то сомнительно... Скорей всего, что-то недонастроено.

С MPICH мне программу требовалось скомпилировать только один раз, после чего исполняемые файлы просто копировались на узлы исполнения.
У крея, например, терминальный доступ юзерам есть только к нескольким узлам, которые, собственно, и занимаются обработкой команд от них. Остальные узлы только выполняют программы, на них нет компиляторов, текстовых редакторов, графических сред - минимальный набор.

Да и вообще, это непроизводительно и нелогично.
Например, в климатической модели, с которой я работал, был один файлик, компиляция которого занимала 40 минут. Было бы странно заставлять компьютер это делать 16 раз.
Плюс к тому, помимо GCC, есть и другие компиляторы, за деньги, которые привязываются к хостам. И покупать 256 лицензий вместо одной - расточительно.
« Последнее редактирование: 02 Июня 2009, 13:16:33 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн SauronTheDark

  • Активист
  • *
  • Сообщений: 674
    • Просмотр профиля
Интересно а если быстренько distcc для распараллеливания работы компилятора то это не пойдет?

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Не пойдет.
Где-то допущена ошибка, ее надо исправить.
Я помню, у меня была такая же проблема, связанная с неправильным пониманием документации.
Потом я что-то поправил в конфигурации, и все заработало нормально, программы компилировались на одном узле и копировались на остальные.
Там 4 одинаковых системы, для них не нужно все компилировать 4 раза.

Я даже больше скажу - исполняемый файл, собранный на Убунте, можно запустить на RedHat при условии наличия той же версии системных библиотек (libc6).
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Draug_narmO

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Я понял ... просто при выполнение команды:
mpicc -o pi pi.cсоздается файл pi его и надо скопировать на все машины ... Но как это можно сделать на програмном уровне а не в ручную? Это ладно щас 4 компа, а если будет 10 ... будет немного запарно копировать 10 раз одно и то же ...

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Я уже не помню, 3 года назад дело было.
По-моему, этим занимается mpirun или mpiexec.

Компилировать все 10 раз будет еще более запарно. А еще более запарно будет синхронизировать исходники на всех узлах.

Если же никто никуда сам копировать не хочет, можно написать элементарный скриптик, который это будет делать, а потом вызывать mpirun.

Update:

Да! Я вспомнил. Именно так в CCSM3 и делается. Там один скрипт компилирует программы и генерирует запусковый скрипт. А тот в свою очередь копирует все, что нужно, на узлы (помимо исполняемых файлов там еще нехилый объем данных, как исходных, так и сгенерированных в предыдущих прогонах), а потом запускает mpirun.

Если интересно, как это делается, модель можно взять отсюда.
Там требуется регистрация, но ее, по всей видимости, принимает робот, который в любом случае выдает имя и пароль, а регистрационные данные просто складывает в архив. В форме регистрации есть графа "Описание проекта, для которого вам нужна модель" - думаю, можно вписать туда что-то типа "изучение MPI на примере готового продукта", если других вариантов нет. :)
« Последнее редактирование: 05 Июня 2009, 11:27:14 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
>Компилировать все 10 раз будет еще более запарно. А еще более запарно будет синхронизировать исходники на всех узлах.
А расшарит /net/что-там нельзя?
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

 

Страница сгенерирована за 0.441 секунд. Запросов: 25.