ная способность на каждый процессор не снижается.
Пропускная способность – не единственный параметр. Добавления
процессора к шине не увеличивает диаметр сети или время ожидания при
отсутствии трафика, а добавление процессора к решетке – увеличивает. В
такой конфигурации при увеличении числа процессоров в 4 раза влечет
увеличение диаметра сети, а, следовательно, и среднее время ожидания в 2
раза.
В идеале расширяемая система при добавлении новых процессоров
должна сохранять одну и ту среднюю же пропускную способность на
каждый процессор и постоянное время ожидания. На практике сохранение
достаточной пропускной способности на каждый процессор осуществимо, но
время ожидания растет с увеличением размера сети.
Время ожидания часто является фатальным в производительности
мелкомодульных и среднемодульных приложениях. Если программе
требуются данные, которых нет в ее локальной памяти, то для получения их
требуется тем больше времени, чем больше система. Системные
разработчики применяют несколько различных технологий, которые
позволяют сократить или, по крайней мере, скрыть время ожидания. Первая
технология –
копирование данных. Если копии данных хранить в нескольких
местах, то можно сократить время доступа к ним.
Вторая технология – так называемая
упреждающая выборка. Элемент
данных вызывается еще до того, как он может понадобиться. Упреждающая
выборка может быть автоматической, а может контролироваться
программой. При реализации используются те же принципы, что и при
работе с кэш-памятью.
Третья технология – это многопоточная обработка. В большинстве
современных компьютерных систем поддерживается мультипрограммирова-
ние, при котором несколько процессов могут работать одновременно (или
создавать иллюзию одновременной работы). Если переключение процессов
происходит достаточно быстро, то когда один процесс блокируется, ожидая
данные, аппаратное обеспечение быстро переключается на выполнение
другого процесса.
Некоторые машины автоматически переключаются от процесса к
процессу после каждой команды, чтобы скрыть длительное время ожидания.
Такая идея была реализована в одном из первых суперкомпьютеров CDC
6600. Было объявлено, что он содержит 10 периферийных процессоров,
которые работают параллельно. А на самом деле он содержал только один
периферийный процессор, который моделировал работу 10 процессоров.
Четвертая технология – использование
неблокирующих записей. Обычно
при выполнении команды записи в память процессор ждет, пока она не
закончится и только потом продолжает работать. При наличии
неблокирующих записей процессор продолжает работать, пока
отрабатывается команда записи в память. Продолжать работы при
выполнении операции считывания из памяти сложнее, однако реализуемо,
если применить исполнение с изменением последовательности.
143