rtsDDr (1158447), страница 6

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

Текст из файла (страница 6)

Отметим, что события трассировки с номерами 1 и 2 могут быть, как и любые другие события, выключены, что дает альтернативу изъятию макровызовов MeasureStart и MeasureFinish из программы.

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

long GetObjectSize(

ObjectRef
unsigned long

ObjRef,
Axis );

Функция GetObjectSize возвращает размер объекта, заданного ссылкой ObjRef, по измерению Axis (глобальный размер или размер нераспределённого объекта).

Объектом может быть:

  • распределённый массив (тогда ссылка  это первое слово его заголовка);

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

  • многопроцессорная система;

  • параллельный цикл.

Размер измерения параллельного цикла равен

ceil( (LastIndex - InitIndex + 1)/Step ) , где:

InitIndex

начальное значение индексной переменной параллельного цикла для измерения Axis;

LastIndex

конечное значение индексной переменной параллельного цикла для измерения Axis;

Step

шаг изменения индексной переменной параллельного цикла для измерения Axis;

ceil

функция нахождения наименьшего целого, не меньшего значения своего аргумента.

При нулевом значении Axis возвращается размер всего объекта (произведение размеров всех измерений).

Если ObjRef не является ссылкой ни на один из вышеперечисленных объектов, то функция возвращает нулевое значение.

long GetObjectLocSize(

ObjectRef
long

ObjRef,
Axis );

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

Отметим, что локальный размер всего объекта, не имеющего локальной части на текущем процессоре, равен нулю.

Функции GetObjectSize и GetObjectLocSize не трассируются и не обрабатываются программой сбора статистики, поэтому отличаются от функций getsiz_ и locsiz_ более быстрым выполнением (см. документ "Библиотека LIB-DVM. Описание интерфейса").

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

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

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

Все функции системы поддержки, к которым может обращаться программа пользователя, разделены на следующие непересекающиеся группы:

MsgPasGrp

функции передачи сообщений;

StartRedGrp

функции запуска редукционных операций;

WaitRedGrp

функции ожидания завершения редукции;

RedGrp

прочие функции организации редукции;

StartShdGrp

функции запуска обмена границами распределённых массивов;

WaitShdGrp

функции ожидания завершения обмена границами;

ShdGrp

прочие функции организации обмена границами;

DistrGrp

функции распределения данных по процессорам;

ReDistrGrp

функции перераспределения данных между процессорами;

MapPLGrp

функции организации выполнения параллельных циклов;

DoPLGrp

функция опроса очередной порции витков параллельного цикла для её выполнения (функция dopl_);

PrgBlockGrp

функции организации программных блоков;

IOGrp

функции ввода/вывода;

RemAccessGrp

функции обеспечения доступа к удалённым данным;

UserDebGrp

функции динамического контроля и трассировки выполнения программы пользователя (функции взаимодействия с DVM-отладчиком);

StatistGrp

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

SystemGrp

прочие функции системы поддержки (не вошедшие ни в одну из перечисленных выше групп).

Имена групп определены как именованные числовые константы языка C в файле system.def исходных текстов системы поддержки. Число групп функций задано именованной константой StatGrpCount. Соответствие <имя функции>  <имя группы> определено в файле исходных текстов intergrp.c.

Характеристики выполнения функций каждой группы накапливаются в матрице расхода времени текущего интервала IM, создаваемой при создании нового текущего интервала (интервальная матрица характеристик, матрица характеристик текущего интервала). Указатель на матрицу IM должен быть помещён при её создании в глобальную переменную

s_GRPTIMES (* CurrInterPtr)[StatGrpCount]; .

При завершении текущего интервала программа сбора статистики должна обработать содержащиеся в матрице IM данные и восстановить в переменной CurrInterPtr указатель на матрицу интервала, в который непосредственно вложен завершаемый интервал.

Матрица IM представляет собой квадратную матрицу, элементы i-й строки которой содержат характеристики выполнения i-й группы функций, вызванных непосредственно программой пользователя. Каждая функция группы i может обращаться (непосредственно или косвенно) к функциям любой группы j (возможно равенство i и j). Характеристики таких обращений накапливаются системой поддержки в элементе IM[i,j]. Таким образом, i-я строка матрицы IM содержит разложение характеристик выполнения функций группы i, вызванных непосредственно программой пользователя, по непосредственным или косвенным обращениям к функциям всех групп.

Каждый элемент IM[i,j] является структурой типа

typedef struct



{


}

double
double
double
s_GRPTIMES;

CallCount;
ProductTime;
LostTime;

где:

CallCount

характеристика числа обращений функций группы i к функциям группы j.

ProductTime

характеристика суммарного полезного времени выполнения функций группы j при вызове их функциями группы i.

LostTime

характеристика суммарного потерянного времени выполнения функций группы j при вызове их функциями группы i.

При создании матрицы IM все перечисленные выше характеристики всех её элементов должны быть проинициализированы нулевыми значениями.

Характеристика CallCount увеличивается всякий раз при выходе из функции группы j на величину 1/n (n  число процессоров, выполняющих текущую ветвь параллельной программы).

Характеристики ProductTime и LostTime увеличиваются при выходе из функции группы j на величины, соответственно, time/n и (n-1)*time/n (time – время выполнения функции группы j без учёта её обращений к функциям других групп, n – число процессоров, выполняющих текущую ветвь).

