Разработка и запуск на МВС-1000/16
параллельных программ на языках C-DVM и
Fortran-DVM
DVM-система, созданная в
Институте прикладной математики им. М.В.Келдыша
РАН, позволяет разрабатывать на языках C-DVM и
Fortran-DVM параллельные программы для ЭВМ
различной архитектуры и сетей ЭВМ.
При использовании языков C-DVM и
Fortran-DVM программист имеет только один
вариант программы и для последовательного
и для параллельного выполнения.
Эта программа, помимо описания
алгоритма обычными средствами языков Си
или Фортран 77, содержит правила
параллельного выполнения этого алгоритма.
Эти правила (DVM-указания) оформляются
синтаксически таким образом, что они
являются "невидимыми" для стандартных
компиляторов с последовательных языков Си
и Фортран и не препятствуют выполнению и
отладке DVM-программы на рабочих станциях
как обычной последовательной программы.
Компилятор переводит программу
на языке C-DVM (Fortran-DVM) в программу на
стандартном языке Cи (Фортран),
расширенную функциями системы поддержки
выполнения DVM-программ, которая для
организации межпроцессорного
взаимодействия использует стандартные
коммуникационные библиотеки (MPI, PVM, Router).
Отладка программ осуществляется
следующим образом.
Сначала программа отлаживается
на рабочей станции (или персональной ЭВМ)
как обычная последовательная
программа с использованием штатных
средств отладки. Затем на той же рабочей
станции программа пропускается в
специальных режимах для проверки DVM-указаний
и сравнения промежуточных результатов
ее параллельного выполнения с эталонными
результатами, полученными при ее
последовательном выполнении.
Для облегчения отладки
производительности служит специальный
инструмент (предиктор), позволяющий на
рабочей станции смоделировать выполнение
DVM-программы на параллельной ЭВМ и получить
информацию об основных характеристиках ее
эффективности.
Получить подробную информацию
о DVM-системе и загрузить ее (в виде
исходных текстов или библиотек
выполняемых программ) можно через Интернет
(http://www.keldysh.ru/dvm).
Вместе с системой поставляется набор
демонстрационных DVM-программ, а также
документация пользователя и разработчика (в
виде html-файлов и файлов Word97). Вопросы и
замечания следует отправлять по адресу
dvm@keldysh.ru.
Как следует из вышесказанного,
разработку DVM-программ для МВС-1000/16 можно
производить на рабочей станции или
персональной ЭВМ. К запуску программы на
МВС-1000/16 следует переходить после отладки
программы. Для этого требуется выполнить
следующие шаги.
- Зарегистрироваться в качестве
пользователя МВС-1000/16 - получить Login
имя и пароль.
- Установить на своем компьютере систему,
поддерживающую протокол ssh. (для OC Windows,
например - ftp://ftp.keldysh.ru/dvm-distr/ssh-scp/putty.exe
)
- Зайти с использованием этого протокола
на шлюз rsc2.kiam.ru (194.226.58.16 или 195.208.58.16).
- Создать директорию для своей программы
и войти в нее.
- Переписать в директорию свою программу
и ее начальные данные (с преобразованием
текстовых файлов в формат ОС UNIX). Для
этого можно использовать на шлюзе FTP (например,
оболочку Midnight Commander) или на своем
компьютере протокол секретного
копирования файлов scp. (для OC Windows,
например - ftp://ftp.keldysh.ru/dvm-distr/ssh-scp/pscp.exe
)
- Получить список установленных версий DVM-системы
(выполнить /home/admdvm/dvminit/dvminit) и
инициализировать одну из них (выполнить /home/admdvm/dvminit/dvminit
Nvers).
Замечание.
- Буквы L, m, r после номера версии
обозначают используемые
коммуникационные библиотеки (LAM-mpi, MPICH и
Router соответственно).
- Затранслировать программу
(dvm c <имя программы> или dvm f <имя
программы>).
Замечание.
- Здесь и далее при вызове
команды dvm подразумевается , что
текущая директория (.) задана в
переменной PATH, если это не так, то
необходимо вместо команды dvm
использовать ./dvm, либо в файле ~/.bash_profile
задать: PATH=/common/runmvs/bin:/common/mpich/bin:$PATH:.:
- Запустить программу на выполнение
(dvm run <матрица процессоров> [-maxtime
<максимальное время>] < имя программы
> [<параметры задачи>] ).
Замечания.
- Параметр <максимальное время>
задает максимальное время счета задачи.
Этот параметр является необязательным -
значение по умолчанию 30 минут.
- Параметр <матрица процессоров>
- задает размерность процессорной
решетки, на которой будет запущена
задача ( <n1> <n2>... <nK>). Задача
будет запущена на <n1>*<n2>*...*<nK>
процессорах.
- Если свободных процессоров
недостаточно и программа поставлена в
очередь на выполнение (Task "<имя_задачи>.<номер
задачи>" queued successfully), то можно ее
исключить из очереди (mqdel <имя задачи>.<номер
задачи>), опросить количество свободных
процессоров (mfree) и запустить задачу
повторно на меньшем числе процессоров.
Замечание.
- <имя задачи> - это <имя
программы>.<число процессоров>.<номер
запуска>. Поле <номер запуска> - это
число запусков программы на данном
числе процессоров из текущей директории.
- Получить характеристики эффективности
выполнения программы.
(dvm pa <имя задачи>.sts <имя файла с
характеристиками>).
Инструкции по использованию в OC
Windows программ putty и pscp,
реализующих протоколы ssh и scp, а
также по работе с оболочкой Midnight Commander,
которая предоставляет удобные возможности
создания и просмотра директорий, а также
просмотра и редактирования файлов, можно
прочитать по FTP (ftp://ftp.keldysh.ru/dvm-distr/ssh-scp/mvsUGr.doc)
Ниже приводится список
директив, полезных при запуске программ на
МВС-1000/16.
- Создание директории - mkdir <имя
директории>
- Определение текущей директории - pwd
- Вход в поддиректорию (смена текущей
директории) - cd <имя директории>
- Выход в родительскую директорию (смена
текущей директории) - cd ..
- Выдача на экран содержимого директории -
ls
- Выдача на экран содержимого текстового
файла (по частям) - more <имя файла>
- Получение информации о запущенных
пользователем задачах - mps [<имя
задачи>.<номер задачи>]
- Завершение запущенной задачи - mkill
[<имя задачи>.<номер задачи>]
- Опросить количество свободных
процессоров - mfree
- Просмотр очереди задач - mqinfo
- Удалить задачу, стоящую в очереди - mqdel
<имя_задачи>.<номер задачи>