pppa_guid-r (1158386), страница 2

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

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

DVM (INTERVAL [целочисленное выражение]) <оператор>,

а в языке FORTRAN-DVM:

CDVM$ INTERVAL[целочисленное выражение]

. . .

CDVM$ ENDINTERVAL

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

3.2Рекомендации по анализу характеристик

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

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

Прежде чем перейти к рекомендациям по анализу потерянного времени, сделаем ряд замечаний.

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

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

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

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

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

  1. Доступ к распределенным данным в параллельной программе отличается от доступа к ним в последовательной программе. Дополнительные накладные расходы, появляющиеся в параллельной программе, могут увеличить время ее выполнения на 10-30 процентов. Однако в параллельной программе может быть проведена такая оптимизация доступа к данным, которая для некоторых программ приведет к ускорению их выполнения по сравнению с последовательным случаем.

  2. Трансформация DVM-программы в программу на стандартных языках Фортран 77 или Си может привести к различиям в оптимизации программ стандартными компиляторами. В результате, параллельная программа может выполняться либо медленнее, либо быстрее. Особенности оптимизации программ современными компиляторами существенно (десятки и сотни процентов) определяют эффективность их выполнения.

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

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

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

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

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

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

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

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

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

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

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

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

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

4Запуск на выполнение со сбором статистики

Для сбора информации о производительности DVM-программы при ее запуске на многопроцессорной ЭВМ или сети рабочих станций параметр Is_DVM_STAT (признак сбора статистики) должен быть равен 1.

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

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

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

Если при сборе данных были обнаружены ошибки, то файл все равно может создаться, а сообщение об ошибке будет выведено на экран или в файл.

Список сообщений:

  1. Statistics: not enough memory for interval, data were not wrote to the file,

  2. Statistics: number of ends of interval > number of begins of interval, data were not wrote to the file,

  3. Statistics: end of interval nline = <N>, name = <name>, no end nline = <N> name =<name>, data were not wrote to the file,

  4. Statistics: StatBufLength=<length>, increase buffer's size by <N> bytes, data were not wrote to the file,

  5. Statistics: StatBufLength=<length>, not enough memory for times of collective operations, increase buffer's size by <N> bytes, only part of times of collective operations and all intervals were wrote to the file.

5Запуск анализатора производительности

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

dvm pa sts <file name> [[[<ch1> <ch2> <ch3>] <level>] <numbers>]

<file name>
<ch1>
<ch2>
<ch3>
<level>
<numbers>

– имя файла вывода,
– y/n вывод основных характеристик,
– y/n вывод сравнительных характеристик,
– y/n вывод характеристик по процессорам,
– номер уровня вложенности,
– список номеров процессоров, для которых, выдавать характеристики.

Запуск команды dvm pa –h выдаст описание параметров команды.

6Форма выдачи характеристик

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

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

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

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

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

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

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

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

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

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

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

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

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