Илья Аввакумов, Freepascal.ru

Введение. О чем эта статья.

Статья посвящена вопросу написания распределенных (параллельных) вычислений с использованием компилятора FreePascal (использовалась версия 2.0.1)

Проблема параллельных вычислений заинтересовала меня совсем не потому что это сейчас модно. Столкнулся с задачей, когда надо было сформировать (для дальнейнего анализа) большой массив данных. Хотелось уменьшить время вычислений имеющимися средствами. Оказывается, организовать параллельные вычисления с использованием моего любимого компилятора — вполне решаемая задача.

Стандартом для параллельных приложений для многопроцессорных вычислительных систем де-факто является MPI.

Идея MPI-программы такова: параллельная программа представляется в виде множества взаимодействующих (посредством коммуникационных процедур MPI) процессов.

Параллельные вычисления требуют

1. Разделения процессов

2. Взаимодействия между ними

MPI (Message Passing Interface) — стандарт на программный инструментарий для обеспечения связи между ветвями параллельного приложения.

В этой статье рассматривается MPICH (MPI CHameleon), свободно распространяемая реализация MPI. Использовалась версия MPICH 1.2.5 для Windows.

Установка и настройка MPICH.

MPICH для Windows требует

1. Windows NT4/2000/XP ( Professional или Server). Под Win9x/ME работать не станет!

2. Сетевое соединение по протоколу TCP/IP между машинами.

Сразу обговорю, что все примеры тестировались на двух машинах, объединенных в локальную сеть. Один компьютер (сетевое имя ILYA) — мой, а второй (сетевое имя EKATERINA) — жены.

Установка.

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

Для установки нужно

1. Скачать mpich.nt.1.2.5.src.exe (5278 Кб) или mpich.nt.1.2.5.src.zip (5248 Кб)

Либо с официальной страницы MPICH

http://www.mcs.anl.gov/mpi/mpich/download.html

Либо с ftp сервера ftp.mcs.anl.gov/pub/mpi/nt.

2. Если запустить exe файл, то после распаковки запустится интерактивная программа установки MPICH. Чтобы не утомлять себя выбором устанавливаемых компонент, удобнее установить MPICH в неинтерактивном режиме.

Для этого

а. Разархивируйте содержимое в общую папку (например, ILYAcommon)

b. Отредактируйте файл setup.iss

c. Строка

szDir=C:Program FilesMPICH

определяет каталог, куда установится MPICH. Это расположение можно изменить.

d. Строки

Component-count=7

Component-0=runtime dlls

Component-1=mpd

Component-2=SDK

Component-3=Help

Component-4=SDK.gcc

Component-5=RemoteShell

Component-6=Jumpshot

определяют число устанавливаемых компонент. Для главного компьютера (откуда запускается главный процесс) подходящие опции таковы

Component-count=4

Component-0=runtime dlls

Component-1=mpd

Component-2=SDK

Component-3=Help

Для простого компьютера (которому отводится только роль вычислителя) число компонент может быть сокращено до двух.

Component-count=2

Component-0=runtime dlls

Component-1=mpd

На каждом компьютере кластера выполнить команду установки в неинтерактивном режиме. В моем случае запуск программы установки таков:

>ILYAcommonsetup -s -f1ILYAcommonsetup.iss

После установки на каждом компьютере должна запуститься служба mpich_mpd (MPICH Daemon (C) 2001 Argonne National Lab). (смотрите рисунок)

Если был установлен компонент SDK (что необходимо сделать на том компьютере, откуда будет производиться запуск программ), то в каталоге MPICH (прописанном в пункте szDir) присутствуют подкаталоги SDK и SDK.gcc. Содержимое этих каталогов — библиотечные и заголовочные файлы для языков C, С++ и Fortran.

Каталог SDK предназначен для компиляторов MS VC++ 6.x и Compaq Visual Fortran 6.x, а каталог SDK.gcc — для компиляторов gcc и g77.

Настройка

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

Остановимся подробнее на каталоге mpdbin в директории MPICH. Содержимое каталога:

mpd.exe исполняемый файл службы mpich_mpd нужна
MPIRun.exe файл, осуществляющий запуск каждой MPI-программы. нужна
MPIRegister.exe программа для шифрования паролей при обмене данными по LAN. иногда полезна
MPDUpdate.exe программа для обновления библиотек MPI не нужна
MPIConfig.exe программа настройки хостов в кластере не нужна
guiMPIRun.exe GUI версия mpirun. не нужна
MPIJob.exe программа для управления MPI-процессами не нужна
guiMPIJob.exe GUI версия mpijob.exe не нужна

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

1. Запустить MPIConfig.exe (можно воспользоваться ссылкой в главном меню, она там должна быть)

2. Нажать на кнопку "Select"

3. В появившемся окне выбрать пункт меню "Action"—"Scan hosts"

4. Напротив имени каждой машины должна загореться пиктограмма "MPI" ( примерно вот так)

Модуль mpi на FreePascal.

Все вышеописанное относилось к установке собственно MPICH. Для того, чтобы прикрутить библиотеки MPICH к FreePascal, следует еще немножко поработать.

Cледует воспользоваться динамической библиотекой mpich.dll, которая располагается в системном каталоге (копируется туда при установке MPICH).


Информация о работе «Распределенные вычисления на FreePascal под Windows»
Раздел: Информатика, программирование
Количество знаков с пробелами: 22950
Количество таблиц: 10
Количество изображений: 0

0 комментариев


Наверх