DVM-система
разработки параллельных программ
Руководство по
установке
- дата последнего обновления 11.11.03 -
Содержание
1 Установка DVM-системы в OC Windows 1.1
Установка системы
1.2
Установка бинарного варианта DVM-системы
1.3
Проблемы, возникающие при установке DVM-системы
1.3.1
Устройство не готово при чтении
1.3.2
Недостаточно памяти для переменных среды
2
Установка DVM-системы в OC UNIX
3 Проверка правильности установки DVM-системы
4 Запуск демонстрационных программ
DVM-система поставляется в двух вариантах: в виде исходных текстов (файл dvmNNN.tar.gz) и в бинарном виде - в виде готовых программ и библиотек (файл dvmNNN_win.zip). NNN в имени файла - номер версии системы. В первом случае при установке осуществляется компиляция всех компонентов системы, во втором - только настройка на конфигурацию компьютера. Различные версии системы можно найти на сайте www.keldysh.ru/dvm.
Для установки DVM-системы необходимы:
Для установки варианта DVM-системы в виде исходных текстов выполните следующие шаги.
Для установки
MPICHWIN создайте директорию (например, С:\MPICHWIN), перепишите туда файл mpichwin.zip и распакуйте его.В результате будут созданы следующие поддиректории и файлы:
include\ |
- include-файлы; |
lib\ |
- библиотека MPI; |
copyright* |
- лицензионные соглашения. |
При последующих установках новых версий DVM-системы (если это не оговорено особо в данной инструкции) этот шаг можно опустить.
dvmNNN.tar.gz |
- DVM-система в виде исходных текстов; |
dvmUSRrhtm.tar.gz |
- документация пользователя на русском языке; |
dvmSYSrhtm.tar.gz |
- документация разработчика на русском языке; |
dvmUSRehtm.tar.gz |
- документация пользователя на английском языке; |
dvmSYSehtm.tar.gz |
- документация разработчика на английском языке; |
В результате будут созданы следующие поддиректории и файлы
:
dvm_sys\ |
||
cdvm\ |
- конвертор C-DVM; |
|
driver\ |
- служебные программы DVM-системы; |
|
examples\ |
- демонстрационные программы; |
|
fdvm\ |
- конвертор Fortran-DVM; |
|
platforms\ |
- наборы параметров для конкретных платформ; |
|
pppa\ |
- анализатор производительности DVM-программ; |
|
predictor\ |
- предсказатель производительности DVM-программ; |
|
rts\ |
- система поддержки DVM-программ; |
|
copyright |
- лицензионные соглашения; |
|
dvmclean* |
- программы очистки директорий DVM-системы; |
|
dvmcleanall* |
- программы деинсталляции DVM-системы; |
|
dvminstall* |
- программы инсталляции DVM-системы; |
|
makefile* |
- файлы поддержки инсталляции и деинсталляции; |
|
win_size_5.txt |
- контрольный файл разархивирования. |
Программа распаковки должна обеспечить представление текстовых файлов в формате
Windows. Контроль за этим осуществляется с помощью файла win_size_5.txt – его размер в среде Windows после распаковки должен быть равен 5 байт. В противном случае примените другой инструмент для разархивирования.Если настройка на компиляторы и на
SETVARSVC и скорректируйте ее значение. Эта переменная задает полное имя программы, устанавливающей переменные среды С (С++) компилятора;
- Раскомментируйте одну из строк, определяющих переменную
Замечание1.
Если ни одна из переменных SETVARSVC и SETVARSFTN не задана, то программа установки пытается определить наличие компиляторов (известных ей) в стандартных местах (на диске С). Начинается поиск с компиляторов, имеющих наибольший номер версии. В случае успешного поиска выдается соответствующая информация. Если не обнаружен компилятор с языка Fortran, то выдается соответствующее сообщение и установка может быть продолжена для работы без Fortran-DVM программ. Если не обнаружен компилятор с языка Си, то выдается соответствующее сообщение и установка прекращается.Замечание2. Компиляция предиктора возможна только компиляторами, удовлетворяющими стандарту языка С++ (ISO/IEC14882 “Standard for the C++ programming language”), ратифицированному в августе 1998г. Например, это могут быть компиляторы версий Microsoft Visual C 5.0 и выше, GNU C++ версии 2.8.1 и выше и др. При работе с версией Microsoft Visual 4.0 компиляция предиктора невозможна, поэтому ее следует отключить, закомментировав в файле dvm_sys\makefile.win три строки:
@cd predictor
@$ (MAKE) ………….all
@cd ..
Если предиктор необходим, то следует произвести установку бинарного варианта DVM-системы (см. ниже).
dvminstall.bat
В случае ее успешного выполнения на экран будет выдано сообщение:
bin\ |
- |
выполняемые файлы DVM-системы; |
demo\ |
- |
копия демонстрационных программ для проверки правильности установки DVM-системы; |
lib\ |
- |
библиотека программ системы поддержки; |
par\ |
- |
параметры системы поддержки; |
user\ |
- |
файлы, копируемые в директории пользователей. |
Если при инсталляции
DVM-системы возникнут какие-то ошибки, то следует проанализировать файлы logfile.txt, которые появятся в поддиректориях \src директорий rts, cdvm, fdvm, driver, pppa, predictor.Теперь каждый пользователь может скопировать в свою директорию с DVM-программами все файлы из директории
dvm_sys\user и начинать работать с DVM-системой.
dvm_bin\ |
||
bin\ |
- выполняемые файлы DVM-системы; |
|
examples\ |
- демонстрационные программы DVM-системы; |
|
include\ |
- include-файлы DVM-системы; |
|
lib\ |
- библиотека программ системы поддержки; |
|
par\ |
- параметры системы поддержки; |
|
dvminstall.bat |
- программы инсталляции DVM-системы. |
|
dvminstall.bat
В случае ее успешного выполнения на экран будет выдано сообщение:
“DVM-system is successfully installed”
1.3.1 Устройство не готово при чтении
Если при инсталляции DVM-системы на экране после сообщения:
Setting environment for Micrsoft Visual C++ tools
появится сообщение:
Устройство не готово при чтении: диск <имя CD_ROM-устройства>
то это означает, что Micrsoft Visual C++ при своей работе пытается использовать компакт-диск. Для отключения CD_ROM-устройства необходимо в файле
…\Program Files\DevStudio\VC\bin\vcvars32.bat
закомментировать или удалить строку
set vcsource=D:\DEVSTUDIO
и заново выполнить команду инсталляции DVM-системы.
1.3.2 Недостаточно памяти для переменных средыВозможно, во время первой инсталляции DVM-системы или во время выполнения DVM-программы на экране появится сообщение:
“Недостаточно памяти для переменных
среды”
(“Out of environment space”)
В этом случае следует увеличить эту память одним из трех следующих способов (3072 - минимальный размер памяти для переменных среды DVM-системы):
Свойства | -> | Память | -> | Переменные среды | = 3072 |
Свойства | -> | Память | -> | Переменные среды | = 3072 |
Рекомендуется использовать первые два способа, т.к. это нужно проделать только один раз.
2. Установка DVM-системы в OC UNIXDVM-система предполагает наличие двух машин - инструментальной (хост-компьютера
) и параллельной. В качестве инструментальной может выступать один из узлов параллельной машины. На инструментальной машине осуществляется подготовка и запуск на выполнение параллельных программ, анализ и прогнозирование выполнения параллельной программы.Установка
DVM-системы выполняется на инструментальной машине в выделенной DVM-директории и состоит из подготовкиДля установки DVM-системы необходимы:
Для установки DVM-системы выполните следующие шаги.
dvmNNN.tar.gz |
- DVM-система; |
dvmUSRrhtm.tar.gz |
- документация пользователя на русском языке; |
dvmSYSrhtm.tar.gz |
- документация разработчика на русском языке; |
dvmUSRehtm.tar.gz |
- документация пользователя на английском языке; |
dvmSYSehtm.tar.gz |
- документация разработчика на английском языке; |
gunzip -c dvmNNN.tar | tar xf -
В результате будут созданы следующие поддиректории и файлы:
dvm_sys/ |
||
cdvm/ |
- конвертор C-DVM; |
|
driver/ |
- служебные программы DVM-системы; |
|
examples/ |
- демонстрационные программы; |
|
fdvm/ |
- конвертор Fortran-DVM; |
|
platforms/ |
- наборы параметров для конкретных платформ; |
|
pppa/ |
- анализатор производительности DVM-программ; |
|
predictor/ |
- предсказатель производительности DVM-программ; |
|
rts/ |
- система поддержки DVM-программ; |
|
copyright |
- лицензионные соглашения; |
|
dvmclean* |
- программы очистки директорий DVM-системы; |
|
dvmcleanall* |
- программы деинсталляции DVM-системы; |
|
dvminstall* |
- программы инсталляции DVM-системы; |
|
makefile* |
- файлы поддержки инсталляции и деинсталляции. |
CC – C
компилятор для хост-компьютера;
CXX – C++ компилятор для
хост-компьютера;
LINKER - линковщик для хост-компьютера;
MPI_BIN – директория с
командами вызова компиляторов и запуска
программ для параллельной машины;
PCC – C компилятор для
параллельной машины;
PFORT – Fortran компилятор для
параллельной машины;
PLINKER – линковщик C
программ для параллельной машины;
PFLINKER – линковщик Fortran
программ для параллельной машины;
lm - подключение
математических библиотек;
Par – утилита для создания
библиотек для параллельной машины;
dvmrun – команда (или скрипт)
для запуска DVM-программ
(см. ниже Замечание 3);
MPI_INC – директория с include-файлами
MPI-библиотеки;
MPI_LIB – библиотечные
файлы MPI.Замечание 1.
Замечание 1.
Параметры задаются в формате команды
Замечание 2.
Замечание 3.
- формат команды запуска (например parsytec.run);
- наличие планировщика для постановки задач в очередь на исполнение и особенности его работы (например
runmpi.all);- особенности работы с распределенной файловой системой (
NFS) (например soliton.run);- реализации
MPI (mpich, lam) (например runmpich, runlam);- необходимость формирования файла, описывающего задание на выполнение (например
run1000.mpi).
Эти скрипты находятся в директории
dvm_sys/driver/src. Их имена указаны в файлах параметров для соответствующих платформ (см. Замечание 4), как значения переменной dvmrun. В процессе инсталяции скрипт, указанный в переменной dvmrun копируется в директорию dvm_sys/bin, откуда и будет выполняться при запуске DVM-программ.При установке
DVM-системы на новой платформе возможны следующие варианты организации запуска DVM-программ:
- Переменной dvmrun присваивается значение пусто ( setenv dvmrun ). В этом случае для запуска DVM-программы сначала должна быть выполнена команда dvm run <grid> , по которой будут созданы необходимые файлы, а затем запускать DVM-программу, как запускается MPI-программа на данной установке. (Здесь <grid> - виртуальная решетка процессоров, на которой должна выполняться DVM-программа). Необходимо иметь ввиду, что в текущей директории (где будет выполнятся программа) должны быть файлы, сформированные командой dvm run <grid>.
- В переменной
dvmrun задается команда запуска MPI-программ для данной установки с требуемыми опциями. В этом случае, если значение переменной dvmrun задано как
setenv dvmrun “mpirun [mpi_options] –np ”
то при запуске программы jac2d командой
dvm run 4 2 [cur_options] jac2d [args]
будет выполнено
mpirun [mpi_options] –np 8 [cur_options] jac2d [args]- В переменной
dvmrun задается один из скриптов (возможно подкорректированный), имеющийся в DVM-системе и/или находящийся в директории dvm_sys/driver/src.- Пишется новый скрипт (с учетом всего выше изложенного). В этом случае в переменной
dvmrun нужно либо указать его полное имя, либо простое, но разместить его в доступном для исполнения месте (директория должна присутствовать в path).
В случаях 2, 3, 4 запуск
DVM-программ осуществляется стандартным образом, как описано в соответствующих документах по DVM-системе.Замечание 4.
В поддиректории
platforms находятся файлы, содержащие значения параметров для конкретных платформ, на которых DVM-система была установлена или апробирована. Для установки DVM-системы на такой платформе достаточно в файле dvminstall указать имя соответствующего файла с параметрами в командеsetenv PLATFORM <имя файла>
(или раскомментировать соответствующую строку, имеющуюся в dvminstall). В этом случае, все зависящие от платформы переменные будут скорректированы в соответствии с имеющимися в указанном файле значениями.
dvminstall
В случае ее успешного выполнения на экран будет выдано сообщение:
bin/ |
- |
выполняемые файлы DVM-системы; |
demo/ |
- |
копия демонстрационных программ для проверки правильности установки DVM-системы; |
lib/ |
- |
библиотека программ системы поддержки; |
par/ |
- |
параметры системы поддержки; |
user/ |
- |
файлы, копируемые в директории пользователей. |
Если при ее выполнении возникнут какие-то ошибки, то следует проанализировать файлы
logfile.txt, которые появятся в поддиректориях /src директорий rts, cdvm, fdvm, driver, pppa, predictor.Теперь каждый пользователь может скопировать в свою директорию с DVM-программами все файлы из директории
dvm_sys/user и начинать работать с DVM-системой.Для проверки правильности установки DVM-системы рекомендуется сначала запустить стандартную процедуру тестирования. Для этого в директории
demo надо выполнить команду:alltest
Эта команда выполняет следующие шаги:
Названия шагов и результаты сравнения выдаются пользователю на экран. Если результаты на всех шагах совпали, на экран выдается сообщение:
… end of testing DVM …
означающее, что DVM-система установлена правильно.
Если же некоторый шаг закончился с ошибкой, то на экран выдается приглашение, позволяющее пользователю либо прервать (Ctrl+C), либо продолжить (любая клавиша) выполнение теста.
Если результаты на каком-либо шаге не совпали, необходимо, прежде всего, проверить правильность осуществления всех шагов данной инструкции. Подробную информацию об используемых стандартной тестовой процедурой режимах запуска DVM-программ, а также обо всех диагностических сообщениях DVM-системы можно найти в следующих документах:
Директория
demo содержит набор программ на языках C-DVM и Fortran-DVM, демонстрирующих возможности DVM для реализации различных алгоритмов:gauss_c.cdv, gausf.fdv, gaus_wb.cdv, gauswh.fdv
– алгоритм метода исключения Гаусса;
jac1d.cdv, jac.fdv, jac2d.cdv, jacas.fdv, jacross.cdv, sor.fdv –
алгоритм Якоби;
mgrid.cdv – многосеточная
задача.
redb.cdv, redbf.fdv – "красно-черная"
последовательная верхняя релаксация;
tskcdv, tsk_lp.cdv, tsk_ra.cdv, task2j.fdv, tasks.fdv, taskst.fdv
– многообластные задачи.
(см. Fortran-DVM. Описание
языка. Приложение 2. Примеры программ.
C-DVM. Описание языка.
Приложение 1. Примеры программ.)
В директории
demo можно запустить любую из перечисленных программ. Например для запуска jac1d.cdv и jac.fdv нужно выполнить команды:dvm c jac1d.cdv - компиляция jac1d.cdv
(C-DVM);
dvm run 2 2 jac1d - выполнение jac1d
на матрице процессоров 2х2;
dvm f jac.fdv - компиляция jac.fdv
(Fortran-DVM);dvm run 4 1 jac -
выполнение jac1d на
матрице процессоров 4х1.
Команда alldemo последовательно выполняет все демонстрационные программы в различных отладочных режимах.