Главная » Просмотр файлов » Вторая версия

Вторая версия (1158279), страница 6

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

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

Для получения величины реальных потери из-за рассинхронизации необходимо задать параметр IsSynchrTime=1.

Замечание 2. Предиктор не выдает пользователю характеристики выполнения программы на каждом процессоре.

4.3.2.2Представление программы в виде иерархии интервалов.

Выполнение всей программы целиком рассматривается как интервал самого высокого (нулевого) уровня. Этот интервал может включать в себя несколько интервалов следующего (первого) уровня. Такими интервалами могут быть параллельные циклы, последовательные циклы, а также любые отмеченные программистом последовательности операторов, выполнение которых всегда начинается с выполнения первого оператора, а заканчивается выполнением последнего. Интервалы первого уровня могут в свою очередь включать в себя интервалы второго уровня, и т.д.

Все описанные выше характеристики вычисляются не только для всей программы, но и для каждого ее интервала. В языке Fortran DVM интервал задается следующим образом:

CDVM$ INTERVAL [<целочисленное-выражение>]
<последовательность-операторов>
CDVM$ END INTERVAL

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

4.3.2.3Выполнение со сбором статистики. Запуск анализатора производительности. Представление характеристик задачи по интервалам

После окончания выполнения со сбором статистики в текущей директории должен создаться файл статистики с именем sts.gz+ (или просто sts, или <имя задачи>. sts.gz+). Если при сборе данных были обнаружены ошибки, то файл все равно может создаться, а сообщение об ошибке будет выведено на экран или в файл. Список сообщений приведен в приложении 4.

Для получения временных характеристик по интервалам следует выполнить команду:

dvm pa <имя файла статистики> < имя файла с характеристиками>

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

  • имя файла с исходным текстом DVM-программы и номер первого оператора интервала в нем (SOURCE, LINE);

  • тип интервала – вся программа, распределенный параллельный цикл (PAR), последовательный цикл (SEQ) или выделенная пользователем последовательность операторов (USER);

  • номер уровня вложенности (LEVEL);

  • количество входов (и выходов) в интервал (EXE_COUNT);

  • значение выражения, заданного при описании интервала средствами языка (EXPR);

  • основные характеристики выполнения и их компоненты (Main characteristics);

  • минимальные, максимальные и средние значения характеристик выполнения программы на каждом процессоре (Comparative characteristics);

  • характеристики выполнения программы на каждом процессоре (Execution characteristics on processors).

При выдаче характеристик их компоненты располагаются в той же строке (справа в скобках), либо в следующей строке (справа от символов “*” или “-”).

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

Информация о минимальных, максимальных и средних значениях таких характеристик оформлена в таблицу аналогичным образом. Некоторые характеристики вообще не выдаются в том случае, если их значения равны нулю.

4.3.2.4Выполнение со сбором трассы. Запуск DVM-предиктора. Представление прогнозируемых характеристик задачи по интервалам

Точность прогнозирования определяется следующими реализационными ограничениями.

Во-первых, предиктор исходит из того, что соотношение времен выполнения на целевой и инструментальной ЭВМ любых фрагментов данной программы является константой - параметром запуска предиктора. Во-вторых, при прогнозировании времен коммуникации, вызываемой выполнением любой коллективной операции (редукция, обновление теневых граней, загрузка буферов удаленного доступа, и т.п.), учитываются только характеристики коммуникационной сети, количество передаваемых сообщений и их объем. Взаимное влияние коммуникаций, вызванных разными коллективными операциями, при этом не учитывается.

Эти ограничения представляются несущественными в том случае, когда целью программиста является достижение эффективности выполнения его программы на ЭВМ различной архитектуры и производительности. Реальные характеристики параллельной программы являются нестабильными (они могут варьироваться от запуска к запуску в зависимости от процессоров, на которые попала задача, загрузки коммуникационной среды и т.п.), и в таком случае отладка эффективности, используя реальную машину, становится затруднительной. Приходиться по нескольку раз запускать параллельную программу, чтобы определить влияние изменений в лучшую или худшую сторону, или захватывать машину в монопольном режиме (что не всегда возможно).

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

Если же целью пользователя является получение временных характеристик для конкретной ЭВМ, то выданные предиктором данные необходимо интерпретировать с учетом характеристик эффективности программы, реально полученных на данной целевой ЭВМ, и их нестабильности и с учетом принципиальных ограничений прогнозирования (таких как кэш, моделирование коммуникаций и др.).

Работа с предиктором разбивается на следующие этапы:

  1. Настроить файл параметров целевой ЭВМ

  2. Выделить иерархию интересующих интервалов выполнения программы

  3. Скомпилировать полученную программу

  4. Запустить программу на выполнение в режиме сбора трасс

  5. Запустить предиктор для каждой интересующей решетки процессоров

Конфигурационная информация, записанная в файле “predictor.par” определяет характеристики целевой (моделируемой) многопроцессорной системы и имеет следующую структуру:

cluster = mvs;

// search optimal processor set 0=off 1=euristik

search=0;

// Cluster properties:

// string = { [int 'x']string [,[int 'x']string]*} | float

// string.CommType = ethernet | transputer | myrinet (num_channels) | string.CommType

// Communication characteristics (mks)

// string.TStart = float

// string.TByte = float

mvs = {512 x mvsP2};

mvs.CommType = myrinet (1);

mvs.TStart = 7;

mvs.TByte = 0.004;

mvsP2 = {2 x mvsP1};

