Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!Экзаменационные вопросы_003.rtf
Скачиваний:
9
Добавлен:
19.09.2019
Размер:
17.62 Mб
Скачать
  1. Определение коммуникаций. Варианты. Связь с 1 этапом.

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

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

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

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

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

  • локальные / глобальные коммуникации: при локальных коммуникациях задача обменивается данными с необходимым количеством других задач (соседей); при глобальных – с множеством других задач.

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

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

  1. Локальные и глобальные коммуникации. Контрольные вопросы.

Локальные коммуникации.

В качестве примера задачи с локальными коммуникациями рассмотрим метод конечных разностей Якоби. В этом методе значения в узлах многомерной решетки периодически обновляется с учетом значений в некотором определенном количестве соседних узлов. Набор значений, необходимый для определения одного конкретного значения, называется stencil. Так, для двухмерной решетки с обновлением по 5 точкам используется такое выражение:

Структура задач и каналов.

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

Однако, в случае параллельного выполнения эта схема не столь удобна. Если в схеме Якоби все вычисления могут выполняться параллельно, то здесь одновременно могут выполняться только N/2 точек из N2. Поэтому при параллельных вычислениях используют некоторые модификации схемы Гаусса-Зейделя, например, шахматную схему.

Глобальные коммуникации.

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

Этот пример иллюстрирует две принципиальные проблемы, возникающие при разработке алгоритма, исходя из «чисто локального» подхода к коммуникациям:

  1. алгоритм централизован – вычисления и данные не распределены. Одна из задач участвует во всех операциях.

  2. алгоритм «существенно последовательный» - не удается достичь одновременности выполнения.