Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 37. Многоядерные мультипроцессорные системы.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
801 Кб
Скачать
☆

37.5. Мпс с процессорами Opteron фирмы amd

МПС с процессорами Opteron фирмы AMD по структуре аналогичны МПС с процессорами XEON фирмы Intel. Основные отличия:

  • для связи между процессорами используется интерфейс Hyper Transport;

  • в одном процессоре может быть не более 3 интерфейсов Hyper Transport.

37.6. Структуры мпс на базе процессоров power6, power7 фирмы ibm

На рис. 37.8 показана структура четырехпроцессорной системы с процессорами POWER7, реализованная в виде одного конструктивного модуля. Топология связей каждого процессора в модуле «каждый с каждым».

Рис.37.8. Топология связей 4-х процессоров в одном модуле

На рис. 37.9 представлены структуры 2-х, 4-х и 8-ми модульных МПС. В каждом модуле по 4 процессора. Топология связей между модулями в МПС «каждый с каждым».

Рис. 37.9. Примеры структур МПС на базе процессоров POWER7, POWER8 фирмы IBM

37.7. Масштабируемость мпс при увеличении числа ядер

Одно из удачных определений термина «масштабируемость»: «Процесс считается масштабируемым, если при увеличении ресурсов системы его производительность увеличивается сообразно добавленным ресурсам».

Данный принцип применяется весьма широко. Он является ключевым фактором для центров хранения и обработки данных, например, при оценке последствий установки дополнительных серверов или внедрения виртуализации. Здесь этот принцип будет рассматриваться в его в более узком смысле, подразумевая под ресурсами ядра системы, и ограничиваясь анализом потоков как модели реализации масштабируемости.

Следует учитывать, что «ядра» являются не только ресурсом уровня выполнения, но и ресурсом подсистемы памяти, за счет присутствующей во всех современных процессорах локальной кэш-памяти.

Все рассуждения о масштабируемости обычно начинаются с упоминания «Закона Амдала» в виде следующего уравнения:

где: p - количество ядер;

s - доля последовательных блоков (действий) в программе;

(1-s) - доля блоков (действий), которые можно распараллелить.

В качестве примера рассмотрим программу, 90% которой можно распараллелить (то есть s=0,1, а 10% программы останется последовательным), выполняющийся на 8 ядрах (p=8). Полученный коэффициент ускорения Speedup составит 4,7. Он отражает максимально возможное ускорение для данного случая. На рисунке 1 дано графическое представление этого результата, а также результатов для программ с большей долей последовательных блоков. Идеальный случай, где s=0, представлен синей диагональной линией; в остальных случаях ситуация весьма далека от идеала.

Рис. 37.10. Графики ускорения для вычислений на 8 ядрах с разной степенью распараллеливания

Приведенный на рисунке 37.1 результат отражает прогноз масштабируемости для весьма скромных систем – до 8 ядер. А что произойдет в многоядерной системе, или в случае увеличения доли распараллеленного кода? Ответ приведен на рисунке 37.2, и его нельзя назвать обнадеживающим. Даже в случае почти идеально распараллеленного кода (95%) коэффициент ускорения не превысит 20, вне зависимости от количества доступных ядер. 

Рис. 37.11. Графики ускорения для вычислений на 216 ядрах с разной степенью распараллеливания

Если отойти в сторону от «хрестоматийных» расчетов, ситуация может стать еще хуже. Идеализированная формула Амдала не учитывает падение производительности вследствие затрат на создание потоков, синхронизацию и обмен данными. Как видно, даже самая совершенная реализация не дотянет до самых скромных из приведенных на графике результатов. Стоит ли вообще надеяться на параллельные приложения, и в особенности на их эффективное выполнение в масштабной многоядерной среде?

Хотя закон Амдала не дает исчерпывающей картины, и во многих случаях масштабирование за счет распараллеливания вполне возможно.