
- •Уровни параллелизма
- •К понятию уровня параллелизма тесно примыкает понятие гранулярности.
- •Параллелизм уровня задания
- •Параллелизм уровня команд.
- •Метрики параллельных вычислений.
- •Misd – множественный поток команд и одиночный поток данных
- •Simd – одиночный поток команд и множественный поток данных.
- •Память с чередованием адресов.
- •Модели архитектур распределенной памяти.
- •Мультипроцессорная когерентность кэш – памяти.
- •Программные способы
- •Аппаратные способы решения проблемы некогерентности
- •Совместно используемая кэш – память.
- •Некэшируеые данные.
- •Протоколы на основе справочника
- •Топологии вс.
- •Метрики сетевых соединений.
- •Функции маршрутизации данных
Дальнейшее развитие выч. Техн. неразрывно связано с переходом к параллельным вычисления, как в рамках одной ЭВМ так и путем создания многопроцессорных систем и сетей . Для такого подхода вместо термина вычислительная машина боле подходит термин вычислительная система ВС. Отличительной особенностью вычислительных систем является наличие в них средств, реализующих параллельную обработку за счет построения параллельных ветвей в вычислениях, что не предусматривалось в классической структурой ЭВМ. Идея параллелизма, как средства увеличения производительности является актуальной задачей.
Уровни параллелизма
Методы и средства реализации параллелизма зависят от того, на каком уровне он должен обеспечиваться. Обычно реализуют следующие уровни параллелизма:
Уровень заданий – несколько независимых заданий одновременно выполняются на разных процессорах, практически не взаимодействуя друг с другом. Этот уровень реализуется на ВС с множеством процессоров в многозадачном режиме.
Уровень программ. Части одной задачи выполняются на множестве процессоров. Данный уровень достигается на параллельных ВС.
Уровень команд . Выполнение команды разбивается на фазы а фазы последовательных команд могут быть перекрыты за счет конвейеризации. Уровень достижим на ВС с одним процессором.
Уровень битов (арифметический уровень) Биты, слова обрабатываются , что называется бит последовательной операцией. Если биты слова обрабатываются одновременно, говорят о бит – параллельной операции. Данный уровень реализуется в обычных суперскалярных процессорах (суперскалярным называется центральный процессор (ЦП), который одновременно выполняет более чем одну скалярную команду. Это достигается за счет включения в состав ЦП нескольких самостоятельных функциональных (исполнительных) блоков, каждый из которых отвечает за свой класс операций и может присутствовать в процессоре в нескольких экземплярах).
К понятию уровня параллелизма тесно примыкает понятие гранулярности.
Крупнозернистый параллелизм – каждое параллельное вычисление достаточно независимо от остальных, причем требуется относительно редкий обмен информацией между отдельными вычислениями. Единицами распараллеливания являются большие и независимые программы, вычисляющие тысячи команд. Это уровень параллелизма обеспечивается операционной системой.
Среднезернистый параллелизм – единицами распараллеливания являются вызываемые процедуры, включающие в себя сотни команд. Обычно реализуются как программистом, так и компилятором.
Мелкозернистый параллелизм – каждое параллельное вычисление достаточно мало и элементарно, составляется из десятков команд. Обычно распараллеливаемыми единицами являются элементы выражения или отдельные итерации цикла, имеющие небольшие зависимости по данным. Сам термин мелкозернистый говорит о простоте и быстроте любого вычислительного действия. Характерная особенность мелкозернистого параллелизма заключается в приблизительном равенстве интенсивности вычислений и обмена данными. Этот уровень параллелизма часто используется распараллеливающим (векторизирующим) компилятором.
Эффективное параллельное исполнение требует искусстного баланса между степенью гранулярности программ и величиной коммутационной задержки , возникающей между разными гранулами. В частности, если коммуникационная задержка минимальна, то наилучшую производительность обещает мелкоструктурное разбиение программы. Этот случай, когда действует параллелизм данных . Если коммутационная задержка велика ( как в слабосвязанных системах) предпочтительней крупнозернистое разбиение программ.