на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Алгоритмы параллельных процессов при исследовании устойчивости подкрепленных пологих оболочек

// Рассылка количества интервалов всем процессам (в том числе и себе)

MPI_Bcast (&n, 1, MPI_INT, 0, MPI_COMM_WORLD);

if (n==0)

done = 1;

else

{

h = 1.0/ (double) n;

sum = 0.0;

// Обсчитывание точки, закрепленной за процессом

for (i = myid + 1; (i <= n); i += numprocs)

{

x = h * ( (double) i - 0.5);

sum += f (x);

}

mypi = h * sum;

// Сброс результатов со всех процессов и сложение

MPI_Reduce (&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);

// Если это главный процесс, вывод полученного результата

if (myid==0)

{

printf ("PI is approximately%.16f, Error is%.16f\n", pi, fabs (pi - PI25DT));

endwtime = MPI_Wtime ();

printf ("wall clock time =%f\n", endwtime-startwtime);

fflush (stdout);

}

}

}

// Освобождение подсистемы MPI

MPI_Finalize ();

return 0;

}

Реализации MPI

MPICH - самая распространённая бесплатная реализация, работает на UNIX-системах и Windows NT;

WMPI - бесплатная реализация MPI для Windows;

LAM/MPI - ещё одна бесплатная реализация MPI;

MPI/PRO for Windows NT - коммерческая реализация для Windows NT;

Intel MPI - коммерческая реализация для Windows / GNU/Linux;

HP-MPI - коммерческая реализация от HP;

SGI MPT - платная библиотека MPI от SGI;

Mvapich - бесплатная реализация MPI для Infiniband;

Open MPI - бесплатная реализация MPI, наследник LAM/MPI;

Oracle HPC ClusterTools - бесплатная реализация для Solaris SPARC/x86 и Linux на основе Open MPI.

3.2 MPICH

MPICH ("MPI Chameleon") - это одна из самых первых разработанных библиотек MPI. На ее базе было создано большое количество других библиотек как OpenSource, так и коммерческих. В настоящее время существует две ветви исходных кодов: MPICH1и MPICH2. Разработка ветви MPICH1 заморожена. Ветвь MPICH2 активно разрабатывается в Арагонской лаборатории, с участием IBM, Cray, SiCortex, Microsoft, Intel, NetEffect, Qlogic, Myricom, Ohio state university, UBC.

MPICH2 - легко портируемая быстрая реализация стандарта MPI. Отличительные особенности:

Поддерживает различные вычислительные и коммуникационные платформы, включая общедоступные кластеры (настольные системы, системы с общей памятью, многоядерные архитектуры), высокоскоростные сети (Ethernet 10 ГБит/с, InfiniBand, Myrinet, Quadrics) и эксклюзивные вычислительные системы (Blue Gene, Cray, SiCortex).

Модульная структура для создания производных реализаций, предоставляющая широкие возможности для исследования технологии MPI.

В дальнейшем будем предполагать, что имеется сеть из нескольких компьютеров (будем называть их вычислительными узлами), работающих под управлением Windows. Для учебных целей можно запускать все вычислительные процессы и на одном компьютере. Если компьютер одноядерный, то, естественно, прирост быстродействия не получится, - только замедление. В качестве среды разработки использовалась IDE Microsoft Visual Studio 2008 C++ Express Edition. Microsoft Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Microsoft Visual Studio 2008 C++ Express Edition - легковесная среда разработки, представляющая собой урезанную версию Visual Studio. В отличие от полной версии, такая среда предназначена для языка программирования C/C++. Она включает в себя небольшой набор инструментов, в отличие от полных версий: отсутствует дизайнер классов и многие другие инструменты, а также поддержка плагинов и удалённых баз данных в дизайнере данных. Компиляторы в 64-битный код также недоступны в Express редакциях. Microsoft позиционирует эту линейку IDE для студентов. Программу, использующую MPI, и предназначенную для запуска на нескольких вычислительных узлах, будем называть MPI-программой.

3.3 Принципы работы MPICH

MPICH для Windows состоит из следующих компонентов:

Менеджер процессов smpd. exe, который представляет собой системную службу (сервисное приложение). Менеджер процессов ведёт список вычислительных узлов системы, и запускает на этих узлах MPI-программы, предоставляя им необходимую информацию для работы и обмена сообщениями;

Заголовочные файлы (. h) и библиотеки стадии компиляции (. lib), необходимые для разработки MPI-программ;

Библиотеки времени выполнения (. dll), необходимые для работы MPI-программ;

Дополнительные утилиты (. exe), необходимые для настройки MPICH и запуска MPI-программ.

