ВУЗ:
Составители:
74
5.6 Общие рекомендации по разработке параллельных программ
Ранее мы уже подчеркивали, что при переносе последовательной програм-
мы на параллельную ЭВМ без ее существенной переработки, как правило, не
приводит к ускорению вычислений. Усилия, затрачиваемые на эту переработку,
в значительной степени зависят от типа решаемой задачи, а именно: допускает
ли задача распараллеливание по данным (параллелизм данных) или имеет место
лишь параллелизм задач [7]. Как уже отмечалось выше, переработка последова-
тельной программы существенно облегчается, если задача допускает распарал-
леливание по данным. В этом случае задача переработки может свестись к раз-
биению массива исходных данных на фрагменты, обработка которых ведется
независимо на различных процессорах. Ясно, что при этом должна обеспечи-
ваться равномерная загрузка процессоров, с учетом их, возможно, различной
производительности.
Эффективность программы будет зависеть от соотношения временных за-
трат на проведение вычислений на фрагментах исходных данных и пересылку
данных (накладные расходы) [7]. По мере увеличения числа (а значит умень-
шения размеров) фрагментов данных объем вычислений на каждом фрагменте
уменьшается. При этом накладные расходы могут оставаться почти прежними,
например, вследствие большой латентности (связанной с потерями на передачу
сообщения нулевой длины) коммуникационной среды.
Можно рекомендовать следующий простой способ построения эффектив-
ной программы, основанной на свойстве параллелизма данных. Размеры фраг-
ментов массива исходных данных следует уменьшать (соответственно увели-
чивать число параллельно работающих процессоров) до тех пор, пока имеет
место почти линейное ускорение. Если же при очередном увеличении числа
процессоров линейного ускорения не происходит, это означает, что накладные
расходы стали заметными и дальнейшее распараллеливание по данным приве-
дет к недостаточной загрузке процессоров.
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »