Параллельные вычисления. Баканов В.М. - 19 стр.

UptoLike

Составители: 

- 19 -
Формально к этому списку может быть отнесен и многозадачный режим
(режим разделения времени), при котором для выполнения процессов ис-
пользуется единственный процессор (режим является псевдопараллельным,
ибо реального ускорения выполнения не происходит); в этом режиме удобно
отлаживать параллельные приложения (функционирование каждого процес-
сора МВС имитируется отдельным процессом многозадачной ОС).
Существует
всего-навсего два способа параллельной обработки данных:
собственно параллелизм и конвейерность [1-4].
Собственно параллелизм предполагает наличие p одинаковых устройств
для обработки данных и алгоритм, позволяющий производить на каждом не-
зависимую часть вычислений, в конце обработки частичные данные собира-
ются вместе для получения окончательного результата. В это случае (пренеб-
регая
накладными расходами на получение и сохранение данных) получим
ускорение процесса в p раз. Далеко не каждый алгоритм может быть успешно
распараллелен таким способом (естественным условием распараллеливания
является вычисление независимых частей выходных данных по одинаковым
или сходнымпроцедурам; итерационность или рекурсивность вызывают
наибольшие проблемы при распараллеливании).
Идея конвейерной обработки
заключается в выделении отдельных эта-
пов выполнения общей операции, причем каждый этап после выполнения
своей работы передает результат следующему, одновременно принимая но-
вую порцию входных данных. Каждый этап обработки выполняется своей
частью устройства обработки данных (ступенью конвейера), каждая ступень
выполняет определенное действие (микрооперацию); общая обработка дан-
ных требует срабатывания этих частей
(их числодлина конвейера) последо-
вательно.
Конвейерность (‘принцип водопровода’, акад. С.А.Лебедев, 1956) при вы-
полнении команд имитирует работу конвейера сборочного завода, на кото-
ром изделие последовательно проходит ряд рабочих мест; причем на каждом
из них над изделием производится новая операция. Эффект ускорения дости-
гается за счет одновременной обработки ряда
изделий на разных рабочих
местах.
Ускорение вычислений достигается за счет использования всех ступеней
конвейера для потоковой обработки данных (данные потоком поступают на
вход конвейера и последовательно обрабатываются на всех ступенях). Кон-
вейеры могут быть скалярными или векторными устройствами (разница со-
стоит лишь в том, что в последнем случае могут быть использованы
обраба-
тывающие векторы команды). В случае длины конвейера
l
время обработ-
ки n независимых операций составит
1
+
nl
(каждая ступень срабатывает
за единицу времени). При использовании такого устройства для обработки
единственной порции входных данных потребуется время
n×
l
и только для
множества порций получим ускорение вычислений, близкое к
l
(именно в
                                   - 19 -


  Формально к этому списку может быть отнесен и многозадачный режим
(режим разделения времени), при котором для выполнения процессов ис-
пользуется единственный процессор (режим является псевдопараллельным,
ибо реального ускорения выполнения не происходит); в этом режиме удобно
отлаживать параллельные приложения (функционирование каждого процес-
сора МВС имитируется отдельным процессом многозадачной ОС).
  Существует всего-навсего два способа параллельной обработки данных:
собственно параллелизм и конвейерность [1-4].
  Собственно параллелизм предполагает наличие p одинаковых устройств
для обработки данных и алгоритм, позволяющий производить на каждом не-
зависимую часть вычислений, в конце обработки частичные данные собира-
ются вместе для получения окончательного результата. В это случае (пренеб-
регая накладными расходами на получение и сохранение данных) получим
ускорение процесса в p раз. Далеко не каждый алгоритм может быть успешно
распараллелен таким способом (естественным условием распараллеливания
является вычисление независимых частей выходных данных по одинаковым
– или сходным – процедурам; итерационность или рекурсивность вызывают
наибольшие проблемы при распараллеливании).
  Идея конвейерной обработки заключается в выделении отдельных эта-
пов выполнения общей операции, причем каждый этап после выполнения
своей работы передает результат следующему, одновременно принимая но-
вую порцию входных данных. Каждый этап обработки выполняется своей
частью устройства обработки данных (ступенью конвейера), каждая ступень
выполняет определенное действие (микрооперацию); общая обработка дан-
ных требует срабатывания этих частей (их число – длина конвейера) последо-
вательно.
  Конвейерность (‘принцип водопровода’, акад. С.А.Лебедев, 1956) при вы-
полнении команд имитирует работу конвейера сборочного завода, на кото-
ром изделие последовательно проходит ряд рабочих мест; причем на каждом
из них над изделием производится новая операция. Эффект ускорения дости-
гается за счет одновременной обработки ряда изделий на разных рабочих
местах.
  Ускорение вычислений достигается за счет использования всех ступеней
конвейера для потоковой обработки данных (данные потоком поступают на
вход конвейера и последовательно обрабатываются на всех ступенях). Кон-
вейеры могут быть скалярными или векторными устройствами (разница со-
стоит лишь в том, что в последнем случае могут быть использованы обраба-
тывающие векторы команды). В случае длины конвейера l время обработ-
ки n независимых операций составит l + n − 1 (каждая ступень срабатывает
за единицу времени). При использовании такого устройства для обработки
единственной порции входных данных потребуется время l × n и только для
множества порций получим ускорение вычислений, близкое к l (именно в