Потоковые параллельные вычисления для физического моделирования
4.1. Общие принципы распараллеливания расчётов Задачи вычислительного моделирования физических систем очень часто связаны с независимым применением одного и того же набора операций (одного и того же алгоритма обработки) к большому количеству объектов одинакового типа.
Пусть есть некоторый набор однотипных данных (N элементов), которые требуется обработать в соответствии с заданным алгоритмом. Блок-схема последовательных вычислений, без какого-либо распараллеливания, будет иметь общий вид, показанный на рис. 4.1. Из этой блок-схемы видно, что возможны 3 типа распараллеливания расчётов [11]: · Распараллеливание по данным. Если операции 1 - m (рис. 4.1) над каждым i -м элементом не зависят от исхода операций над остальными элементами, то эти элементы не обязательно обрабатывать последовательно. Расчёты можно распределить между несколькими вычислительными блоками (процессорами, конвейерами, машинами), как это показано на рис. 4.2. Именно такое распараллеливание характерно для физического моделирования. Рис. 4.2. Распараллеливание по данным · Распараллеливание по инструкциям. Может оказаться, что некоторые инструкции из набора операций 1 – m независимы друг от друга, и тогда, при наличии нескольких вычислительных блоков, эти инструкции могут быть исполнены параллельно. Схема распараллеливания по инструкциям показана на рис. 4.3. Такое распараллеливание аппаратно реализовано в современных центральных процессорах общего назначения, поскольку оно эффективно при исполнении программ, интенсивно обменивающихся разнородной информацией с другими программами и с пользователями ПК. Рис. 4.3. Распараллеливание по инструкциям · Распараллеливание по задачам. Возможно, если задачи 1 - k (рис. 4.1) независимы друг от друга. Особенно актуально для сетевых серверов и других вычислительных систем, выполняющих одновременно несколько функций либо обслуживающих многих пользователей.
|