rtsDDr (1158447)
Текст из файла
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 | *DestPtr, |
| DestPtr | | указатель на область памяти, в которую будет произведено копирование. |
| SrcPtr | | указатель на область памяти, из которой будет осуществлено копирование. |
| Size | | число копируемых байтов. |
| void dvm_ArrayCopy ( |
| <Type>, |
| Type | | тип элементов копируемых массивов. |
| DestPtr | | указатель на первый элемент массива, в который будет произведено копирование. |
| SrcPtr | | указатель на первый элемент массива, из которого будет осуществлено копирование. |
| Count | | число копируемых элементов. |
1.3Вывод верхнего уровня с префиксом в виде номера текущего процессора
| int rtl_printf ( | char | *format, … ); |
| int rtl_fprintf( | FILE | *stream, |
Функции аналогичны функциям printf и fprintf библиотеки языка C, но выводу заданной информации предшествует вывод номера текущего процессора в виде:
ProcNumberint (PrcoNumberext) ,
где:
| ProcNumberint | | внутренний номер текущего процессора; |
| ProcNumberext | | внешний номер текущего процессора. |
Вопрос о номерах процессоров решающего поля рассмотрен в п.4.
| int rtl_mprintf ( | int | ProcNumber, |
| int rtl_mfprintf( | int | ProcNumber, |
Функции аналогичны рассмотренным выше функциям 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 | **Ptr, |
Функция возвращает в свободную память блок памяти, определяемый указателем *Ptr, выделяет новый блок памяти размером NewSize байтов и присваивает его адрес указателю *Ptr. Содержимое старого блока будет сохранено в новом блоке (насколько это позволяет размер NewSize). Если новый блок памяти требуемого размера выделен быть не может, то выполнение задачи пользователя или системы поддержки завершается.
При нулевом значении параметра NewSize выделение нового блока памяти не производится, а указателю *Ptr присваивается значение NULL.
| void dvm_reallocnoerr ( | void | **Ptr, |
Функция аналогична рассмотренной выше функции dvm_realloc, но при отсутствии блока памяти требуемого размера возвращает NULL.
void dvm_freemem(void **Ptr);
Функция возвращает в свободную память блок памяти, определённый указателем *Ptr, и устанавливает значение этого указателя равным NULL. Допустимо обращение к функции с равным NULL значением указателя *Ptr.
| void dvm_AllocArray ( | | <Type>, |
Макроопределение выделяет блок памяти, состоящий из Size элементов типа Type, и присваивает его адрес указателю ArrayPtr. Если блок памяти требуемого размера выделен быть не может, то выполнение программы пользователя или системы поддержки будет прекращено.
| void dvm_ReallocArray ( | | <Type>, |
Макроопределение возвращает в свободную память блок памяти, определённый указателем ArrayPtr, выделяет новый блок памяти из NewSize элементов типа Type и присваивает его адрес указателю ArrayPtr. Содержимое старого блока будет сохранено в новом блоке (насколько это позволяет размер NewSize). Если новый блок памяти требуемого размера выделен быть не может, то выполнение пользовательской задачи или системы поддержки будет завершено.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