Все компоненты, кроме библиотек времени выполнения, устанавливаются по умолчанию в папку C: \Program Files\MPICH2; dll-библиотеки устанавливаются в C: \Windows\System32.

Менеджер процессов является основным компонентом, который должен быть установлен и настроен на всех компьютерах сети (библиотеки времени выполнения можно, в крайнем случае, копировать вместе с MPI-программой). Остальные файлы требуются для разработки MPI-программ и настройки "головного" компьютера, с которого будет производиться их запуск.

Менеджер работает в фоновом режиме и ждёт запросов к нему из сети со стороны "головного" менеджера процессов (по умолчанию используется сетевой порт 8676). Чтобы обезопасить себя от хакеров и вирусов, менеджер требует пароль при обращении к нему.

Когда один менеджер процессов обращается к другому менеджеру процессов, он передаёт ему свой пароль.

Отсюда следует, что нужно указывать один и тот же пароль при установке MPICH на компьютеры сети.

Рис.4. Схема работы MPICH на кластере.

В современных кластерах сеть передачи данных обычно отделяется от управляющей сети.

Запуск MPI-программы производится следующим образом (рис.4):

Пользователь с помощью программы Mpirun (или Mpiexec, при использовании MPICH2 под Windows) указывает имя исполняемого файла MPI-программы и требуемое число процессов. Кроме того, можно указать имя пользователя и пароль: процессы MPI-программы будут запускаться от имени этого пользователя.

Mpirun передаёт сведения о запуске локальному менеджеру процессов, у которого имеется список доступных вычислительных узлов.

Менеджер процессов обращается к вычислительным узлам по списку, передавая запущенным на них менеджерам процессов указания по запуску MPI-программы.

Менеджеры процессов запускают на вычислительных узлах несколько копий MPI-программы (возможно, по несколько копий на каждом узле), передавая программам необходимую информацию для связи друг с другом.

Очень важным моментом здесь является то, что перед запуском MPI-программа не копируется автоматически на вычислительные узлы кластера. Вместо этого менеджер процессов передаёт узлам путь к исполняемому файлу программы точно в том виде, в котором пользователь указал этот путь программе Mpirun. Это означает, что если, например, запускается программа C: \program. exe, то все менеджеры процессов на вычислительных узлах будут пытаться запустить файл C: \program. exe. Если хотя бы на одном из узлов такого файла не окажется, произойдёт ошибка запуска MPI-программы.

Чтобы каждый раз не копировать вручную программу и все необходимые для её работы файлы на вычислительные узлы кластера, обычно используют общий сетевой ресурс. В этом случае пользователь копирует программу и дополнительные файлы на сетевой ресурс, видимый всеми узлами кластера, и указывает путь к файлу программы на этом ресурсе. Дополнительным удобством такого подхода является то, что при наличии возможности записи на общий сетевой ресурс запущенные копии программы могут записывать туда результаты своей работы.

Работа MPI-программы происходит следующим образом:

Программа запускается и инициализирует библиотеку времени выполнения MPICH путём вызова функции MPI_Init.

Библиотека получает от менеджера процессов информацию о количестве и местоположении других процессов программы, и устанавливает с ними связь.

После этого запущенные копии программы могут обмениваться друг с другом информацией посредством библиотеки MPICH. С точки зрения операционной системы библиотека является частью программы (работает в том же процессе), поэтому можно считать, что запущенные копии MPI-программы обмениваются данными напрямую друг с другом, как любые другие приложения, передающие данные по сети.

Консольный ввод-вывод всех процессов MPI-программы перенаправляется на консоль, на которой запущена Mpirun. Насколько я понимаю, перенаправлением ввода-вывода занимаются менеджеры процессов, так как именно они запустили копии MPI-программы, и поэтому могут получить доступ к потокам ввода-вывода программ.

Перед завершением все процессы вызывают функцию MPI_Finalize, которая корректно завершает передачу и приём всех сообщений, и отключает MPICH.

Все описанные выше принципы действуют, даже если вы запускаете MPI-программу на одном компьютере.

3.4 Установка MPICH в Windows

Необходимо загрузить последнюю версию MPICH2 со страницы http://www.?mcs. ?anl. ?gov/?research/?projects/?mpich2/?downloads/?index. php? ? s=downloads. Загруженный инсталлятор необходимо запустить с привилегиями администратора на всех компьютерах, на которых планируется запуск MPI-программ.

Во время установки необходимо ввести пароль для доступа к менеджеру процессов SMPD. Он должен быть одинаковый на всех компьютерах:

