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

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

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

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

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

где: 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 ядрах с разной степенью распараллеливания

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

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

37.8. Контрольные вопросы

1. Какая структура МПС?

2. Как классифицируются МПС?

3. Основные особенности симметричных МПС

4. Основные особенности не симметричных МПС

5. Основные особенности протокола когерентности MESIF

6. Приведите примеры не симметричных МПС

7. Какие топологии связей между процессорами?

8. Как масштабируются МПС?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: