Разработка и запуск на гибридном вычислительном
комплексе K-100
параллельных программ на языках C-DVM и Fortran-DVM
DVM-система, созданная в Институте прикладной математики им. М.В.Келдыша РАН, позволяет разрабатывать на языках C-DVM и Fortran-DVM параллельные программы для ЭВМ различной архитектуры и сетей ЭВМ.
При использовании языков C-DVM и Fortran-DVM программист имеет только один вариант программы и для последовательного, и для параллельного выполнения. Эта программа, помимо описания алгоритма обычными средствами языков Си или Фортран 77, содержит правила параллельного выполнения этого алгоритма. Эти правила (DVM-указания) оформляются синтаксически таким образом, что они являются "невидимыми" для стандартных компиляторов с последовательных языков Си и Фортран и не препятствуют выполнению и отладке DVM-программы на рабочих станциях как обычной последовательной программы.
Компилятор переводит программу на языке C-DVM (Fortran-DVM) в программу на стандартном языке Cи (Фортран), расширенную функциями системы поддержки выполнения DVM-программ, которая для организации межпроцессорного взаимодействия использует стандартную коммуникационную библиотеку (MPI).
Отладка программ осуществляется следующим образом.
Сначала программа отлаживается на рабочей станции (или персональной ЭВМ) как обычная последовательная программа с использованием штатных средств отладки. Затем на той же рабочей станции программа пропускается в специальных режимах для проверки DVM-указаний и сравнения промежуточных результатов ее параллельного выполнения с эталонными результатами, полученными при ее последовательном выполнении.
Для облегчения отладки производительности служит специальный инструмент (предиктор), позволяющий на рабочей станции смоделировать выполнение DVM-программы на параллельной ЭВМ и получить информацию об основных характеристиках ее эффективности.
Получить подробную информацию о DVM-системе и загрузить ее (в виде исходных текстов или библиотек выполняемых программ) можно c сайта DVM. Вместе с системой поставляется набор демонстрационных DVM-программ, а также документация пользователя и разработчика (в виде html-файлов и файлов Word97). Вопросы и замечания следует отправлять по адресу: dvm@keldysh.ru.
Как следует из вышесказанного, разработку DVM-программ для вычислительного комплекса k100 можно производить на рабочей станции или персональной ЭВМ. К запуску программы на вычислительном комплексе следует переходить после отладки программы. Для этого требуется выполнить следующие шаги.
1. Получить список установленных версий DVM-системы и инициализировать версию по умолчанию (выполнить dvminit).
Замечание.
В результате выполнения этой команды, в текущий каталог будут скопированы файлы dvm и usr.par, необходимые для компиляции и запуска DVM-программ.
Чтобы использовать версию DVM-системы, отличную от версии по умолчанию, необходимо указать в команде номер версии (dvminit Nверсии).
2.
Затранслировать программу
(dvm c <имя программы> или dvm f <имя программы>).
Замечание.
Здесь и далее при вызове команды dvm подразумевается, что текущая директория (.) задана в переменной PATH, если это не так, то необходимо вместо команды dvm использовать ./dvm, либо в файле ~/.bash_profile задать: export PATH=$PATH:.:
3.
Запустить программу на выполнение
(dvm run <матрица процессоров> [-maxtime <максимальное время>] <
имя программы > [<параметры задачи>] ).
Замечания.
Параметр <максимальное время> задает максимальное время счета задачи. Этот параметр является необязательным - значение по умолчанию 30 минут.
Параметр <матрица процессоров> - задает размерность процессорной решетки, на которой будет запущена задача ( <n1> <n2>... <nK>). Задача будет запущена на <n1>*<n2>*...*<nK> процессорах.
4. Если свободных процессоров недостаточно и программа поставлена в очередь на выполнение (Task "<имя_задачи>.<номер задачи>" queued successfully), то можно ее исключить из очереди (mqdel <имя задачи>.<номер задачи>), опросить количество свободных процессоров (mfree) и запустить задачу повторно на меньшем числе процессоров.
Замечание.
<имя задачи> - это <имя программы>.<число процессоров>.<номер запуска>. Поле <номер запуска> - это число запусков программы на данном числе процессоров из текущей директории.
5.
Получить
характеристики эффективности выполнения программы.
(dvm pa <имя задачи>.sts.gz+ <имя файла с характеристиками>).