Рис.5. Указание пароля для доступа к менеджеру процессов

В окне указания пути установки рекомендуется оставить каталог по умолчанию и выбрать пункт "Everyone":

Рис.6. Указание пути установки

Если Брандмауэр Windows спросит, разрешить ли доступ в сеть программе smpd. exe, то необходимо "Разрешить".

MPICH2 правильно установлен на ваш компьютер.

Однако, прежде чем переходить к настройке, обязательно следует проверить две вещи: запущена ли служба "MPICH2 Process Manager", и разрешён ли этой службе доступ в сеть.

Рис.7. Служба "MPICH2 Process Manager" в списке служб

Рис.8. Программы MPICH в списке исключений брандмауэра

Если какая-то из перечисленных программ отсутствует в списке разрешённых программ, то вы необходимо добавить её вручную. Соотвественно, C: \?program files\?mpich2\?bin\?mpiexec. exe, если отсутствует "Process launcher for MPICH2 applications", и C: \?program files\?mpich2\?bin\?smpd. exe, если отсутствует "Process manager service for MPICH2 applications".

3.5 Настройка MPICH

Рассмотрим настройку MPICH на примере конфигурации из двух компьютеров, объединённых в локальную сеть: один компьютер имеет сетевое имя MrBig и IP-адрес 192.168.1.4, другой - имя Small и адрес 192.168.1.3 MPI-программы планируется запускать с компьютера MrBIG. На обоих компьютерах установлены русскоязычные версии Windows. На MrBIG установлена Windows Vista, на Small - Windows XP. Каждый компьютер имеет двухъядерный процессор.

Прежде всего необходимо создать на всех компьютерах пользователя с одинаковым именем и паролем; от имени этого пользователя будут запускаться MPI-программы.

Wmpiregister

Как уже было сказано ранее, любое действие система MPICH выполняет от указанного имени пользователя.

Для того, чтобы спрашивать имя пользователя и пароль, используется программа Wmpiregister. Проблема в том, что имя пользователя и пароль спрашиваются достаточно часто.

Для того, чтобы этого избежать, Wmpiregister может сохранять имя пользователя и пароль в реестре Windows.

Рис.9. Программа Wmpiregister

"Cancel" - закрыть программу без выполнения какого-либо действия.

"OK" - передать введённые имя пользователя и пароль вызывающей программе.

"Remove" - нажатие этой кнопки удаляет сохранённые ранее имя пользователя и пароль из реестра Windows.

"Register" - сохраняет имя пользователя и пароль в реестре.

Wmpiconfig

Если все предыдущие шаги сделаны правильно, то в поле "version" в левой колонке таблицы будет написана версия установленного менеджера процессов (рис.10).

Рис.10. Программа Wmpiconfig

Wmpiconfig предназначена для настройки менеджеров процессов на текущем компьютере и других компьютерах сети. Для этого она подсоединяется к менеджерам процессов на выбранных компьютерах, читает имеющиеся у них настройки, и сообщает им новые настройки, если нужно. Элементы управления программы Wmpiconfig выполняют следующие действия:

Слева-внизу имеется список компьютеров, с которыми работает программа настройки. Имя компьютера на белом фоне означает, что не было попыток связаться с этим компьютером; зелёный фон означает, что связь произведена успешно; серый фон означает, что при установлении связи возникла ошибка. Удалить компьютер из списка можно клавишей Del. Следует иметь в виду, что этот список предназначен только для удобства настройки, и не имеет никакого отношения к списку компьютеров, на которых будет запущена MPI-программа.

Кнопка "Get Hosts" получает список компьютеров в заданном домене или рабочей группе (задаётся в выпадающем списке "Domain"). Полученный список заменяет имеющийся список компьютеров или, если нажата кнопка "+", добавляет компьютеры к текущему списку.

Кнопка "Scan Hosts" получает настройки со всех компьютеров списка; кнопка "Scan for Versions" получает только номера версий.

Кнопка "Get Settings" получает текущие настройки того компьютера, имя которого введено в поле ввода "Host". При выборе компьютера в списке компьютеров его имя автоматически вводится в поле "Host". Если нажата кнопка "Click", то настройки будут получены автоматически при выборе компьютера из списка.

Справа в окне расположена таблица настроек. Пустое поле означает, что используется настройка по умолчанию, указанная во втором столбце. Настройки, предназначенные к изменению, следует отмечать установкой галочки слева.

Кнопка "Apply" применяет выделенные галочкой настройки к тому компьютеру, имя которого находится в поле "Host". Кнопка "Apply All" применяет настройки ко всем компьютерам списка.

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.