rtsPDr (1158451)
Текст из файла
6
Институт Прикладной Математики им. М.В.Келдыша
Российская Академия наук
Система поддержки выполнения
параллельных программ
(библиотека Lib-DVM)
Предварительный дизайн
Март, 2000
ОГЛАВЛЕНИЕ
1 Функции Lib-DVM 3
2 Состав Lib-DVM 3
3 Подходы и принципы реализации 4
1Функции Lib-DVM
Библиотека Lib-DVM является системой поддержки выполнения DVM-программ. Параллельная программа на языке Fortran-DVM (С-DVM) превращается в программу на языке Fortran 77 (Cи), содержащую вызовы функций Lib-DVM, и выполняющуюся в соответствии с моделью SPMD на каждом выделенном задаче процессоре. Функции Lib-DVM, вызываемые при выполнении параллельной программы, описаны в документе "LIB-DVM. Описание интерфейса" и служат для выполнения следующих основных операций:
-
Инициализация системы поддержки и завершение работы с ней.
-
Построение абстрактной машины.
-
Отображение абстрактной машины.
-
Создание и уничтожение распределенного массива.
-
Отображение распределенного массива.
-
Отображение параллельного цикла.
-
Отображение параллельных задач.
-
Выполнение редукционных операций.
-
Обновление теневых граней распределенных массивов.
-
Создание и загрузка буферов для доступа к удаленным данным.
-
Выполнение операций ввода-вывода.
Помимо выполнения этих операций, система поддержки должна обеспечивать:
-
Обращения к подсистеме сбора характеристик выполнения программы на каждом процессоре.
-
Обращения к DVM-отладчику.
-
Накопление системной трассировки – трассировки обращений к функциям Lib-DVM и функциям коммуникационных библиотек. Эта трассировка используется для отладки DVM-программ, самой системы поддержки, а также служит входной информацией для предиктора.
-
Ввод параметров, управляющих работой системы поддержки, DVM-отладчика и подсистемы сбора характеристик выполнения.
Система поддержки должна использовать для передачи сообщений две коммуникационные библиотеки – MPI и PVM.
2Состав Lib-DVM
В состав библиотеки помимо функций, описанных в документе "LIB-DVM. Описание интерфейса", входит большое количество функций, обеспечивающих выполнение следующих вспомогательных операций:
-
Операции обмена сообщениями.
-
Динамическое распределение памяти.
-
Синхронизация программ.
-
Ввод управляющих параметров.
-
Накопление системной трассировки.
-
Взаимодействие с DVM-отладчиком и подсистемой сбора характеристик выполнения программы.
3Подходы и принципы реализации
Для обеспечения возможности использования различных коммуникационных библиотек, разработан набор функций обмена сообщениями, реализация которых для разных коммуникационных библиотек не требует больших усилий.
-
Инициализация системы поддержки и завершение работы с ней.
При инициализации:
-
Один из процессоров (процессор ввода-вывода) читает управляющие параметры из файлов и рассылает их остальным процессорам.
-
В соответствии с введенными параметрами осуществляется настройка системы поддержки, DVM-отладчика и подсистемы сбора характеристик выполнения программы.
-
Заводятся буфера в памяти всех процессоров для накопления системной трассировки и характеристик выполнения программы.
-
Производится синхронизация времени на всех процессорах.
-
По указанию пользователя выдаются сообщения, содержащие основные режимы работы системы и характеристики среды её выполнения.
При завершении:
-
Производится запись в файлы накопленной системной трассировки и характеристик выполнения программы.
-
Осуществляется оповещение пользователя (по его желанию) о завершении выполнения программы.
-
Построение и отображение абстрактной машины.
Является подготовительной операцией для отображения на процессоры данных и вычислений, которое осуществляется через их отображение на абстрактную машину.
-
Создание и уничтожение распределенного массива.
При создании массива строится его дескриптор, но память под него не выделяется. При уничтожении массива его дескриптор уничтожается и освобождается память, занимаемая массивом.
-
Отображение распределенного массива на абстрактную машину.
При отображении массива на каждом процессоре выделяется память для тех его элементов, которые располагаются на данном процессоре, а также для теневых граней.
-
Отображение параллельного цикла на абстрактную машину.
Для каждого процессора определяются витки цикла, которые будут выполняться на данном процессоре, и порядок их выполнения.
-
Отображение параллельных задач на абстрактную машину.
Для каждого процессора определяются задачи, которые будут выполняться на данном процессоре. Начало и завершение выполнения параллельных задач производится специальными функциями Lib-DVM.
-
Выполнение редукционных операций.
Редукционные операции производятся посредством сбора на специально выделенном процессоре (центральном процессоре задачи) частичных результатов редукции, полученных на тех процессорах, которые участвовали в выполнении параллельного цикла. После вычисления на центральном процессоре окончательного результата он рассылается всем остальным процессорам. Совмещение выполнения редукции с вычислениями достигается имитацией параллельного процесса на центральном процессоре посредством регулярного опроса прихода сообщений.
-
Обновление теневых граней распределенных массивов.
Обновление теневых граней реализовано как асинхронная операция. Совмещение обменов с вычислениями достигается посредством использования неблокирующих операций обмена.
-
Создание и загрузка буферов для доступа к удаленным данным.
Размер буферов определяется посредством анализа на каждом процессоре ссылок на удаленные элементы и диапазона витков цикла, выполняющихся на данном процессоре. Загрузка буферов, как и обновление теневых граней, может совмещаться с вычислениями.
-
Выполнение операций ввода-вывода.
Для программ на языке Си разработаны специальные версии стандартных программ ввода-вывода. Ввод информации производится на процессоре ввода-вывода посредством обычных функций ввода, а затем она рассылается остальным процессорам в соответствии с распределением данных. Для вывода данных, отсутствующих на процессоре ввода-вывода, они сначала пересылаются на него, а затем выводятся с него посредством обычных функций вывода.
Ввод-вывод для программ на языке Фортран организуется компилятором аналогично, при этом используются специальные функции Lib-DVM для перемещения данных между буфером процессора ввода-вывода и теми процессорами, на которых эти данные располагаются.
-
Накопление трассировки обращений к функциям Lib-DVM и функциям коммуникационных библиотек.
Эта трассировка используется для отладки DVM-программ, самой системы поддержки, а также служит входной информацией для предиктора.
Трассировка содержит информацию о вызываемых функциях и их параметрах, а также сведения о функционировании внутренних механизмов системы поддержки. Она может накапливаться в буфере, либо выводиться непосредственно в файл. Накопленная в буфере трассировка выгружается в файл при завершении выполнения программы. Состав трассируемых событий и режимы трассировки задаются в файле параметров.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