При завершении выполнения функции, вызванной непосредственно программой пользователя (функции группы i), осуществляется рассмотренное выше увеличение характеристик ProductTime и LostTime, содержащихся в элементе IM[i][i], и увеличение харакеристики CallCount, содержащейся в элементе IM[UserGrp][i] (о строке с номером UserGrp см. ниже). Это, во-первых, позволяет иметь совокупный расход времени функций группы i, вызванных программой пользователя, в одной строке матрицы IM и, во-вторых, располагать информацией о количестве вызовов функций каждой группы, произведённых непосредственно пользовательской программой.

Смысл характеристик, содержащихся в элементах упомянутой выше строки с номером UserGrp, отличается от смысла характеристик других строк матрицы IM. Характеристики ProductTime и LostTime элемента IM[UserGrp][UserGrp] являются собственными полезным и потерянным временами выполнения программы пользователя (без учёта её обращения к функциям системы поддержки). Характеристики ProductTime и LostTime всех остальных элементов строки UserGrp равны нулю. Характеристика CallCount элемента IM[UserGrp][UserGrp] имеет нулевое значение, а для всех остальных элементов IM[UserGrp][j] (j UserGrp) содержит, как было рассмотрено выше, приведённое к одному процессору число обращений программы пользователя к функциям группы j.

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

Кроме рассмотренной в п. 11.1 группы функций UserGrp, характеристики выполнения программы для группы функций MsgPasGrp (передача сообщений) также отличаются от одноимённых характеристик остальных групп.

Всё время выполнения любой функции передачи сообщений считается потерянным временем, которое накапливается в характеристике LostTime в "чистом" виде, т. е. без коррекции, учитывающей число процессоров, выполняющих текущую ветвь (без домножения на коеффициент (n-1)/n). Число обращений к функциям передачи сообщений также суммируется в характеристике CallCount без предварительного деления на n. В характеристике ProductTime вместо полезного времени, приведённого к одному процессору, накапливается время реальной (фактической) рассинхронизации программы.

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

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

Время реальной рассинхронизации полагается равным абсолютному значению разности между временем обращения принимающей стороны к функции rtl_Recv и временем обращения передающей стороны к функции rtl_Send.

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

Время реальной рассинхронизации равно разности между временем обращения передающей стороны к функции rtl_SendA и временем обращения приёмной стороны к функции rtl_RecvA. Если эта разность отрицательна, то время реальной рассинхронизации считается нулевым.

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

Время реальной рассинхронизации полагается равным разности между временем обращения передающей стороны к функции rtl_Sendnowait и временем обращения приёмной стороны к функции rtl_Waitrequest. Если эта разность отрицательна, то время реальной рассинхронизации считается нулевым.

Общее время реальной рассинхронизации является суммой времён реальной рассинхронизации отдельных актов взаимодействия <передача-приём>.

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

Будем обозначать множество номеров групп функций как GNS:

GNS = { MsgPasGrp, StartRedGrp, WaitRedGrp, RedGrp, StartShdGrp, WaitShdGrp, ShdGrp, DistrGrp, ReDistrGrp, MapPLGrp, DoPLGrp, PrgBlockGrp, IOGrp, RemAccessGrp, UserDebGrp, StatistGrp, SystemGrp }

  1. Характеристика собственного полезного времени выполнения программы (без учёта обращений к функциям системы поддержки):

OUPT = IM[UserGrp][UserGrp].ProductTime

  1. Характеристика собственного потерянного времени выполнения программы (без учёта обращений к функциям системы поддержки):

OULT = IM[UserGrp][UserGrp].LostTime

  1. Характеристика полезного времени выполнения функций группы i, вызванных непосредственно программой пользователя (i MsgPasGrp):

    SPTi =


    jGNS
    j
    MsgPasGrp

    IM[i][j].ProductTime

  2. Характеристика полезного времени выполнения функций системы поддержки, вызванных непосредственно программой пользователя:

    SPT =


    iGNS
    i
    MsgPasGrp

    SPTi

  3. Характеристика потерянного времени выполнения функций группы i, вызванных непосредственно программой пользователя:

    SLTi =


    jGNS

    IM[i][j].LostTime

  4. Характеристика потерянного времени выполнения функций системы поддержки, вызванных непосредственно программой пользователя:

    SLT =


    iGNS

    SLTi

  5. Характеристика полезного времени выполнения программы пользователя:

UPT = OUPT + SPT

  1. Характеристика потерянного времени выполнения программы пользователя:

ULT = OULT + SLT

  1. Характристика числа обращений к функциям системы поддержки, осуществлённых непосредственно программой пользователя:


    jGNS

    IM[UserGrp][j].CallCount

  2. Характеристика времени реальной рассинхронизации при выполнении функций группы i, вызванных непосредственно программой пользователя:

RMTi = IM[i][MsgPasGrp].ProductTime

  1. Характеристика времени реальной рассинхронизации при выполнении программы пользователя:

    RMT =


    iGNS

    RMTi

  2. Характеристика собственного полезного времени выполнения функций группы j (без учёта обращений к функциям других групп) (j MsgPasGrp):

    OSPTj =


    iGNS

    IM[i][j].ProductTime

  3. Характеристика собственного потерянного времени выполнения функций группы j (без учёта обращений к функциям других групп):

OSLTj =


iGNS

IM[i][j].LostTime

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

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

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

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

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