Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #65, АПРЕЛЬ 2006 г.

коммунистические вычисления

ALEK SILVERSTONE

Спецвыпуск: Хакер, номер #065, стр. 065-070-1


(ALEKSI@PISEM.NET)

ИСПОЛЬЗОВАНИЕ ВСЕЙ СИЛЫ КЛАСТЕРА ПРИ ПОМОЩИ MPI

КАК ИЗВЕСТНО, ЕСТЬ ТРИ СПОСОБА ПРОВЕСТИ БОЛЬШОЙ ОБЪЕМ ВЫЧИСЛЕНИЙ: НА СУПЕРКОМПЬЮТЕРЕ, НА КЛАСТЕРЕ И НА ОБЫЧНОМ ПК В ТЕЧЕНИЕ НЕСКОЛЬКИХ ЛЕТ :). ПОСЛЕДНИЙ ВАРИАНТ ХОРОШО ТОЛЬКО ОДНИМ — ДЕШЕВИЗНОЙ (ПРАВДА, ЗА ЭЛЕКТРИЧЕСТВО ТОЖЕ НУЖНО ПЛАТИТЬ). СУПЕРКОМПЬЮТЕРЫ, НАОБОРОТ, ТРЕБУЮТ БОЛЬШИХ ЗАТРАТ И ПО СОБСТВЕННОЙ СТОИМОСТИ, И ПО СТОИМОСТИ ОБСЛУЖИВАНИЯ. ВОТ ПОЧЕМУ В НАШЕ ВРЕМЯ ИСПОЛЬЗУЮТСЯ ИМЕННО КЛАСТЕРЫ — КОМПЬЮТЕРЫ, СОЕДИНЕННЫЕ В СЕТЬ, КОТОРАЯ СЛУЖИТ ДЛЯ ПЕРЕДАЧИ ПАРАМЕТРОВ ВЫЧИСЛЕНИЙ

Этот вариант требует изменения алгоритма программы — его распараллеливания на несколько потоков, каждый из которых может выполняться на любой машине. Долгое время программисты писали свои реализации взаимодействия потоков приложения, пока в 1994 году не появился стандарт, получивший название Message-Passing Interface. Он создавался коллективно (www.mpi-forum.org), в результате получился гибкий и удобный инструмент. MPI особенно удобен тем, что он и мал, и велик. Всего в стандарте описано 125 функций, но минимальный набор составляют всего шесть, остальные нужны для эффективности или удобства.

мы будем устанавливать

реализацию MPICH (MPI CHameleon), написанную на Windows авторами стандарта. Сразу скажу, что поддержка 9x/ME минимальна: возможен запуск только нескольких потоков на одном компьютере, так что лучше ставить на NT/2k/XP. Для начала с нашего диска или из Сети (www-unix.mcs.anl.gov/mpi/mpich/mpich-nt) нужно утянуть дистрибутив: mpich.nt.1.2.5 — бинарники и SDK, mpich.nt.1.2.5.src — исходники, которые можно собрать на VC++. Советую качать первый zip (ссылки находятся внизу страницы загрузки), а не самораспаковывающиеся архивы — пригодится для установки на несколько машин.

Распакуем во временную папку и запустим setup. Для установки желательно иметь права администратора. Если их не будет, то ошибки в процессе установки не возникнет, но менеджер процессов mpd не будет установлен как служба и в этом случае мы получим только бесплатный геморрой — «запуск программы из командной строки с кучей параметров» :). С исходниками идет очень хороший мануал. Очень настоятельно рекомендую почитать его. Мануал (отдельно) можно скачать по адресу www.mcs.anl.gov/mpi/mpich/docs/mpichntman.pdf.

Установка на несколько машин тоже несложна. Распаковать во временную папку и расшарить ее. Открыть в блокноте файл setup.iss. Найти строку 'szDir=C:\Program Files\MPICH' и указать в ней путь установки. Далее на каждой машине выполнить команду '\\myhost\myshare\setup -s -f1\\myhost\myshare\setup.iss', где myhost — имя первой машины, а myshare — название расшаренной папки. Между прочим, UNC в cmd не поддерживается, так что вставляем команду в «Пуск»-> «Выполнить». Плюс ко всему, для запуска программ нам понадобится общее имя пользователя и пароль на всех машинах. Лучше создать отдельного пользователя, выполнив на всех машинах команду вида 'net user <username> <password> /add'.

После установки удаляем расшаренную папку и жмем «Пуск»-> «Программы»-> MPICH-mpd. Запускаем Configuration tool. Слева при помощи кнопки Add добавляем в список те машины, на которые мы поставили MPICH. Можно еще нажать Select и просканировать компьютеры на наличие установленного mpd или проверить его доступность. (Кстати, в нашей локалке сканированием я нашел еще два компьютера с установленным MPICH, помимо тех, с хозяевами которых я договорился :). Правда, я посканировал сколько-то времени, и тут софтина админов меня забанила.)

Содержание  Вперед на стр. 065-070-2