DVM-система разработки параллельных программ
Руководство по установке

* Сентябрь, 2004 *


- дата последнего обновления 25.02.05 -


Содержание

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
Запуск демонстрационных программ
 


1. Установка DVM-системы в OC Windows

1.1 Установка системы

DVM-система поставляется в двух вариантах: в виде исходных текстов (файл dvmNNN.tar.gz) и в бинарном виде - в виде готовых программ и библиотек (файл dvmNNN_win.zip). NNN в имени файла - номер версии системы. В первом случае при установке осуществляется компиляция всех компонентов системы, во втором - только настройка на конфигурацию компьютера. Различные версии системы можно найти на сайте www.keldysh.ru/dvm.

Для установки DVM-системы необходимы:

Для установки варианта DVM-системы в виде исходных текстов выполните следующие шаги.

  1. Установите одну из реализаций стандарта MPI. Если у Вас подразумевается работа с DVM-системой на одном компьютере (разработка и отладка DVM-программ), то можно воспользоваться имеющейся на нашем сайте (www.keldysh.ru/dvm) реализацией MPICHWIN (файл mpichwin.zip). Для параллельной работы на нескольких узлах нужно иметь реализацию MPI для сетевой работы. DVM-система проверялась на MP-MPICH 1.3.0a для Windows (http://www.lfbs.rwth-aachen.de/mp-mpich/download/ ) и HPVM1.9.
  2. Для установки MPICHWIN создайте директорию (например, С:\MPICHWIN), перепишите туда файл mpichwin.zip и распакуйте его.

    В результате будут созданы следующие поддиректории и файлы:

    include\

    - include-файлы;

    lib\

    - библиотека MPI;

    copyright*

    - лицензионные соглашения.

    При последующих установках новых версий DVM-системы (если это не оговорено особо в данной инструкции) этот шаг можно опустить.

  3. Создайте директорию для версии DVM-системы (например, DVM_NNN, где NNN – номер выбранной Вами версии);
  4. Перепишите туда необходимые файлы из следующего списка:
  5. dvmNNN.tar.gz

    - DVM-система в виде исходных текстов;

    dvmUSRrhtm.tar.gz

    - документация пользователя на русском языке;

    dvmSYSrhtm.tar.gz

    - документация разработчика на русском языке;

    dvmUSRehtm.tar.gz

    - документация пользователя на английском языке;

    dvmSYSehtm.tar.gz

    - документация разработчика на английском языке;

  6. Распакуйте файл dvmNNN.tar.gz;
  7. В результате будут созданы следующие поддиректории и файлы:

    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 байт. В противном случае примените другой инструмент для разархивирования.

  8. Распакуйте один или несколько файлов с документацией, в результате чего дополнительно появится поддиректория dvm_sys\doc.
  9. Выполните настройку на установленные на Вашем компьютере компиляторы и MPI-библиотеку. Этот пункт можно пропустить, если Вы используете MPI-библиотеку MPICHWIN, находящуюся на C:\MPICHWIN и известные программе установки компиляторы. Список и стандартное местоположение этих компиляторов определены в файле dvminstall.bat в виде закомментаренных строк, определяющих переменные SETVARSVC (для С-компилятора) и SETVARSFTN (для Fortran-компилятора).

Если настройка на компиляторы и на MPI-библиотеку необходима, то в файле dvminstall.bat

Замечание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-системы (см. ниже).

  1. В директории dvm_sys выполните команду инсталляции DVM-системы:
  2. dvminstall.bat

    В случае ее успешного выполнения на экран будет выдано сообщение:
    “DVM-system is successfully installed”

    и в директории
    dvm_sys появятся следующие поддиректории (помимо вышеперечисленных):

    bin\

    -

    выполняемые файлы DVM-системы;

    demo\

    -

    копия демонстрационных программ для проверки правильности установки DVM-системы;

    lib\

    -

    библиотека программ системы поддержки;

    par\

    -

    параметры системы поддержки;

    user\

    -

    файлы, копируемые в директории пользователей.

    Если при инсталляции DVM-системы возникнут какие-то ошибки, то следует проанализировать файлы logfile.txt, которые появятся в поддиректориях \src директорий rts, cdvm, fdvm, driver, pppa, predictor.

  3. DVM-система готова к использованию!

Теперь каждый пользователь может скопировать в свою директорию с DVM-программами все файлы из директории dvm_sys\user и начинать работать с DVM-системой.

1.2 Установка бинарного варианта DVM-системы
  1. Перепишите файл dvmNNN_win.zip в созданную Вами директорию DVM_NNN и распакуйте его. В результате будут созданы следующие поддиректории и файлы:
  2. dvm_bin\

    bin\

    - выполняемые файлы DVM-системы;

    examples\

    - демонстрационные программы DVM-системы;

    include\

    - include-файлы DVM-системы;

    lib\

    - библиотека программ системы поддержки;

    par\

    - параметры системы поддержки;

    dvminstall.bat

    - программы инсталляции DVM-системы.

  3. Выполните настройку на установленные на Вашем компьютере компиляторы (см. шаг 6 из п.1.1).
  4. В директории dvm_bin выполните команду инсталляции DVM-системы:

dvminstall.bat

В случае ее успешного выполнения на экран будет выдано сообщение:

“DVM-system is successfully installed”

1.3 Проблемы, возникающие при установке DVM-системы

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 UNIX

DVM-система предполагает наличие двух машин - инструментальной (хост-компьютера ) и параллельной. В качестве инструментальной может выступать один из узлов параллельной машины. На инструментальной машине осуществляется подготовка и запуск на выполнение параллельных программ, анализ и прогнозирование выполнения параллельной программы.

Установка DVM-системы выполняется на инструментальной машине в выделенной DVM-директории и состоит из подготовки

Для установки DVM-системы необходимы:

Для установки DVM-системы выполните следующие шаги.

  1. Выберите или создайте директорию для данной (NNN-ой) версии DVM-системы (например, DVM_NNN);
  2. Перепишите туда необходимые файлы из следующего списка:
  3. dvmNNN.tar.gz

    - DVM-система;

    dvmUSRrhtm.tar.gz

    - документация пользователя на русском языке;

    dvmSYSrhtm.tar.gz

    - документация разработчика на русском языке;

    dvmUSRehtm.tar.gz

    - документация пользователя на английском языке;

    dvmSYSehtm.tar.gz

    - документация разработчика на английском языке;

     

  4. Распакуйте файл dvmNNN.tar.gz, выполнив, например, команду:
  5. 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*

    - файлы поддержки инсталляции и деинсталляции.

     

  6. Аналогично распакуйте один или несколько файлов с документацией, в результате чего дополнительно появится поддиректория dvm_sys/doc.
  7. В файле dvminstall скорректируйте параметры, определяющие вызовы требуемых инструментов и компиляторов для хост-компьютера и параллельной машины:

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.
Параметры задаются в формате команды
setenv <ПАРАМЕТР> <значение>
Если значение состоит из нескольких слов, разделенных пробелами, то все значение должно быть взято в кавычки.

Замечание 2.
Если вызов компиляторов и линкеров для параллельной машины (переменные
PCC, PFORT, PLINKER, PFLINKER) осуществляется стандартными скриптами или программами, обеспечивающими настройку на нужную версию MPI-библиотеки (например mpicc, mpif77), то переменные MPI_LIB, MPI_INC корректировать не требуется. Переменная MPI_BIN может быть использована как префикс при задании переменных PCC, PFORT, PLINKER, PFLINKER, а также в скрипте запуска DVM-программ.

Замечание 3.
После компиляции
DVM-программа представляет собой обычную MPI-программу, но требующую для работы некоторую входную информацию. Запуск DVM-программы командой dvm run … состоит из двух этапов. На первом этапе готовится входная информация, необходимая для выполнения DVM-программы. На втором этапе выполняется команда (или скрипт), заданная в переменной dvmrun. В качестве первого параметра этой команде (или скрипту) передается количество процессоров, необходимых для выполнения. Таким образом, если на первом этапе выполняются действия (готовится входная информация), необходимые для выполнения DVM-программы на любой платформе, то на втором должна учитываться специфика запуска программ на конкретной установке.
В
DVM-системе имеются скрипты, учитывающие такие особенности систем запуска программ для конкретных платформ, как

Эти скрипты находятся в директории dvm_sys/driver/src. Их имена указаны в файлах параметров для соответствующих платформ (см. Замечание 4), как значения переменной dvmrun. В процессе инсталяции скрипт, указанный в переменной dvmrun копируется в директорию dvm_sys/bin, откуда и будет выполняться при запуске DVM-программ.

При установке DVM-системы на новой платформе возможны следующие варианты организации запуска DVM-программ:

  1. Переменной dvmrun присваивается значение пусто ( setenv dvmrun ). В этом случае для запуска DVM-программы сначала должна быть выполнена команда dvm run <grid> , по которой будут созданы необходимые файлы, а затем запускать DVM-программу, как запускается MPI-программа на данной установке. (Здесь <grid> - виртуальная решетка процессоров, на которой должна выполняться DVM-программа). Необходимо иметь ввиду, что в текущей директории (где будет выполнятся программа) должны быть файлы, сформированные командой dvm run <grid>.
  2. В переменной 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]
  3. В переменной dvmrun задается один из скриптов (возможно подкорректированный), имеющийся в DVM-системе и/или находящийся в директории dvm_sys/driver/src.
  4. Пишется новый скрипт (с учетом всего выше изложенного). В этом случае в переменной dvmrun нужно либо указать его полное имя, либо простое, но разместить его в доступном для исполнения месте (директория должна присутствовать в path).

