LIBDVM~1 (1158353)

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

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

54


Библиотека LIB-DVM

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

Апрель, 1999 г.

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

ОГЛАВЛЕНИЕ.

1. ФУНКЦИИ И МАКРООПРЕДЕЛЕНИЯ ОБЩЕГО НАЗНАЧЕНИЯ 4

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

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

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

2. ФУНКЦИИ И МАКРООПРЕДЕЛЕНИЯ ДИНАМИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ПАМЯТИ 5

3. ОПРОС ВРЕМЕНИ ВЫПОЛНЕНИЯ ПРОГРАММЫ В НЕЗАВИСИМОЙ ОТ АППАРАТУРНО-ПРОГРАММНОЙ СРЕДЫ ФОРМЕ 7

4. ОПРОС ВНУТРЕННИХ НОМЕРОВ ФУНКЦИОНАЛЬНО ВЫДЕЛЕННЫХ ПРОЦЕССОРОВ. 7

5. СРЕДСТВА ПЕРЕДАЧИ СООБЩЕНИЙ, НЕЗАВИСИМЫЕ ОТ БАЗОВОЙ СИСТЕМЫ ПЕРЕДАЧИ СООБЩЕНИЙ 8

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

5.1.2. Синхронная передача 9

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

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

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

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

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

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

5.3.2. Прием в режиме "NO WAIT" 10

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

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

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

6. СИНХРОНИЗАЦИЯ ПРОГРАММ, ВЫПОЛНЯЮЩИХСЯ НА РАЗНЫХ ПРОЦЕССОРАХ 11

7. ТРАССИРОВКА ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ И СИСТЕМЫ ПОДДЕРЖКИ 12

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

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

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

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

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

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

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

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

8. О ВЫВОДЕ ИНФОРМАЦИОННЫХ СООБЩЕНИЙ СИСТЕМЫ ПОДДЕРЖКИ И СООБЩЕНИЙ ОБ ОШИБКАХ 19

9. ИЗМЕРЕНИЕ ВРЕМЕНИ ВЫПОЛНЕНИЯ УЧАСТКОВ ПОЛЬЗОВАТЕЛЬСКОЙ ПРОГРАММЫ. 21

10. ОПРОС ГЛОБАЛЬНОГО И ЛОКАЛЬНОГО РАЗМЕРОВ ЗАДАННОГО ИЗМЕРЕНИЯ ЗАДАННОГО ОБЪЕКТА. 22

11. СРЕДСТВА ОБЕСПЕЧЕНИЯ ВСТРОЕННОЙ В СИСТЕМУ ПОДДЕРЖКИ ПРОГРАММЫ СБОРА СТАТИСТИЧЕСКОЙ ИНФОРМАЦИИ 23

11.1. Средства внешнего управления 23

11.2. Инициализация программы сбора статистики 23

11.3. Обработка программой сбора статистики событий трассировки 24

11.4. Завершение работы с программой сбора статистики 24

11.5. Доступ к некоторой системной информации 25

12. СООБЩЕНИЯ ОБ ОШИБКАХ, ВОЗНИКАЮЩИХ ПРИ РАБОТЕ СИСТЕМЫ ПОДДЕРЖКИ 25

12.1. ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ ПОДДЕРЖКИ И ЗАВЕРШЕНИЕ РАБОТЫ С НЕЙ 26

12.2. Инициализация библиотеки WINDOWS MPI 26

12.3. Инициализация библиотеки PVM 27

12.4. Ввод системных параметров 27

12.4.1. Описание параметров с помощью макроопределений вводу из файла. 27

12.4.2. Ввод параметров из файла 28

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

12.6. Завершение работы с системой поддержки 31

12.7. ПОСТРОЕНИЕ АБСТРАКТНОЙ МАШИНЫ. 32

12.8. МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ. 32

12.9. ОТОБРАЖЕНИЕ АБСТРАКТНОЙ МАШИНЫ. 32

12.10. СОЗДАНИЕ И УНИЧТОЖЕНИЕ РАСПРЕДЕЛЕННОГО МАССИВА 36

12.11. ОТОБРАЖЕНИЕ РАСПРЕДЕЛЕННОГО МАССИВА. 37

12.12. ОПРЕДЕЛЕНИЕ ПРОГРАММНОГО БЛОКА 40

12.13. ОПИСАНИЕ ПАРАЛЛЕЛЬНОГО ЦИКЛА 41

12.14. РЕДУКЦИЯ 44

12.15. ОБМЕН ГРАНИЦАМИ РАСПРЕДЕЛЕННЫХ МАССИВОВ 45

12.16. ДОСТУП К ЭЛЕМЕНТАМ РАСПРЕДЕЛЕННЫХ МАССИВОВ 48

12.17. ВВОД/ВЫВОД 49

12.18. ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ 50

12.19. ЗАПРОС И ОСВОБОЖДЕНИЕ ПАМЯТИ 51

12.20. ПЕРЕДАЧА СООБЩЕНИЙ 52

12.21. СРЕДСТВА ВНУТРЕННЕГО САМОКОНТРОЛЯ 53

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 *stream, char *format, ... );

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

ProcNumber int(PrcoNumber ext)

ProcNumber int

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

ProcNumber ext

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

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

int rtl_mprintf(int ProcNumber, char *format, ... );

int rtl_mfprintf(int ProcNumber, FILE *stream, char *format, ... );

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

ЗАМЕЧАНИЕ. Функции rtl_printf и rtl_mprintf предназначены для вывода информационных сообщений системы поддержки, которые стандартно направлены в поток stderr (в отличие от функции printf, производящей вывод в поток 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, unsigned long NewSize);

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

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

void dvm_reallocnoerr(void **Ptr, unsigned long 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). Если новый блок памяти требуемого размера выделен быть не может, то выполнение пользовательской задачи или системы поддержки будет завершено.

void dvm_FreeArray(void *ArrayPtr);

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

void dvm_AllocStruct(


<Type>

<Type>,
*StructPtr);

Макроопределение выделяет блок памяти размера sizeof(Type) байтов и присваивает его адрес указателю StructPtr. Если блок памяти требуемого размера выделен быть не может, то выполнение задачи пользователя или системы поддержки будет прекращено.

void dvm_FreeStruct(void *StructPtr);

Макроопределение возвращает в свободную память блок памяти, заданный указателем StructPtr, и устанавливает значение этого указателя равным NULL. Допустимо обращение к макроопределению со значением указателя StructPtr равным NULL.

3.ОПРОС ВРЕМЕНИ ВЫПОЛНЕНИЯ ПРОГРАММЫ В НЕЗАВИСИМОЙ ОТ АППАРАТУРНО-ПРОГРАММНОЙ СРЕДЫ ФОРМЕ

double dvm_time(void);

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

4.ОПРОС ВНУТРЕННИХ НОМЕРОВ ФУНКЦИОНАЛЬНО ВЫДЕЛЕННЫХ ПРОЦЕССОРОВ.

Запуск программы пользователя для выполнения на многопроцессорной системе требует задания (в качестве параметров запуска) характеристик многопроцессорной системы как многомерного массива: размерности и размеров по каждому измерению. Пусть размерность многопроцессорной системы задана равной 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).

То есть, внутренний номер - это линейный индекс процессора в индексном пространстве многопроцессорной системы.

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

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

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

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

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

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

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