rtsIDr (1158449)

Файл №1158449 rtsIDr (Раздаточные материалы)rtsIDr (1158449)2019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

123


Институт Прикладной Математики им. М.В.Келдыша

Российская Академия наук

Система поддержки выполнения

параллельных программ

(библиотека Lib-DVM)

Описание интерфейса

Март, 2000

ОГЛАВЛЕНИЕ

1 Введение 6

2 Инициализация системы поддержки и завершение с ней работы 6

3 Построение представлений абстрактной машины 8

3.1 Опрос ссылки на текущую абстрактную машину 8

3.2 Создание представления абстрактной машины 8

3.3 Опрос ссылки на элемент представления абстрактной машины 9

3.4 Уничтожение представления абстрактной машины 9

4 Многопроцессорные системы 10

4.1 Опрос ссылки на многопроцессорную систему 10

4.2 Создание подсистемы заданной многопроцессорной системы 10

4.3 Реконфигурация (изменение формы) многопроцессорной системы 11

4.4 Уничтожение многопроцессорной системы 11

4.5 Веса элементов многопроцессорной системы 12

4.6 Задание весов координат процессоров по весам их загрузки 16

4.7 Виртуальные многопроцессорные системы (многопроцессорные системы программы пользователя) 18

5 Отображение представления абстрактной машины 19

5.1 Задание отображения представления абстрактн ой машины на многопроцессорную систему (распределение ресурсов) 19

5.2 Изменение отображения представления абстрактной машины на многопроцессорную систему (перераспределение ресурсов) 23

5.3 Опрос карты отображения 24

5.4 Задание отображения представления абстрактной машины по карте отображения 25

5.5 Изменение отображения представления абстрактной машины по карте отображения 25

5.6 Уничтожение карты отображения 26

5.7 Неравномерное блочное распределение 27

6 Создание и уничтожение распределенного массива 28

6.1 Создание распределенного массива 28

6.2 Уничтожение распределенного массива 30

6.3 Создание дополнительного заголовка распределенного массива 30

6.4 Уничтожение заголовка распределенного массива 30

7 Отображение распределенного массива 31

7.1 Задание расположения (выравнивание) распределенного массива 31

7.2 Суперпозиция выравниваний 33

7.3 Изменение расположения распределенного массива 35

7.4 Опрос карты отображения 36

7.5 Задание расположения распределенного массива по карте отображения 37

7.6 Изменение расположения распределенного массива по карте отображения 37

7.7 Уничтожение карты отображения 38

7.8 Опрос ссылки на представление абстрактной машины, в которое отображён заданный распределённый массив 39

8 Определение программного блока 39

9 Описание параллельного цикла 40

9.1 Создание параллельного цикла 40

9.2 Отображение параллельного цикла 40

9.3 Изменение порядка выполнения витков цикла 44

9.4 Опрос необходимости продолжения выполнения параллельного цикла 46

9.5 Завершение параллельного цикла 47

9.6 Задание информации о зависимостях по данным между витками параллельного цикла 47

10 Представление программы в виде соовокупности параллельно выполняющихся подзадач 48

10.1 Отображение абстрактной машины (создание подзадачи) 49

10.2 Начало выполнения (активизация, пуск) подзадачи 49

10.3 Завершение выполнения (останов) текущей подзадачи 50

11 Редукция 50

11.1 Создание редукционной переменной 50

11.2 Задание типа индексных переменных, значения которых определяют координаты локального максимума или минимума редукционной переменной 52

11.3 Создание редукционной группы 53

11.4 Включение редукционной переменной в редукционную группу 53

11.5 Запоминание значений редукционных переменных 55

11.6 Запуск редукционной группы 56

11.7 Ожидание завершения редукции 56

11.8 Уничтожение редукционной группы 57

11.9 Уничтожение редукционной переменной 57

11.10 Поддержка асинхронной редукции при выполнении параллельного цикла 58

12 Обмен границами распределенных массивов 59

12.1 Создание группы границ 61

12.2 Включение границы распределенного массива в группу границ 62

12.3 Запуск обмена границами заданной группы 65

