Читайте также:
|
|
Уровни параллелизма
Методы и средства реализации параллелизма зависят от того, на каком уровне он должен обеспечиваться. Обычно реализуют следующие уровни параллелизма:
· Уровень заданий – несколько независимых заданий одновременно выполняются на разных процессорах, практически не взаимодействуя друг с другом. Этот уровень реализуется на ВС с множеством процессоров в многозадачном режиме.
· Уровень программ. Части одной задачи выполняются на множестве процессоров. Данный уровень достигается на параллельных ВС.
· Уровень команд. Выполнение команды разбивается на фазы а фазы последовательных команд могут быть перекрыты за счет конвейеризации. Уровень достижим на ВС с одним процессором.
· Уровень битов (арифметический уровень) Биты, слова обрабатываются, что называется бит последовательной операцией. Если биты слова обрабатываются одновременно, говорят о бит – параллельной операции. Данный уровень реализуется в обычных суперскалярных процессорах (суперскалярным называется центральный процессор (ЦП), который одновременно выполняет более чем одну скалярную команду. Это достигается за счет включения в состав ЦП нескольких самостоятельных функциональных (исполнительных) блоков, каждый из которых отвечает за свой класс операций и может присутствовать в процессоре в нескольких экземплярах).
К понятию уровня параллелизма тесно примыкает понятие гранулярности.
· Крупнозернистый параллелизм – каждое параллельное вычисление достаточно независимо от остальных, причем требуется относительно редкий обмен информацией между отдельными вычислениями. Единицами распараллеливания являются большие и независимые программы, вычисляющие тысячи команд. Это уровень параллелизма обеспечивается операционной системой.
· Среднезернистый параллелизм – единицами распараллеливания являются вызываемые процедуры, включающие в себя сотни команд. Обычно реализуются как программистом, так и компилятором.
· Мелкозернистый параллелизм – каждое параллельное вычисление достаточно мало и элементарно, составляется из десятков команд. Обычно распараллеливаемыми единицами являются элементы выражения или отдельные итерации цикла, имеющие небольшие зависимости по данным. Сам термин мелкозернистый говорит о простоте и быстроте любого вычислительного действия. Характерная особенность мелкозернистого параллелизма заключается в приблизительном равенстве интенсивности вычислений и обмена данными. Этот уровень параллелизма часто используется распараллеливающим (векторизирующим) компилятором.
· Эффективное параллельное исполнение требует искусстного баланса между степенью гранулярности программ и величиной коммутационной задержки, возникающей между разными гранулами. В частности, если коммуникационная задержка минимальна, то наилучшую производительность обещает мелкоструктурное разбиение программы. Этот случай, когда действует параллелизм данных. Если коммутационная задержка велика (как в слабосвязанных системах) предпочтительней крупнозернистое разбиение программ.
Дата добавления: 2015-09-10; просмотров: 79 | Поможем написать вашу работу | Нарушение авторских прав |