- Простейший способ создать многопроцессорный вычислительный комплекс с разделяемой памятью – взять несколько процессоров, соединить их с общей шиной и соединить эту шину с ОП.
- НО! ограниченная масштабируемость: между процессорами возникает борьба за доступ к шине, поэтому, начиная с некоторого числа процессоров, быстродействие системы перестанет увеличиваться при добавлении нового процессора.
- При наличии кэш-памяти ситуация улучшается, т.к. следующая нужная процессору команда с большой вероятностью будет находиться в кэш-памяти. Уменьшается число обращений к шине, быстродействие системы возрастает.
- НО! проблема кэш-когерентности: если двум процессорам понадобилось значение V, это значение будет храниться в виде двух копий в кэш-памяти обоих процессоров. 1й процессор может изменить V и передать новое значение в ОП. Но в кэш-памяти 2го процессора все еще хранится старое значение!
Компьютеры с общей памятью (3) - Таким образом, необходимо обеспечить своевременное обновление данных в кэш-памяти всех процессоров компьютера.
- Механизм когерентности является критичным для эффективной параллельной работы SMP-узла и должен иметь малое время задержки.
- Требование малых задержек когерентных связей приводит к архитектуре с одной объединительной платой, что физически ограничивает возможное число подсоединенных процессоров и плат памяти.
- Поэтому самые крупные SMP-системы обычно содержат максимум 32 процессора на узел. Для дальнейшего увеличения числа процессоров в узле приходится применять более медленную программную реализацию, что сказывается на производительности.
- Альтернативный вариант реализации разделяемой памяти, позволяющий увеличить число вычислительных узлов – разделяемая память с дискретными модулями памяти. Физическая память состоит из нескольких модулей, хотя виртуальное адресное пространство общее. Запросы от процессора к памяти направляет переключатель. Если процессоры обращаются к разным модулям памяти, запросы обрабатываются параллельно, поэтому быстродействие возрастает.
- Главное достоинство SMP-узлов и других систем с разделяемой памятью – возможность оперировать единым адресным пространством, что очень удобно для разработчиков приложений.
Do'stlaringiz bilan baham: |