12.4 Инициализация приема импортируемых элементов заданной группы границ 65

12.5 Инициализация передачи экспортируемых элементов заданной группы границ 65

12.6 Ожидание завершения обмена границами заданной группы 66

12.7 Уничтожение группы границ 66

13 Доступ к элементам распределенных массивов 67

13.1 Копирование элемента распределенного массива 67

13.1.1 Чтение элемента распределенного массива и присвоение ему значения 67

13.1.2 Копирование элемента одного распределенного массива в элемент другого распределенного массива 68

13.1.3 Обобщенная пересылка элемента распределенного массива 68

13.2 Копирование распределенных массивов 69

13.3 Асинхронное копирование распределенных массивов 71

13.4 Доступ к элементам локальной части распределенного массива 72

13.4.1 Опрос принадлежности элемента распределенного массива его локальной части 73

13.4.2 Опрос начальных и конечных значений индексов локальной части распределенного массива 74

13.4.3 Чтение элемента локальной части распределенного массива 74

13.4.4 Присвоение значения элементу локальной части распределенного массива 74

13.4.5 Копирование элемента локальной части одного распределенного массива в элемент локальной части другого распределенного массива 75

13.4.6 Опрос адреса элемента локальной части распределенного массива 75

13.5 Макрокоманды доступа к элементам локальных частей распределенных массивов размерностей от 1 до 7 75

13.6 Последовательный опрос значений индексов элементов распределенного массива 76

14 Регулярный доступ к удаленным данным 77

14.1 Создание буфера удалённых элементов распределённого массива 77

14.2 Запуск загрузки буфера удаленных элементов распределенного массива 82

14.3 Ожидание завершения загрузки буфера удаленных элементов распределенного массива 82

14.4 Уничтожение буфера удаленных элементов распределенного массива 83

14.5 Доступ к размещенным в локальной части буфера удаленным элементам 83

14.6 Создание группы буферов удаленных элементов 84

14.7 Включение в группу буфера удаленных элементов 85

14.8 Запуск загрузки буферов удаленных элементов заданной группы 85

14.9 Ожидание завершения загрузки буферов удаленных элементов заданной группы 85

14.10 Уничтожение группы буферов удаленных элементов 86

14.11 Опрос типа доступа к элементам распределенного массива 86

15 Нерегулярный доступ к удаленным данным 88

15.1 Создание буфера удаленных элементов нерегулярного доступа 88

15.2 Запуск загрузки буфера удаленных элементов нерегулярного доступа 89

15.3 Ожидание завершения загрузки буфера удаленных элементов нерегулярного доступа 89

15.4 Уничтожение буфера удаленных элементов нерегулярного доступа 90

15.5 Доступ к размещенным в буфере удаленным элементам 90

15.6 Создание группы буферов удаленных элементов нерегулярного доступа 91

15.7 Включение в группу буфера удаленных элементов нерегулярного доступа 91

15.8 Запуск загрузки буферов удаленных элементов заданной группы 91

15.9 Ожидание завершения загрузки буферов удаленных элементов заданной группы 92

15.10 Уничтожение группы буферов удаленных элементов нерегулярного доступа 92

16 ВВОД/ВЫВОД 92

16.1 Аналоги библиотеки языка C 92

16.1.1 Функции ввода/вывода высокого уровня 92

16.1.2 Функции ввода/вывода нижнего уровня 94

16.1.3 Операции над каталогами и файлами 95

16.2 Чтение файла в подмассив распределенного массива 95

16.3 Запись подмассива распределенного массива в файл 97

17 Вспомогательные функции 99

17.1 Опрос размерности заданного объекта 99

17.2 Опрос размера заданного измерения заданного объекта 99

17.3 Опрос признака распределенного массива 100

17.4 Опрос длины элемента распределенного массива 101

17.5 Уничтожение заданного объекта 101

17.6 Опрос признака процессора ввода/вывода 101

17.7 Рассылка областей памяти процессора ввода/вывода 101

18 Об использовании функций системы поддержки в Фортране 102

19 Примеры программ, использующих функции системы поддержки 105

