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

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

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

s_GRPTIMES TaskInter[StatGrpCount][StatGrpCount]; .

Матрица TaskInter соответствует начальному интервалу выполнения программы пользователя. Накопление в ней информации осуществляется независимо от функционирования основного механизма сбора статистики. Характеристики выполнения программы, содержащиеся в элементах матрицы TaskInter, не подвергаются коррекции числом процессоров, выполняющих текущую ветвь.

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

Управление накоплением информации в матрице TaskInter и её (информации) выводом осуществляется с помощью параметров TimeExpendPrint и StatGrpName файлов statist.* . При нулевом значении параметра TimeExpendPrint накопление информации в матрице TaskInter не производится. Ненулевое значение этого параметра задаёт режим накопления и определяет состав и форму выводимой информации:

1

краткий режим вывода; выводятся:

- общее время функционирования системы поддержки (System Time);

- время решения задачи (Task Time) и включённое в него время выполнения функций системы поддержки (Function Time) (без разделения на полезное и потерянное времена);

2

в дополнение к краткому режиму выводятся характеристики столбца,
являющегося суммой столбцов матрицы TaskInter (структуры s_GRPTIMES при суммировании элементов матрицы TaskInter складываются поэлементно);

3

в дополнение к краткому режиму выводятся характеристики строки, являющейся суммой строк матрицы TaskInter;

4

в дополнение к краткому режиму выводятся характеристики столбца, имя-номер которого задан значением параметра StatGrpName;

5

в дополнение к краткому режиму выводятся характеристики строки, имя-номер ко торой задан значением параметра StatGrpName.

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

Стандартно при вызове программой пользователя любой функции системы поддержки номер группы этой функции запоминается в глобальной переменной

int CurrOper; .

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

Выполнение DVM-операций ввода/вывода в Фортране сопровождается обращениями к функциям системы поддержки, не являющихся функциями ввода/вывода. Поэтому для правильного накопления характеристик Фортран-операций ввода/вывода необходимо:

  • установить в начале операции ввода/вывода значение переменной CurrOper, равным IOGrp (выполняется функция ввода/вывода);

  • не менять значение переменой CurrOper при обращении программы пользователя к любой функции системы поддержки до завершения операции ввода/вывода;

  • отменить запрет изменения значения переменной CurrOper при завершении операции ввода/вывода.

Для выполнения перечисленных требований система поддержки предоставляет функции

void biof_(void);

и

void eiof_(void); .

Обращение к функции biof_ осуществляется программой пользователя в начале операции ввода/вывода. Функция biof_ присваивает переменной CurrOper значение, равное IOGrp, и устанавливает в единицу значение глобальной переменной

unsigned char CurrOperFix; .

При ненулевом значении переменной CurrOperFix значение переменной CurrOper не меняется при обращении программы пользователя к функциям системы поддержки.

Функция eiof_ предназначена для оповещения системы поддержки о завершении операции ввода/вывода. Её выполнение заключается в присвоении переменной CurrOperFix нулевого значения, разрешающего изменение значения переменной CurrOper.

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

Внешнее управление функционированием программы сбора статистики осущ ествляется с помощью следующих задаваемых в файлах statist.* параметров:

Is_DVM_STAT

признак включенного сбора статистики;

StatBufLength

длина буфера для сбора статистики в байтах для одного процессора;

StatFileName

имя файла, в который будут выгружены буфера сбора статистики из всех процессоров решающего поля;

DelStatist

признак уничтожения "старого" (оставшегося от предыдущего запуска) файла с накопленной статистикой;

IsTimeExpend

признак подсчёта расхода времени программы пользователя (признак накопления характеристик ProductTime и LostTime в интервальной матрице характеристик IM);

IsSynchrTime

признак подсчёта времени реальной рассинхронизации (признак накопления характеристики ProductTime в столбце MsgPasGrp интервальной матрицы хактеристик IM);

IsTimeVariation

признак подсчёта времени потенциальной рассинхронизации и разброса времён;

MaxIntervalLevel

максимально допустимый уровень вложенности интервалов выполнения программы пользователя.

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