В случаях 2, 3, 4 запуск DVM-программ осуществляется стандартным образом, как описано в соответствующих документах по DVM-системе.

Замечание 4.

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

setenv PLATFORM <имя файла>

(или раскомментировать соответствующую строку, имеющуюся в dvminstall). В этом случае, все зависящие от платформы переменные будут скорректированы в соответствии с имеющимися в указанном файле значениями.

  1. В директории dvm_sys выполните команду
  2. dvminstall

    В случае ее успешного выполнения на экран будет выдано сообщение:
    “DVM-system is successfully installed”

    и помимо вышеперечисленных в директории
    dvm_sys появятся следующие поддиректории:

    bin/

    -

    выполняемые файлы DVM-системы;

    demo/

    -

    копия демонстрационных программ для проверки правильности установки DVM-системы;

    lib/

    -

    библиотека программ системы поддержки;

    par/

    -

    параметры системы поддержки;

    user/

    -

    файлы, копируемые в директории пользователей.

    Если при ее выполнении возникнут какие-то ошибки, то следует проанализировать файлы logfile.txt, которые появятся в поддиректориях /src директорий rts, cdvm, fdvm, driver, pppa, predictor.

  3. DVM-система готова к использованию!

Теперь каждый пользователь может скопировать в свою директорию с DVM-программами все файлы из директории dvm_sys/user и начинать работать с DVM-системой.

3  Проверка правильности установки DVM-системы

Для проверки правильности установки DVM-системы рекомендуется сначала запустить стандартную процедуру тестирования. Для этого в директории demo надо выполнить команду:

alltest

Эта команда выполняет следующие шаги:

Названия шагов и результаты сравнения выдаются пользователю на экран. Если результаты на всех шагах совпали, на экран выдается сообщение:

… end of testing DVM …

означающее, что DVM-система установлена правильно.

Если же некоторый шаг закончился с ошибкой, то на экран выдается приглашение, позволяющее пользователю либо прервать (Ctrl+C), либо продолжить (любая клавиша) выполнение теста.

Если результаты на каком-либо шаге не совпали, необходимо, прежде всего, проверить правильность осуществления всех шагов данной инструкции. Подробную информацию об используемых стандартной тестовой процедурой режимах запуска DVM-программ, а также обо всех диагностических сообщениях DVM-системы можно найти в следующих документах:

4  Запуск демонстрационных программ

Директория 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 последовательно выполняет все демонстрационные программы в различных отладочных режимах.