mvsP2.CommType = myrinet (1);

mvsP2.TStart = 1;

mvsP2.TByte = 0.001;

mvsP1 = 1.00;

Предложения, начинающиеся с “//” являются комментариями.

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

Параметр search позволяет выполнить поиск оптимальной конфигурации процессоров, исходя из общего количества процессоров, заданных в кластере (параметром cluster и параметрами дальнейшего уточнения его структуры). По умолчанию параметр search равен 0 (отключен). Эвристический поиск оптимальной конфигурации задается значением 1. Результаты предсказания программы на оптимальной конфигурации записываются в файл best.html.

Дальнейшая структура кластеров, описывается при помощи двух способов

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

  • Если кластер состоит из одного процессора, то надо указать отношение его производительности к производительности процессора инструментальной машины, на которой была получена трассировка для предиктора. Если такой параметр не указан, то по умолчанию считается равным 1. Для определения производительности процессоров разработан тест (см. Приложение 6.)

Если кластер состоит из подкластеров, то для него надо указать параметр CommType, который задает тип коммуникационной сети, связывающей подкластеры между собой. Значение ethernet говорит о том, что система подкластеров объединена в сеть с шинной организацией; значение transputer указывает на то, что для коммуникаций между подкластерами используется система транспьютерного типа; а значение myrinet( num_channels ) используется в случаях, когда передача данных между подкластерами осуществляется по нескольким каналам сети myrinet. При этом возможен вариант, когда для задания CommType используется имя коммуникационной среды другого кластера и тогда в качестве параметров новой среды возьмутся такие же параметры. Это следует рассматривать как сокращение записи параметров.

TStart и TByte являются характеристиками коммуникационной среды между подкластерами и равны соответственно ее латентности и пропускной способности. Эти характеристики используются для вычисления времен передач сообщений. Например для сети рабочих станций при вычислении времени передачи n байт используется линейная апроксимация

T = TStart + n * TByte,

где:

TStart

- латентность (стартовое время передачи данных),

TByte

- пропускная способность (время передачи одного байта).

Для запуска DVM-программы с накоплением трассировки для предиктора используется команда:

dvm runpred [<processor>] <имя_DVM-программы>

где:

<processor> -топология процессоров, т.е. число процессоров по каждому из измерений решетки процессоров. Является не обязательным параметром, и по умолчанию считается топологией одного процессора.

Результат работы:

  • если не указан параметр <processor>, то в текущей директории создается файл <имя_DVM-программы>.ptr с накопленной трассировкой.

  • если указан параметр <processor>, то в текущей директории создаются файлы типа “n_n.btr” (где n меняется от 0 до количества процессоров, заданных параметром <processor>). В каждом таком файле накоплена трассировка для n-ого процессора из топологии.

Замечание 1. При выполнении данной команды автоматически устанавливаются следующие параметры:

Is_DVM_TRACE=1;

- трассировка включена;

FileTrace=1;

- накапливать трассировку в файлах;

MaxIntervalLevel=3;

- максимальный уровень вложенности интервалов;

PreUnderLine=0;

- не подчеркивать call в файле трассы;

PostUnderLine=0;

- не подчеркивать ret в файле трассы;

MaxTraceLevel=0;

- максимальная глубина трассы для вложенных функций

Параметры PreUnderLine, PostUnderLine и MaxTraceLevel являются указанием LIB-DVM на то, что не надо накапливать в трассе строки, состоящие из подчеркиваний, а также не надо трассировать вложенные вызовы функций LIB-DVM, что приводит к существенному сокращению размера файла трассы.

Замечание 2. Для того, чтобы в трассу попала информация об интервалах, надо в файле “pred_trc.par” задать значение Is_DVM_STAT = 1.

Замечание 3. Для того, чтобы в трассу попала информация о векторе весов распределения массива с помощью WGTBLOCK, надо в файле “pred_trc.par” задать значение LoadWeightTrace = 1.

Замечание 4. Расширение для накапливаемых на каждом процессоре трасс задается в файле “systrace.rel” параметром TraceBufferExt=ptr;

Для запуска предиктора существует команда:

dvm pred [матрица процессоров] <имя_DVM-программы>

Выполнение команды управляется переменными окружения (см. файл dvm.bat):

  • Pred_sys - имя конфигурационного файла, описывающего целевую машину;

  • Pred_vis - имя программы Web–браузера.

Для работы предиктора необходимо наличие в текущей директории файла трассы “<имя_DVM-программы>.ptr”.

Результат работы:

  • файл best.html, если был указан параметр поиска оптимальной конфигурации процесоров (search = 1 в файле конфигурации процессорной системы).

  • файл <имя_DVM-программы><[матрица процессоров]>.html с характеристиками выполнения программы в виде html-страницы.

  • Если задан Web - браузер (например, Netscape), то он автоматически вызывается и открывает страницу с результатами предсказания выполнения <имя_DVM-программы> на указанной матрице процессоров. Выполнение команды в этом случае завершается после завершения работы браузера.

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

Каждый фрагмент HTML-файла, содержащий характеристики интервала, начинается с «желтого поля», состоящего из ключа интервала (File - имя файла с исходным текстом DVM-программы, Line - номер строки, в которой расположен первый оператор интервала, Type -типом и, возможно, заданным целочисленным номером – Expr). Кроме того, «желтое поле» содержит две характеристики интервала: Count - количеством входов в интервал и Level – уровень вложенности интервала.

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

Список файлов книги

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