Разработка алгоритмов (а в особенности методов параллельных
вычислений) для решения сложных научно-технических задач часто
представляет собой значительную проблему. Для снижения сложности
рассматриваемой темы оставим в стороне математические аспекты
разработки и доказательства сходимости алгоритмов – эти вопросы
в той или иной степени изучаются в ряде "классических"
математических учебных курсов. Здесь же мы будем полагать, что
вычислительные схемы решения задач, рассматриваемых далее в
качестве примеров, уже
(рис 4.1) Общая схема разработки параллельных алгоритмовПри самом общем рассмотрении понятно, что объем вычислений для каждого используемого процессора должен быть примерно одинаков – это позволит обеспечить равномерную вычислительную загрузку ( балансировку ) процессоров. Кроме того, также понятно, что распределение подзадач между процессорами должно быть выполнено таким образом, чтобы количество информационных связей ( коммуникационных взаимодействий ) между подзадачами было минимальным.
После выполнения всех перечисленных этапов проектирования можно оценить эффективность разрабатываемых параллельных методов: для этого обычно определяются значения показателей качества порождаемых параллельных вычислений ( ускорение, эффективность, масштабируемость ). По результатам проведенного анализа может оказаться необходимым повторение отдельных (в предельном случае всех) этапов разработки – следует отметить, что возврат к предшествующим шагам разработки может происходить на любой стадии проектирования параллельных вычислительных схем.
Поэтому часто выполняемым дополнительным действием в приведенной выше схеме проектирования является корректировка состава сформированного множества задач после определения имеющегося количества процессоров – подзадачи могу быть укрупнены ( агрегированы ) при наличии малого числа процессоров или, наоборот, детализированы в противном случае. В целом, данные действия могут быть определены как масштабирование разрабатываемого алгоритма и выделены в качестве отдельного этапа проектирования параллельных вычислений.
Чтобы применить получаемый в конечном итоге параллельный метод,
необходимо выполнить разработку программ для решения
сформированного набора подзадач и разместить разработанные
программы по процессорам в соответствии с выбранной схемой
распределения подзадач. Для проведения
Следует отметить, что каждый процессор обычно выделяется для
решения единственной подзадачи, однако при наличии большого
количества подзадач или использовании ограниченного числа
процессоров это правило может не соблюдаться и, в результате, на
процессорах может выполняться одновременно несколько программ
(
Рассмотрев внимательно разработанную схему проектирования и
реализации параллельных вычислений, можно отметить, что данный
подход в значительной степени ориентирован на вычислительные
Рассмотренная схема проектирования и реализации параллельных
вычислений дает способ понимания параллельных алгоритмов и
программ. На стадии проектирования параллельный метод может быть
представлен в виде
(рис 4.2) Модель параллельной программы в виде графа "процессы - каналы"Использование двух моделей параллельных
Дадим дополнительные пояснения для используемых понятий в модели "процессы – каналы":
В общем случае, можно считать, что
Следует отметить важное достоинство рассмотренной модели
"процессы – каналы" – в ней проводится четкое
разделение локальных (выполняемых на отдельном процессоре)
вычислений и действий по организации информационного
взаимодействия одновременно выполняемых
Рассмотрим более подробно изложенную выше методику разработки
параллельных алгоритмов. В значительной степени данная методика
опирается на подход, впервые разработанный в [], и, как
отмечалось ранее, включает этапы A (такая задача возникает, например, при численном
решении систем линейных уравнений для определения ведущего
элемента метода Гаусса):$$y = \max_{1 \le i, j \le N} a_{ij}$$
Данная задача носит полностью иллюстративный характер, и после рассмотрения этапов разработки в оставшейся части лекции будет приведен более полный пример использования данной методики для разработки параллельных алгоритмов. Кроме того, данная схема разработки будет применена и при изложении всех рассматриваемых далее методов параллельных вычислений.
Выбор способа разделения вычислений на независимые части основывается на анализе вычислительной схемы решения исходной задачи. Требования, которым должен удовлетворять выбираемый подход, обычно состоят в обеспечении равного объема вычислений в выделяемых подзадачах и минимума информационных зависимостей между этими подзадачами (при прочих равных условиях нужно отдавать предпочтение редким операциям передачи сообщений большего размера по сравнению с частыми пересылками данных небольшого объема). В общем случае, проведение анализа и выделение задач представляет собой достаточно сложную проблему – ситуацию помогает разрешить существование двух часто встречающихся типов вычислительных схем (см. рис. 4.3).
(рис 4.3) Разделение данных матрицы: а) ленточная схема, б) блочная схемаДля большого класса задач вычисления сводятся к выполнению
однотипной обработки большого набора данных – к такому классу
задач относятся, например,
(рис 4.4) Регулярные одно-, дву- и трехмерные структуры базовых подзадач после декомпозиции данныхДля другой части задач вычисления могут состоять в выполнении
разных операций над одним и тем же набором данных – в этом
случае говорят о существовании
Важный вопрос при
Для рассматриваемой учебной задачи достаточный уровень декомпозиции может состоять, например, в разделении матрицы на множество отдельных строк и получении на этой основе набора подзадач поиска максимальных значений в отдельных строках; порождаемая при этом структура информационных связей соответствует линейному графу (см. рис. 4.5).
(рис 4.5) Структура информационных связей учебной задачиДля оценки корректности этапа разделения вычислений на
независимые части можно воспользоваться
При наличии вычислительной схемы решения задачи после
выделения базовых подзадач определение информационных
зависимостей между ними обычно не вызывает больших затруднений.
При этом, однако, следует отметить, что на самом деле этапы
При проведении анализа информационных зависимостей между подзадачами следует различать (предпочтительные формы информационного взаимодействия выделены подчеркиванием):
Как уже отмечалось в предыдущем пункте, для учебной задачи поиска максимального значения при использовании в качестве базовых элементов подзадач поиска максимальных значений в отдельных строках исходной матрицы структура информационных связей имеет вид, представленный на рис. 4.5.
Для оценки правильности этапа выделения информационных
зависимостей можно воспользоваться
Масштабирование разработанной вычислительной схемы
параллельных вычислений проводится в случае, если количество
имеющихся подзадач отличается от числа планируемых к
использованию процессоров. Для сокращения количества подзадач
необходимо выполнить укрупнение ( агрегацию ) вычислений.
Применяемые здесь правила совпадают с рекомендациями начального
этапа
При недостаточном количестве имеющихся подзадач для загрузки всех доступных к использованию процессоров необходимо выполнить детализацию ( декомпозицию ) вычислений. Как правило, проведение подобной декомпозиции не вызывает каких-либо затруднений, если для базовых задач методы параллельных вычислений являются известными.
Выполнение этапа масштабирования вычислений должно свестись, в конечном итоге, к разработке правил агрегации и декомпозиции подзадач, которые должны параметрически зависеть от числа процессоров, применяемых для вычислений.
Для рассматриваемой учебной задачи поиска максимального значения агрегация вычислений может состоять в объединении отдельных строк в группы (ленточная схема разделения матрицы – см. рис. 4.3а), при декомпозиции подзадач строки исходной матрицы могут разбиваться на несколько частей (блоков).
Список контрольных вопросов, предложенный в [] для оценки правильности этапа масштабирования, выглядит следующим образом:
Распределение подзадач между процессорами является завершающим
этапом разработки параллельного метода. Надо отметить, что
управление распределением нагрузки для процессоров возможно
только для вычислительных систем с распределенной памятью, для
Основной показатель успешности выполнения данного этапа – эффективность использования процессоров, определяемая как
относительная доля времени, в течение которого процессоры
использовались для вычислений, связанных с решением исходной
задачи. Пути достижения хороших результатов в этом направлении
остаются прежними: как и ранее, необходимо обеспечить равномерное
распределение вычислительной нагрузки между процессорами и
минимизировать количество сообщений, передаваемых между ними.
Точно так же как и на предшествующих этапах проектирования,
оптимальное решение проблемы распределения подзадач между
процессорами основывается на анализе информационной связности
Следует отметить, что требование минимизации информационных обменов между процессорами может противоречить условию равномерной загрузки. Мы можем разместить все подзадачи на одном процессоре и полностью устранить межпроцессорную передачу сообщений, однако понятно, что загрузка большинства процессоров в этом случае будет минимальной.
Для учебной задачи поиска максимального значения распределение
подзадач между процессорами не вызывает каких-либо затруднений –
достаточно лишь обеспечить размещение подзадач, между которыми
имеются информационные связи, на процессорах, для которых
существуют прямые
Решение вопросов балансировки вычислительной нагрузки
значительно усложняется, если схема вычислений может изменяться в
ходе решения задачи. Причиной этого могут быть, например,
неоднородные сетки при решении уравнений в частных производных,
В качестве примера дадим краткую характеристику широко используемого способа динамического управления распределением вычислительной нагрузки, обычно именуемого схемой "менеджер – исполнитель" ( the manager-worker scheme ). При использовании данного подхода предполагается, что подзадачи могут возникать и завершаться в ходе вычислений, при этом информационные взаимодействия между подзадачами либо полностью отсутствуют, либо минимальны. В соответствии с рассматриваемой схемой для управления распределением нагрузки в системе выделяется отдельный процессор-менеджер, которому доступна информация обо всех имеющихся подзадачах. Остальные процессоры системы являются исполнителями, которые для получения вычислительной нагрузки обращаются к процессору-менеджеру. Порождаемые в ходе вычислений новые подзадачи передаются обратно процессору-менеджеру и могут быть получены для решения при последующих обращениях процессоров- исполнителей. Завершение вычислений происходит в момент, когда процессоры-исполнители завершили решение всех переданных им подзадач, а процессор-менеджер не имеет каких-либо вычислительных работ для выполнения.
Предложенный в [] перечень контрольных вопросов для проверки этапа распределения подзадач состоит в следующем:
Многие задачи в области физики сводятся к операциям обработки
данных для каждой пары объектов имеющейся физической системы.
Такой задачей является, в частности, проблема, широко известная в
литературе как гравитационная задача N тел (или просто задача N
тел ) – см., например, []. В самом общем виде задача может быть
описана следующим образом.
Пусть дано большое количество тел (планет, звезд и т. д.), для
каждого из которых известна масса, начальное положение и
скорость. Под действием гравитации положение тел меняется, и
требуемое решение задачи состоит в моделировании динамики
изменения системы N тел на протяжении некоторого задаваемого
интервала времени. Для проведения такого моделирования заданный
интервал времени обычно разбивается на временные отрезки
небольшой длительности и далее на каждом шаге моделирования
вычисляются силы, действующие на каждое тело, а затем обновляются
скорости и положения тел.
Очевидный алгоритм решения задачи N тел состоит в рассмотрении
на каждом шаге моделирования всех пар объектов физической системы
и выполнении для каждой получаемой пары всех необходимых
расчетов. Как результат, при таком подходе время выполнения одной
итерации моделирования будет
Как следует из приведенного описания, вычислительная схема
рассмотренного алгоритма является сравнительно простой, что
позволяет использовать задачу N тел в качестве еще одной
наглядной демонстрации применения методики разработки
параллельных алгоритмов.
Выбор способа разделения вычислений не вызывает каких-либо затруднений – очевидный подход состоит в выборе в качестве базовой подзадачи всего набора вычислений, связанных с обработкой данных какого-либо одного тела физической системы.
Выполнение вычислений, связанных с каждой подзадачей, становится возможным только в случае, когда в подзадачах имеются данные (положение и скорости передвижения) обо всех телах физической системы. Как результат, перед началом каждой итерации моделирования каждая подзадача должна получить все необходимые сведения от всех других подзадач системы. Такая процедура передачи данных, как отмечалось в лекции 3, именуется операцией сбора данных ( single-node gather ). В рассматриваемом алгоритме данная операция должна быть выполнена для каждой подзадачи – такой вариант передачи данных обычно именуется операцией обобщенного сбора данных ( multi-node gather или all gather ).
Определение требований к необходимым результатам информационного обмена не приводит к однозначному установлению нужного информационного обмена между подзадачами – достижение требуемых результатов может быть обеспечено при помощи разных алгоритмов выполнения операции обобщенного сбора данных.
Наиболее простой способ выполнения необходимого
информационного обмена состоит в реализации последовательности
шагов, на каждом из которых все имеющиеся подзадачи разбиваются
попарно и обмен данными осуществляется между подзадачами
образовавшихся пар. При надлежащей организации попарного
разделения подзадач ( N-1 )-кратное повторение описанных действий
приведет к полной реализации требуемой операции сбора данных.
Рассмотренный выше метод организации информационного обмена
является достаточно трудоемким – для сбора всех необходимых
данных требуется провести N-1 итерацию, на каждой из которых
выполняется одновременно N/2 log2N итераций. Следует
отметить, что при этом объем пересылаемых данных в каждой
операции обмена удваивается от итерации к итерации: на первой
итерации между подзадачами пересылаются данные об одном теле
системы, на второй – о двух телах и т. д.
Как правило, число тел физической системы N значительно
превышает количество процессоров p. Поэтому рассмотренные ранее
подзадачи следует укрупнить, объединив в рамках одной подзадачи
вычисления для группы из N/p тел. После проведения подобной
агрегации число подзадач и количество процессоров будет совпадать
и при распределении подзадач между процессорами останется лишь
обеспечить наличие прямых коммуникационных линий между
процессорами с подзадачами, у которых имеются информационные
обмены при выполнении операции сбора данных.
Оценим эффективность разработанных способов параллельных
вычислений для решения задачи N тел. Поскольку предложенные
варианты отличаются только методами выполнения информационных
обменов, для сравнения подходов достаточно определить
длительность операции обобщенного сбора данных. Используем для
оценки времени передачи сообщений модель, предложенную Хокни (см.
лекцию 3), - тогда длительность выполнения операции сбора данных
для первого варианта параллельных вычислений может быть выражена
как$$T_p^1(comm)= (p-1)(\alpha + m(N/p)/\beta),$$
где $$\alpha$$ и $$\beta$$ есть параметры модели Хокни (латентность и пропускная
способность сети передачи данных), а m задает объем пересылаемых
данных для одного тела физической системы.
Для второго способа информационного обмена, как уже отмечалось
ранее, объем пересылаемых данных на разных итерациях операции
сбора данных различается. На первой итерации объем пересылаемых
сообщений составляет Nm/p, на второй этот объем увеличивается
вдвое и оказывается равным 2Nm/p и т.д. В общем случае, для
итерации с номером i объем сообщений оценивается как 2i-1Nm/p.
Как результат, длительность выполнения операции сбора данных в
этом случае может быть определена при помощи следующего
выражения:$$T_p^2(comm)=\sum_{i=1}^{\log p} (\alpha + 2^{i-1} m (N/p)/\beta) =
\alpha \log p + m(N/p)(p-1)/\beta .$$
Сравнение полученных выражений показывает, что второй разработанный способ параллельных вычислений имеет существенно более высокую эффективность, требует меньших коммуникационных затрат и допускает лучшую масштабируемость при увеличении количества используемых процессоров.
В лекции была рассмотрена методика разработки параллельных
алгоритмов, предложенная в []. Она включает в себя этапы
Для описания получаемых в ходе разработки вычислительных параллельных схем рассмотрены две модели. Первая из них – модель "подзадачи – сообщения" может быть использована на стадии проектирования параллельных алгоритмов, вторая — модель "процессы – каналы" – может быть применена на стадии реализации методов в виде параллельных программ.
В завершение раздела показывается применение рассмотренной
методики разработки параллельных алгоритмов на примере решения
гравитационной задачи N тел.
Рассмотренная в лекции методика разработки параллельных алгоритмов впервые была предложена в []. В этой работе изложение методики проводится более детально, кроме того, в ней содержится несколько примеров ее использования для разработки параллельных методов для решения ряда вычислительных задач.
Полезной при рассмотрении вопросов проектирования и разработки параллельных алгоритмов может оказаться также работа [].
Гравитационная задача N тел более подробно
рассматривается в [].
N тел?1. Разработайте схему параллельных вычислений, используя рассмотренную в разделе методику проектирования и разработки параллельных методов:
p>N );2. Разработайте схему параллельных вычислений для задачи умножения матрицы на вектор, используя рассмотренную в разделе методику проектирования и разработки параллельных методов.
Разработка алгоритмов (а в особенности методов параллельных
вычислений) для решения сложных научно-технических задач часто
представляет собой значительную проблему. Для снижения сложности
рассматриваемой темы оставим в стороне математические аспекты
разработки и доказательства сходимости алгоритмов – эти вопросы
в той или иной степени изучаются в ряде "классических"
математических учебных курсов. Здесь же мы будем полагать, что
вычислительные схемы решения задач, рассматриваемых далее в
качестве примеров, уже
(рис 4.1) Общая схема разработки параллельных алгоритмовПри самом общем рассмотрении понятно, что объем вычислений для каждого используемого процессора должен быть примерно одинаков – это позволит обеспечить равномерную вычислительную загрузку ( балансировку ) процессоров. Кроме того, также понятно, что распределение подзадач между процессорами должно быть выполнено таким образом, чтобы количество информационных связей ( коммуникационных взаимодействий ) между подзадачами было минимальным.
После выполнения всех перечисленных этапов проектирования можно оценить эффективность разрабатываемых параллельных методов: для этого обычно определяются значения показателей качества порождаемых параллельных вычислений ( ускорение, эффективность, масштабируемость ). По результатам проведенного анализа может оказаться необходимым повторение отдельных (в предельном случае всех) этапов разработки – следует отметить, что возврат к предшествующим шагам разработки может происходить на любой стадии проектирования параллельных вычислительных схем.
Поэтому часто выполняемым дополнительным действием в приведенной выше схеме проектирования является корректировка состава сформированного множества задач после определения имеющегося количества процессоров – подзадачи могу быть укрупнены ( агрегированы ) при наличии малого числа процессоров или, наоборот, детализированы в противном случае. В целом, данные действия могут быть определены как масштабирование разрабатываемого алгоритма и выделены в качестве отдельного этапа проектирования параллельных вычислений.
Чтобы применить получаемый в конечном итоге параллельный метод,
необходимо выполнить разработку программ для решения
сформированного набора подзадач и разместить разработанные
программы по процессорам в соответствии с выбранной схемой
распределения подзадач. Для проведения
Следует отметить, что каждый процессор обычно выделяется для
решения единственной подзадачи, однако при наличии большого
количества подзадач или использовании ограниченного числа
процессоров это правило может не соблюдаться и, в результате, на
процессорах может выполняться одновременно несколько программ
(
Рассмотрев внимательно разработанную схему проектирования и
реализации параллельных вычислений, можно отметить, что данный
подход в значительной степени ориентирован на вычислительные
Рассмотренная схема проектирования и реализации параллельных
вычислений дает способ понимания параллельных алгоритмов и
программ. На стадии проектирования параллельный метод может быть
представлен в виде
(рис 4.2) Модель параллельной программы в виде графа "процессы - каналы"Использование двух моделей параллельных
Дадим дополнительные пояснения для используемых понятий в модели "процессы – каналы":
В общем случае, можно считать, что
Следует отметить важное достоинство рассмотренной модели
"процессы – каналы" – в ней проводится четкое
разделение локальных (выполняемых на отдельном процессоре)
вычислений и действий по организации информационного
взаимодействия одновременно выполняемых
Рассмотрим более подробно изложенную выше методику разработки
параллельных алгоритмов. В значительной степени данная методика
опирается на подход, впервые разработанный в [], и, как
отмечалось ранее, включает этапы A (такая задача возникает, например, при численном
решении систем линейных уравнений для определения ведущего
элемента метода Гаусса):$$y = \max_{1 \le i, j \le N} a_{ij}$$
Данная задача носит полностью иллюстративный характер, и после рассмотрения этапов разработки в оставшейся части лекции будет приведен более полный пример использования данной методики для разработки параллельных алгоритмов. Кроме того, данная схема разработки будет применена и при изложении всех рассматриваемых далее методов параллельных вычислений.
Выбор способа разделения вычислений на независимые части основывается на анализе вычислительной схемы решения исходной задачи. Требования, которым должен удовлетворять выбираемый подход, обычно состоят в обеспечении равного объема вычислений в выделяемых подзадачах и минимума информационных зависимостей между этими подзадачами (при прочих равных условиях нужно отдавать предпочтение редким операциям передачи сообщений большего размера по сравнению с частыми пересылками данных небольшого объема). В общем случае, проведение анализа и выделение задач представляет собой достаточно сложную проблему – ситуацию помогает разрешить существование двух часто встречающихся типов вычислительных схем (см. рис. 4.3).
(рис 4.3) Разделение данных матрицы: а) ленточная схема, б) блочная схемаДля большого класса задач вычисления сводятся к выполнению
однотипной обработки большого набора данных – к такому классу
задач относятся, например,
(рис 4.4) Регулярные одно-, дву- и трехмерные структуры базовых подзадач после декомпозиции данныхДля другой части задач вычисления могут состоять в выполнении
разных операций над одним и тем же набором данных – в этом
случае говорят о существовании
Важный вопрос при
Для рассматриваемой учебной задачи достаточный уровень декомпозиции может состоять, например, в разделении матрицы на множество отдельных строк и получении на этой основе набора подзадач поиска максимальных значений в отдельных строках; порождаемая при этом структура информационных связей соответствует линейному графу (см. рис. 4.5).
(рис 4.5) Структура информационных связей учебной задачиДля оценки корректности этапа разделения вычислений на
независимые части можно воспользоваться
При наличии вычислительной схемы решения задачи после
выделения базовых подзадач определение информационных
зависимостей между ними обычно не вызывает больших затруднений.
При этом, однако, следует отметить, что на самом деле этапы
При проведении анализа информационных зависимостей между подзадачами следует различать (предпочтительные формы информационного взаимодействия выделены подчеркиванием):
Как уже отмечалось в предыдущем пункте, для учебной задачи поиска максимального значения при использовании в качестве базовых элементов подзадач поиска максимальных значений в отдельных строках исходной матрицы структура информационных связей имеет вид, представленный на рис. 4.5.
Для оценки правильности этапа выделения информационных
зависимостей можно воспользоваться
Масштабирование разработанной вычислительной схемы
параллельных вычислений проводится в случае, если количество
имеющихся подзадач отличается от числа планируемых к
использованию процессоров. Для сокращения количества подзадач
необходимо выполнить укрупнение ( агрегацию ) вычислений.
Применяемые здесь правила совпадают с рекомендациями начального
этапа
При недостаточном количестве имеющихся подзадач для загрузки всех доступных к использованию процессоров необходимо выполнить детализацию ( декомпозицию ) вычислений. Как правило, проведение подобной декомпозиции не вызывает каких-либо затруднений, если для базовых задач методы параллельных вычислений являются известными.
Выполнение этапа масштабирования вычислений должно свестись, в конечном итоге, к разработке правил агрегации и декомпозиции подзадач, которые должны параметрически зависеть от числа процессоров, применяемых для вычислений.
Для рассматриваемой учебной задачи поиска максимального значения агрегация вычислений может состоять в объединении отдельных строк в группы (ленточная схема разделения матрицы – см. рис. 4.3а), при декомпозиции подзадач строки исходной матрицы могут разбиваться на несколько частей (блоков).
Список контрольных вопросов, предложенный в [] для оценки правильности этапа масштабирования, выглядит следующим образом:
Распределение подзадач между процессорами является завершающим
этапом разработки параллельного метода. Надо отметить, что
управление распределением нагрузки для процессоров возможно
только для вычислительных систем с распределенной памятью, для
Основной показатель успешности выполнения данного этапа – эффективность использования процессоров, определяемая как
относительная доля времени, в течение которого процессоры
использовались для вычислений, связанных с решением исходной
задачи. Пути достижения хороших результатов в этом направлении
остаются прежними: как и ранее, необходимо обеспечить равномерное
распределение вычислительной нагрузки между процессорами и
минимизировать количество сообщений, передаваемых между ними.
Точно так же как и на предшествующих этапах проектирования,
оптимальное решение проблемы распределения подзадач между
процессорами основывается на анализе информационной связности
Следует отметить, что требование минимизации информационных обменов между процессорами может противоречить условию равномерной загрузки. Мы можем разместить все подзадачи на одном процессоре и полностью устранить межпроцессорную передачу сообщений, однако понятно, что загрузка большинства процессоров в этом случае будет минимальной.
Для учебной задачи поиска максимального значения распределение
подзадач между процессорами не вызывает каких-либо затруднений –
достаточно лишь обеспечить размещение подзадач, между которыми
имеются информационные связи, на процессорах, для которых
существуют прямые
Решение вопросов балансировки вычислительной нагрузки
значительно усложняется, если схема вычислений может изменяться в
ходе решения задачи. Причиной этого могут быть, например,
неоднородные сетки при решении уравнений в частных производных,
В качестве примера дадим краткую характеристику широко используемого способа динамического управления распределением вычислительной нагрузки, обычно именуемого схемой "менеджер – исполнитель" ( the manager-worker scheme ). При использовании данного подхода предполагается, что подзадачи могут возникать и завершаться в ходе вычислений, при этом информационные взаимодействия между подзадачами либо полностью отсутствуют, либо минимальны. В соответствии с рассматриваемой схемой для управления распределением нагрузки в системе выделяется отдельный процессор-менеджер, которому доступна информация обо всех имеющихся подзадачах. Остальные процессоры системы являются исполнителями, которые для получения вычислительной нагрузки обращаются к процессору-менеджеру. Порождаемые в ходе вычислений новые подзадачи передаются обратно процессору-менеджеру и могут быть получены для решения при последующих обращениях процессоров- исполнителей. Завершение вычислений происходит в момент, когда процессоры-исполнители завершили решение всех переданных им подзадач, а процессор-менеджер не имеет каких-либо вычислительных работ для выполнения.
Предложенный в [] перечень контрольных вопросов для проверки этапа распределения подзадач состоит в следующем:
Многие задачи в области физики сводятся к операциям обработки
данных для каждой пары объектов имеющейся физической системы.
Такой задачей является, в частности, проблема, широко известная в
литературе как гравитационная задача N тел (или просто задача N
тел ) – см., например, []. В самом общем виде задача может быть
описана следующим образом.
Пусть дано большое количество тел (планет, звезд и т. д.), для
каждого из которых известна масса, начальное положение и
скорость. Под действием гравитации положение тел меняется, и
требуемое решение задачи состоит в моделировании динамики
изменения системы N тел на протяжении некоторого задаваемого
интервала времени. Для проведения такого моделирования заданный
интервал времени обычно разбивается на временные отрезки
небольшой длительности и далее на каждом шаге моделирования
вычисляются силы, действующие на каждое тело, а затем обновляются
скорости и положения тел.
Очевидный алгоритм решения задачи N тел состоит в рассмотрении
на каждом шаге моделирования всех пар объектов физической системы
и выполнении для каждой получаемой пары всех необходимых
расчетов. Как результат, при таком подходе время выполнения одной
итерации моделирования будет
Как следует из приведенного описания, вычислительная схема
рассмотренного алгоритма является сравнительно простой, что
позволяет использовать задачу N тел в качестве еще одной
наглядной демонстрации применения методики разработки
параллельных алгоритмов.
Выбор способа разделения вычислений не вызывает каких-либо затруднений – очевидный подход состоит в выборе в качестве базовой подзадачи всего набора вычислений, связанных с обработкой данных какого-либо одного тела физической системы.
Выполнение вычислений, связанных с каждой подзадачей, становится возможным только в случае, когда в подзадачах имеются данные (положение и скорости передвижения) обо всех телах физической системы. Как результат, перед началом каждой итерации моделирования каждая подзадача должна получить все необходимые сведения от всех других подзадач системы. Такая процедура передачи данных, как отмечалось в лекции 3, именуется операцией сбора данных ( single-node gather ). В рассматриваемом алгоритме данная операция должна быть выполнена для каждой подзадачи – такой вариант передачи данных обычно именуется операцией обобщенного сбора данных ( multi-node gather или all gather ).
Определение требований к необходимым результатам информационного обмена не приводит к однозначному установлению нужного информационного обмена между подзадачами – достижение требуемых результатов может быть обеспечено при помощи разных алгоритмов выполнения операции обобщенного сбора данных.
Наиболее простой способ выполнения необходимого
информационного обмена состоит в реализации последовательности
шагов, на каждом из которых все имеющиеся подзадачи разбиваются
попарно и обмен данными осуществляется между подзадачами
образовавшихся пар. При надлежащей организации попарного
разделения подзадач ( N-1 )-кратное повторение описанных действий
приведет к полной реализации требуемой операции сбора данных.
Рассмотренный выше метод организации информационного обмена
является достаточно трудоемким – для сбора всех необходимых
данных требуется провести N-1 итерацию, на каждой из которых
выполняется одновременно N/2 log2N итераций. Следует
отметить, что при этом объем пересылаемых данных в каждой
операции обмена удваивается от итерации к итерации: на первой
итерации между подзадачами пересылаются данные об одном теле
системы, на второй – о двух телах и т. д.
Как правило, число тел физической системы N значительно
превышает количество процессоров p. Поэтому рассмотренные ранее
подзадачи следует укрупнить, объединив в рамках одной подзадачи
вычисления для группы из N/p тел. После проведения подобной
агрегации число подзадач и количество процессоров будет совпадать
и при распределении подзадач между процессорами останется лишь
обеспечить наличие прямых коммуникационных линий между
процессорами с подзадачами, у которых имеются информационные
обмены при выполнении операции сбора данных.
Оценим эффективность разработанных способов параллельных
вычислений для решения задачи N тел. Поскольку предложенные
варианты отличаются только методами выполнения информационных
обменов, для сравнения подходов достаточно определить
длительность операции обобщенного сбора данных. Используем для
оценки времени передачи сообщений модель, предложенную Хокни (см.
лекцию 3), - тогда длительность выполнения операции сбора данных
для первого варианта параллельных вычислений может быть выражена
как$$T_p^1(comm)= (p-1)(\alpha + m(N/p)/\beta),$$
где $$\alpha$$ и $$\beta$$ есть параметры модели Хокни (латентность и пропускная
способность сети передачи данных), а m задает объем пересылаемых
данных для одного тела физической системы.
Для второго способа информационного обмена, как уже отмечалось
ранее, объем пересылаемых данных на разных итерациях операции
сбора данных различается. На первой итерации объем пересылаемых
сообщений составляет Nm/p, на второй этот объем увеличивается
вдвое и оказывается равным 2Nm/p и т.д. В общем случае, для
итерации с номером i объем сообщений оценивается как 2i-1Nm/p.
Как результат, длительность выполнения операции сбора данных в
этом случае может быть определена при помощи следующего
выражения:$$T_p^2(comm)=\sum_{i=1}^{\log p} (\alpha + 2^{i-1} m (N/p)/\beta) =
\alpha \log p + m(N/p)(p-1)/\beta .$$
Сравнение полученных выражений показывает, что второй разработанный способ параллельных вычислений имеет существенно более высокую эффективность, требует меньших коммуникационных затрат и допускает лучшую масштабируемость при увеличении количества используемых процессоров.
В лекции была рассмотрена методика разработки параллельных
алгоритмов, предложенная в []. Она включает в себя этапы
Для описания получаемых в ходе разработки вычислительных параллельных схем рассмотрены две модели. Первая из них – модель "подзадачи – сообщения" может быть использована на стадии проектирования параллельных алгоритмов, вторая — модель "процессы – каналы" – может быть применена на стадии реализации методов в виде параллельных программ.
В завершение раздела показывается применение рассмотренной
методики разработки параллельных алгоритмов на примере решения
гравитационной задачи N тел.
Рассмотренная в лекции методика разработки параллельных алгоритмов впервые была предложена в []. В этой работе изложение методики проводится более детально, кроме того, в ней содержится несколько примеров ее использования для разработки параллельных методов для решения ряда вычислительных задач.
Полезной при рассмотрении вопросов проектирования и разработки параллельных алгоритмов может оказаться также работа [].
Гравитационная задача N тел более подробно
рассматривается в [].
N тел?1. Разработайте схему параллельных вычислений, используя рассмотренную в разделе методику проектирования и разработки параллельных методов:
p>N );2. Разработайте схему параллельных вычислений для задачи умножения матрицы на вектор, используя рассмотренную в разделе методику проектирования и разработки параллельных методов.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.