pppa_guid-r (1158386)
Текст из файла
17
Отладка эффективности DVM-программ.
Руководство пользователя.
Октябрь 1999
Институт Прикладной Математики им. М.В.Келдыша
Российская Академия наук
Содержание
1 Введение 3
2 Характеристики производительности 3
2.1 Основные характеристики производительности 3
2.2 Компоненты основных характеристик 6
2.3 Характеристики выполнения программы на каждом процессоре 6
3 Методология отладки эффективности 7
3.1 Представление программы в виде иерархии интервалов 7
3.2 Рекомендации по анализу характеристик 8
4 Запуск на выполнение со сбором статистики 11
5 Запуск анализатора производительности 12
6 Форма выдачи характеристик 12
7 Приложение. Перечень выдаваемых характеристик 16
7.1 Основные характеристики и их компоненты 16
7.2 Характеристики выполнения программы на каждом процессоре 17
1Введение
Эффективность выполнения параллельных программ на многопроцессорных ЭВМ с распределенной памятью определяется следующими основными факторами:
-
степенью распараллеливания программы - долей параллельных вычислений в общем объеме вычислений;
-
равномерностью загрузки процессоров во время выполнения параллельных вычислений;
-
временем, необходимым для выполнения межпроцессорных обменов;
-
степенью совмещения межпроцессорных обменов с вычислениями.
Методы и средства отладки производительности параллельной программы существенно зависят от той модели, в рамках которой разрабатывается параллельная программа.
Существенным достоинством DVM-модели является то, что в любой момент выполнения программы на любом процессоре всегда известно, какой участок программы выполняется - последовательный или параллельный. Кроме того, известны все точки программы, в которых выполняются операции, требующие синхронизации процессоров. Поэтому имеется возможность количественно оценить влияние на эффективность выполнения программы каждого из четырех перечисленных выше факторов, определяющих эффективность выполнения параллельной программы.
Для анализа и отладки эффективности выполнения DVM-программ созданы инструментальные средства, функционирующие следующим образом. Система поддержки выполнения DVM-программ во время выполнения программы на многопроцессорной ЭВМ (или однородной сети ЭВМ) накапливает информацию с временными характеристиками в оперативной памяти процессоров, а при завершении выполнения программы записывает эту информацию в файл, который затем обрабатывается на рабочих станциях в среде Windows 95/NT или UNIX специальным инструментом - визуализатором производительности.
С помощью визуализатора производительности пользователь имеет возможность получить временные характеристики выполнения его программы с различной степенью подробности.
2Характеристики производительности
2.1Основные характеристики производительности
Возможность различать последовательные и параллельные участки программы позволяет при ее выполнении на многопроцессорной ЭВМ спрогнозировать время, которое потребуется для выполнения этой программы на однопроцессорной ЭВМ. Это время называется полезным временем. Тем самым появляется возможность вычислить главную характеристику эффективности параллельного выполнения - коэффициент эффективности, равный отношению полезного времени к общему времени использования процессоров, которое в свою очередь равно произведению времени выполнения программы на многопроцессорной ЭВМ (максимальное значение среди времен выполнения программы на всех используемых ею процессорах) на число используемых процессоров. Разница между общим временем использования процессоров и полезным временем представляет собой потерянное время. Если программист не удовлетворен коэффициентом эффективности выполнения своей программы, то он должен проанализировать составляющие части потерянного времени и причины их возникновения.
Существуют следующие составляющие потерянного времени:
-
потери из-за недостатка параллелизма, приводящего к дублированию вычислений на нескольких процессорах (недостаточный параллелизм). Дублирование вычислений осуществляется в двух случаях. Во-первых, последовательные участки программы выполняются всеми процессорами. Во-вторых, витки некоторых параллельных циклов могут быть по указанию программиста полностью или частично размножены.
-
потери из-за выполнения межпроцессорных обменов (коммуникации).
-
потери из-за простоев тех процессоров, на которых выполнение программы завершилось раньше, чем на остальных (простои).
Время выполнения межпроцессорных обменов, помимо времени пересылки данных с одного процессора на другой, может включать в себя и время (потери из-за рассинхронизации), которое тратится из-за того, что операция приема сообщения на одном процессоре выдана раньше соответствующей операции посылки сообщения на другом процессоре. Поскольку разработчик DVM-программы не оперирует такими низкоуровневыми понятиями, как передача сообщений, то ему должна быть предоставлена информация о рассинхронизации и в других, понятных ему терминах.
При выполнении DVM-программы обмен сообщениями между процессорами производится для осуществления следующих коллективных операций:
-
глобальная редукция (редукционная операция над локальными значениями редукционных переменных, вычисленными на разных процессорах);
-
обновление теневых элементов;
-
загрузка буферов для доступа к удаленным данным;
-
перераспределение данных;
-
операции ввода-вывода (осуществляются через один специально выделенный процессор, который принимает данные от других процессоров или рассылает им данные).
Коллективные операции могут выполняться в двух режимах - синхронном и асинхронном. Для выполнения коллективных операций в асинхронном режиме, при котором обеспечивается совмещение межпроцессорных обменов с вычислениями, служат функции запуска операции и ожидания ее завершения. Если коллективная операция запущена (в синхронном или асинхронном режимах) разными процессорами не одновременно, то при ее выполнении могут возникнуть потери из-за рассинхронизации процессоров. Для оценки величины таких потерь для каждой коллективной операции вычисляются потенциальные потери из-за ее неодновременного запуска - время, которое было бы потрачено всеми процессорами на синхронизацию, если бы выполнение любой коллективной операции начиналось бы с синхронизации процессоров (накладные расходы на пересылку синхронизационных сообщений при этом игнорируются).
Для оценки суммарных потенциальных потерь, которые могут возникнуть из-за неодновременного запуска коллективных операций на разных процессорах, служит специальная характеристика – синхронизация.
Основная причина потерь из-за рассинхронизации, на устранение которой должен быть нацелен программист – разбалансировка загрузки процессоров. Разбалансировка может возникать из-за того, что выполняющиеся в параллельном цикле вычисления распределены между процессорами неравномерно.
Если бы при входе в каждый параллельный цикл и при выходе из него производилась бы синхронизация процессоров (межпроцессорный обмен), то разбалансировка загрузки процессоров обязательно приводила бы к потерям из-за рассинхронизации. Однако, поскольку такая синхронизация осуществляется не для всех циклов, то разбалансировка на разных участках программы может компенсироваться и реальные потери могут быть незначительными или вообще отсутствовать. Для оценки возможных потерь из-за разбалансировки программисту выдается некоторая обобщенная характеристика - разбалансировка. С целью снижения накладных расходов при вычислении этой характеристики делается предположение, что синхронизация процессоров будет производиться только один раз - при завершении выполнении программы. Поэтому сначала для каждого процессора определяется его суммарная вычислительная загрузка, а затем прогнозируется вызываемая разбалансировкой величина потерь из-за рассинхронизации. Однако, поскольку в реальной программе синхронизация процессоров осуществляется не только при завершении программы, а гораздо чаще, то реальные потери будут превосходить эту величину. Реальные потери из-за рассинхронизации будут еще более превосходить величину разбалансировки в том случае, когда вычислительная загрузка процессоров сильно изменяется при многократном выполнении одного и того же параллельного цикла.
Рассинхронизация может возникать не только из-за разбалансировки, но также из-за различий во временах завершения выполнения на разных процессорах одной и той же коллективной операции, вызванных особенностями ее реализации на конкретной параллельной ЭВМ. Для оценки величины такой потенциальной рассинхронизации программисту выдается специальная характеристика – разброс времен завершения коллективных операций. Как и время разбалансировки, эта характеристика является интегральной. Она достаточно точно отражает возможные потери из-за рассинхронизации в том случае, когда различия времен выполнения коллективных операций не являются случайными, а определяются, например, топологией коммуникационной сети или функциональной специализацией процессоров (процессор ввода-вывода, процессор-исполнитель редукционных операций, и т.п.).
Важной характеристикой, отражающей потенциальное сокращение коммуникационных расходов за счет совмещения межпроцессорных обменов с вычислениями, является время перекрытия обменов вычислениями.
Основные характеристики эффективности являются интегральными характеристиками, позволяющими оценить степень распараллеливания программы и основные резервы ее повышения. Однако для исследования эффективности сложных программ одних интегральных характеристик может оказаться недостаточно. В таком случае программист может получить более подробную информацию о выполнении своей программы и ее отдельных частей.
2.2Компоненты основных характеристик
Некоторые из описанных выше основных характеристик состоят из нескольких компонент, значения которых могут быть выданы программисту.
Полезное время состоит из полезного процессорного времени, системного процессорного времени и времени выполнения операций ввода-вывода (без учета обменов сообщениями в них).
Потери из-за недостаточного параллелизма состоят из двух компонент, позволяющих различать потери в программе пользователя и соответствующие системные расходы.
Время коммуникаций включает в себя время потерь из-за рассинхронизации и время, которое тратится на запуск коллективных операций в асинхронном режиме и которое при корректном функционировании коммуникационных библиотек (MPI, PVM) должно быть пренебрежимо мало по сравнению со временем коммуникаций.
Для уточнения времени коммуникаций оно разлагается на следующие составляющие:
-
время операций редукции;
-
время операций обновления теневых элементов;
-
время загрузки буферов для доступа к удаленным данным;
-
время перераспределения данных;
-
время обмена сообщениями при выполнении операций ввода-вывода.
Реальные и потенциальные потери из-за рассинхронизации, а также потенциальные потери из-за разброса времен завершения выполнения коллективных операций, разлагаются на компоненты аналогичным образом.
Время перекрытия обменов вычислениями вычисляется для всех коллективных операций, выполняемых в асинхронном режиме.
2.3Характеристики выполнения программы на каждом процессоре
Основой для расчета описанных выше основных характеристик и их компонент являются характеристики выполнения программы на каждом процессоре. Эти характеристики могут быть полезны для более глубокого анализа эффективности выполнения параллельной программы. Помимо значений этих характеристик выдаются также их средние значения, а также максимальные и минимальные значения с указанием соответствующего номера процессора.
3Методология отладки эффективности
Для анализа эффективности выполнения сложных параллельных программ недостаточно иметь характеристики выполнения всей программы целиком, а требуется уметь детализировать эти характеристики применительно к отдельным частям программы. Ниже описываются соответствующие средства, которые позволяют представить выполнение DVM-программы в виде иерархии интервалов, а также приводятся рекомендации по анализу характеристик.
3.1Представление программы в виде иерархии интервалов
Выполнение всей программы целиком рассматривается как интервал самого высокого (нулевого) уровня. Этот интервал может включать в себя несколько интервалов следующего (первого) уровня. Такими интервалами могут быть параллельные циклы, последовательные циклы, а также любые отмеченные программистом последовательности операторов, выполнение которых всегда начинается с выполнения первого оператора, а заканчивается выполнением последнего. Интервалы первого уровня могут в свою очередь включать в себя интервалы второго уровня, и т.д.
Все описанные выше характеристики вычисляются не только для всей программы, но и для каждого ее интервала. При этом многократное выполнение интервала может рассматриваться (с некоторой долей условности) как выполнение на тех же процессорах отдельной программы, состоящей из развернутой последовательности тех операторов интервала, которые были выполнены при реальном прохождении параллельной программы. Фактически же, характеристики таких многократно выполняемых интервалов накапливаются при каждом их выполнении. При этом интервалы, входящие в состав одного и того же интервала более высокого уровня, идентифицируются именем файла с исходным текстом программы и номером строки в нем, соответствующим началу интервала, а также, возможно, некоторым приписанным ему программистом целочисленным номером.
Разбиением программы на интервалы пользователь управляет при ее компиляции. Он может задать следующие режимы:
-
режим, при котором интервалами будут все параллельные циклы и охватывающие их последовательные циклы (опция -e1);
-
режим, при котором интервалами будут все параллельные циклы и отмеченные им в программе последовательности операторов (опция -e2);
-
объединение предыдущих двух режимов (опция -e3);
-
режим, когда интервалами будут все параллельные и последовательные циклы, а также отмеченные пользователем последовательности операторов (опция -e4).
Для выделения последовательности операторов в качестве интервалов служат специальные конструкции в языках C-DVM и FORTRAN-DVM. В языке C-DVM интервал задается следующим образом:
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