19.1 Решение уравнения Лапласа методом Якоби 105

19.2 Параллельный цикл с регулярной зависимостью по данным между витками 114

20 Литература 124

1Введение

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

Последовательная программа на исходном языке Fortran-77 или Си превращается в программу на том же языке, содержащую вызовы функций Lib-DVM, и выполняющуюся в соответствии с моделью SPMD на каждом выделенном задаче процессоре.

В момент запуска программы существует единственная её ветвь (поток управления), которая начинает свое выполнение с первого оператора программы сразу на всех процессорах многопроцессорной системы.

Многопроцессорной системой (или системой процессоров) будем называть ту машину, которая предоставляется программе пользователя аппаратурой и базовым системным программным обеспечением. Для распределённой ЭВМ примером такой машины может служить MPI-машина. В этом случае, многопроцессорная система  это группа MPI-процессов, которые создаются при запуске параллельной программы на выполнение. Число процессоров многопроцессорной системы и её представление в виде многомерной решетки задаётся в командной строке при запуске программы.

Все объявленные в программе переменные (за исключением специально указанных "распределённых" массивов) размножаются по всем процессорам.

При входе в параллельный цикл ветвь разбивается на некоторое количество параллельных ветвей, каждая из которых выполняется на выделенном ей процессоре многопроцессорной системы.

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

2Инициализация системы поддержки и завершение с ней работы

Инициализация из программы на языке C:

.long rtl_init (

.long
.int
.char

InitParam,
.argc,
*argv[] );

Инициализация из программы на языке Фортран:

long linit_ (long *InitParamPtr);

где:

InitParam или
*InitParamPtr



параметр инициализации системы поддержки;

argc

число параметров-строк в командной строке;

argv

массив указателей на параметры-строки командной строки.

Функции rtl_init и linit_ производят инициализацию структур, управляющих функционированием системы поддержки, в соответствии с заданными в файлах параметрами, определяющими режимы межпроцессорных обменов, накопления статистики и трассировки и т.д.

Параметр инициализации может принимать значения:

0

стандартная инициализация;

1

инициализация с блокировкой средств динамического контроля [3] (включение средств динамического контроля, заданное в параметрах запуска системы поддержки, в этом случае подавляется).

Возвращается нулевое значение.

long lexit_ (long *UserResPtr);

*UserResPtr  код завершения пользовательской программы.

Функция lexit_ осуществляет корректное завершение функционирования системы поддержки (возврат занятой в процессе работы памяти, запись в файлы накопленной статистической и трассировочной информации и т.д.).

Возврата из функции не происходит.

Замечание. Запуск программы пользователя для выполнения на многопроцессорной системе требует задания (в качестве параметров запуска) характеристик многопроцессорной системы как многомерного массива: размерности и размеров по каждому измерению.

Пусть размерность многопроцессорной системы задана равной n, а размер по измерению k  равным PSSizek (1 ≤ k ≤ n). Тогда при инициализации системы поддержки каждому процессору будет присвоен внутренний номер ProcNumberint:

ProcNumberint(I1, ... ,In) =

n
(Ik *
k=1

n
PSSizej)
,
j=k+1

где Ik  значение индекса процессора по измерению k индексного пространства многопроцессорной системы (0 ≤ Ik ≤ PSSizek 1). То есть, внутренний номер  это линейный индекс процессора в индексном пространстве многопроцессорной системы.

При межпроцессорных обменах в качестве адреса процессора используется его идентификатор ProcIdent. Соответствие

ProcNumberint  ProcIdent

возвращается системе поддержки системой передачи сообщений (Message Passing System) при её инициализации.

Среди процессоров выделенного задаче решающего поля функционально выделены два: процессор ввода/вывода и центральный процессор. Процессор ввода/вывода предназначен для непосредственного общения с файловой системой (см.п.16) и имеет нулевой внутренний номер. Центральный процессор осуществляет вычисление редукционных функций (см.п.11) и определяется индексным вектором ([PSSize1/2], ... ,[PSSizen/2]).

3Построение представлений абстрактной машины

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

Характеристики

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее