rtsDDr (1158447)

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

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

136


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

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

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

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

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

Детальный дизайн

Март, 2000

ОГЛАВЛЕНИЕ

1 Функции и макроопределения общего назначения 5

1.1 Макроопределения выполнения некоторых математических операций 5

1.2 Копирование массивов 5

1.3 Вывод верхнего уровня с префиксом в виде номера текущего процессора 6

2 Функции и макроопределения динамического распределения памяти 7

3 Опрос времени выполнения программы в независимой от аппаратурно-программной среды форме 8

4 Опрос внутренних номеров функционально выделенных процессоров 9

5 Средства передачи сообщений, независимые от базовой системы передачи сообщений 10

5.1 Синхронный обмен сообщениями 10

5.1.1 Синхронная передача 10

5.1.2 Синхронный прием 11

5.2 Асинхронный обмен сообщениями 11

5.2.1 Асинхронная передача 11

5.2.2 Асинхронный прием 11

5.3 Обмен сообщениями в режиме "NO WAIT" 12

5.3.1 Передача в режимме "NO WAIT" 12

5.3.2 Прием в режиме "NO WAIT" 12

5.3.3 Ожидание завершения передачи или приема 13

5.3.4 Опрос завершения передачи или приема 13

5.4 Передача сообщения от заданного процессора всем остальным (широковещательная передача) 13

6 Синхронизация программ, выполняющихся на разных процессорах 13

7 Трассировка программы пользователя и системы поддержки 14

7.1 Общие сведения о накоплении информации трассировки 14

7.2 Управление накоплением трассировки с помощью файлов параметров 16

7.2.1 Включение и выключение трассировки 16

7.2.2 Задание открытых (включенных) потоков трассировки 17

7.2.3 Задание режимов трассировки 17

7.2.4 Управление формой накапливаемой информации 18

7.2.5 Управление механизмами внутреннего самоконтроля системы поддержки, функционирующими при накоплении трассировки 19

7.2.6 Управление выводом дополнительной информации при трассировке некоторых функций системы поддержки в расширенном режиме 20

7.3 Функции вывода информации в потоки трассировки 21

8 О выводе информационных сообщений системы поддержки и сообщений об ошибках 24

8.1 Функции вывода информационных сообщений и сообщений об ошибках 24

8.2 Управление стандартными выходными потоками и потоками вывода информационных сообщений и сообщений об ошибках 24

8.3 Классы информационных сообщений и управление их выводом 27

9 Измерение времени выполнения участков пользовательской программы 29

10 Опрос глобального и локального размеров заданного измерения заданного объекта 29

11 Средства обеспечения встроенной в систему поддержки программы сбора статистической информации 30

11.1 Матрица характеристик выполнения текущего интервала программы пользователя 30

11.1.1 Первичные характеристики выполнения текущего интервала программы пользователя 30

11.1.2 О характеристиках группы функций передачи сообщений 32

11.1.3 Вычисление суммарных характеристик выполнения программы по интервальной матрице характеристик 33

11.1.4 Вспомогательная матрица характеристик задачи пользователя 35

11.1.5 Обеспечение накопления характеристик DVM-операций ввода/вывода, реализованных в Фортране 36

11.2 Средства внешнего управления программой сбора статистики 37

11.3 Инициализация программы сбора статистики 37

11.4 Обработка программой сбора статистики обращений к функциям системы поддержки 37

11.5 Завершение работы с программой сбора статистики 39

11.6 Доступ к некоторой системной информации 39

12 Сообщения об ошибках, возникающих при работе системы поддержки 41

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

12.1.1 Инициализация библиотеки MPI 42

12.1.2 Инициализация библиотеки PVM 42

12.1.3 Инициализация библиотек GNS и ROUTER 42

12.1.4 Ввод системных параметров 43

12.1.4.1 Описание параметров с помощью макроопределений, предшествующее их вводу из файла 43

12.1.4.2 Ввод параметров из файла 44

12.1.5 Контроль введенных системных параметров и настройка по ним системы поддержки 45

12.1.6 Завершение работы с системой поддержки 48

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

12.3 Многопроцессорные системы 50

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

12.5 Создание и уничтожение распределённого массива 66

12.6 Отображение распределённого массива 67

12.7 Определение программного блока 74

12.8 Описание параллельного цикла 75

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

12.10 Редукция 84

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

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

12.13 Ввод/вывод 112

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

12.15 Доступ к удалённым данным 116

12.16 Запрос и освобождение памяти 133

12.17 Передача сообщений 134

12.18 Средства внутреннего самоконтроля 136

1Функции и макроопределения общего назначения

1.1Макроопределения выполнения некоторых математических операций

int dvm_mod(Op, D);

Макроопределение возвращает нулевое значение, если остаток от деления аргумента Op на аргумент D равен нулю, и единичное в противном случае. Аргументы Op и D должны иметь целый тип.

<TypeOfOp> dvm_abs(Op);