При инициализации программы сбора статистики получают значения, соответствующие рассмотренным в п.11.2 внешним параметрам, следующие глобальные переменные:

char *StatBufPtr

указатель на буфер для сбора статистической информации;

long StatBufLength

длина в байтах буфера для сбора статистической информации.

После инициализации перечисленных выше глобальных переменных для более конкретной настройки сбора статистики осуществляется обращение к функции

void stat_init(void); (файл statist.c).

Функция stat_init должна, в частности, предоставить системе поддержки начальную интервальную матрицу характеристик (инициализировать указатель CurrInterPtr, см. п. 11.1.1).

После выхода из функции stat_init сбор статистики считается системой поддержки включённым.

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

После выхода из рассмотренной в п.11.3 функции stat_init система поддержки начнёт производить накопление характеристик выполнения программы пользователя в предоставленной ей интервальной матрице характеристик.

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

void stat_event(int EventNumber); (файл statist.c),

где EventNumber номер наступившего события трассировки. Параметр EventNumber однозначно определяет как обрабатываемую функцию, так и тип наступившего события (вход в обрабатываемую функцию или выход из неё).

Обращение к функции stat_event по событию EventNumber осуществляется лишь в том случае, если EventNumber-й элемент глобального массива

unsigned char IsStat[];

не равен нулю. Ненулевое значение байта IsStat[EventNumber] (1-255) определяет конкретный вариант обработки события с номером EventNumber функцией stat_event. Инициализация массива IsStat осуществляется в модуле системы поддержки statevnt.c, где для входа и выхода каждой функции системы поддержки, доступной программе пользователя, задаётся нулевое или ненулевое значение соответствующего элемента массива IsStat.

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

  • включён подсчёт времени реальной рассинхронизации и разброса времён (параметр запуска системы поддержки IsTimeVariation задан ненулевым);

  • обрабатываемая функция вызвана непосредственно программой пользователя или функцией системы поддержки dopl_ для запуска или ожидания обмена границами;

  • обрабатываемая функция не является функцией, вызванной программой пользователя при выполнении DVM-операции ввода/вывода в Фортране (значение глобальной переменной CurrOperFix равно нулю, см. п. 11.1.5).

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

ObjectRef StatObjectRef;

ссылку на текущий обрабатываемый объект. Таким объектом, в зависимости от наступившего события, может быть:

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

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

  • распределённый массив;

  • карта отображения распределённого массива;

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

  • редукционная переменная;

  • редукционная группа;

  • группа границ распределённых массивов.

Для распределённого массива в переменную StatObjectRef записывается 0-е слово его заголовка.

Ссылка на текущий обрабатываемый объект, содержащаяся в переменной StatObjectRef, может использоваться программой сбора статистики для получения справочной информации об объекте с помощью функций системы поддержки.

Отметим, что перед обращением к функции stat_event система поддержки запоминает текущее астрономическое время в глобальной переменной

double Curr_dvm_time; .

Поэтому при выполнении функции stat_event опроса текущего времени с помощью функции dvm_time не требуется.

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

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

void stat_done(void); (файл statist.c)

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

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

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

long

MPS_TYPE

тип системы передачи сообщений. Может принимать значения (указаны именованные константы): EMP_MPS_TYPE, GNS_MPS_TYPE, ROU_MPS_TYPE, MPI_MPS_TYPE, PVM_MPS_TYPE.

long

ProcCount

число процессоров выделенного задаче решающего поля (число процессоров начальной процессорной системы).

long

CurrEnvProcCount

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

unsigned char

VMSRank

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

long

VMSSize[]

массив, i-й элемент которого содержит размер начальной процессорной системы по измерению i+1 (0 ≤ i ≤ VMSRank-1).

int

MPS_CurrentProc

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

int

MPS_IOProc

внутренний номер процессора ввода/вывода начальной процессорной системы.

int

DVM_IOProc

внутренний номер процессора ввода/вывода текущей процессорной системы.

int

MPS_CentralProc

внутренний номер центрального процессора начальной процессорной системы.

int

DVM_CentralProc

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

double

Curr_dvm_time

текущее время системы поддержки (результат последнего опроса времени функцией dvm_time).

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

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

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

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

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