Макроопределение возвращает абсолютное значение аргумента Op. Аргумент Op может иметь целый или плавающий тип. Тип возвращаемого значения совпадает с типом аргумента Op.

int dvm_sign(Op);

Макроопределение возвращает 1, если Op > 0, и -1, если Op 0. Аргумент Op может иметь целый или плавающий тип.

<TypeOfOp> dvm_min(Op1, Op2);

Макроопределение возвращает минимальное из значений аргументов Op1 и Op2. Каждый из операндов Op1 и Op2 может иметь целый или плавающий тип. Тип возвращаемого значения определяется принятым в языке C правилам преобразования по умолчанию, примененным к операндам Op1 и Op2.

<TypeOfOp> dvm_max(Op1, Op2);

Макроопределение возвращает максимальное из значений аргументов Op1 и Op2. Каждый из операндов Op1 и Op2 может иметь целый или плавающий тип. Тип возвращаемого значения определяется принятым в языке C правилам преобразования по умолчанию, примененным к операндам Op1 и Op2.

1.2Копирование массивов

void dvm_memcopy (

void
void
unsigned long

*DestPtr,
*SrcPtr,
Size );

DestPtr

указатель на область памяти, в которую будет произведено копирование.

SrcPtr

указатель на область памяти, из которой будет осуществлено копирование.

Size

число копируемых байтов.

void dvm_ArrayCopy (


<Type>
<Type>
unsigned int

<Type>,
*DestPtr,
*SrcPtr,
Count );

Type

тип элементов копируемых массивов.

DestPtr

указатель на первый элемент массива, в который будет произведено копирование.

SrcPtr

указатель на первый элемент массива, из которого будет осуществлено копирование.

Count

число копируемых элементов.

1.3Вывод верхнего уровня с префиксом в виде номера текущего процессора

int rtl_printf (

char

*format, … );

int rtl_fprintf(

FILE
char

*stream,
*format, ... );

Функции аналогичны функциям printf и fprintf библиотеки языка C, но выводу заданной информации предшествует вывод номера текущего процессора в виде:

ProcNumberint (PrcoNumberext) ,

где:

ProcNumberint

внутренний номер текущего процессора;

ProcNumberext

внешний номер текущего процессора.

Вопрос о номерах процессоров решающего поля рассмотрен в п.4.

int rtl_mprintf (

int
char

ProcNumber,
*format, ... );

int rtl_mfprintf(

int
FILE
char

ProcNumber,
*stream,
*format, ... );

Функции аналогичны рассмотренным выше функциям rtl_printf и rtl_fprintf, но вывод осуществляется лишь в том случае, если внутренний номер текущего процессора совпадает с параметром ProcNumber.

ЗАМЕЧАНИЕ. Функции rtl_printf и rtl_mprintf предназначены для вывода информационных сообщений системы поддержки, которые стандартно направлены в поток stdout (см.п.8).

2Функции и макроопределения динамического распределения памяти

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

void *dvm_getmem(unsigned long Size);

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

void *dvm_getmemnoerr(unsigned long Size);

Функция аналогична рассмотренной выше функции dvm_getmem, но при отсутствии блока памяти требуемого размера возвращает NULL.

void *dvm_getclearmem(unsigned long Size);

Функция аналогична рассмотренной выше функции dvm_getmem, но выделяемый блок памяти расписывается нулевым кодом.

void dvm_realloc (

void
unsigned long

**Ptr,
NewSize );

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

При нулевом значении параметра NewSize выделение нового блока памяти не производится, а указателю *Ptr присваивается значение NULL.

void dvm_reallocnoerr (

void
unsigned long

**Ptr,
NewSize );

Функция аналогична рассмотренной выше функции dvm_realloc, но при отсутствии блока памяти требуемого размера возвращает NULL.

void dvm_freemem(void **Ptr);

Функция возвращает в свободную память блок памяти, определённый указателем *Ptr, и устанавливает значение этого указателя равным NULL. Допустимо обращение к функции с равным NULL значением указателя *Ptr.

void dvm_AllocArray (


unsigned long
<Type>

<Type>,
Size,
*ArrayPtr );

Макроопределение выделяет блок памяти, состоящий из Size элементов типа Type, и присваивает его адрес указателю ArrayPtr. Если блок памяти требуемого размера выделен быть не может, то выполнение программы пользователя или системы поддержки будет прекращено.

void dvm_ReallocArray (


unsigned long
<Type>

<Type>,
NewSize,
*ArrayPtr );

Макроопределение возвращает в свободную память блок памяти, определённый указателем ArrayPtr, выделяет новый блок памяти из NewSize элементов типа Type и присваивает его адрес указателю ArrayPtr. Содержимое старого блока будет сохранено в новом блоке (насколько это позволяет размер NewSize). Если новый блок памяти требуемого размера выделен быть не может, то выполнение пользовательской задачи или системы поддержки будет завершено.

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

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

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

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

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

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

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