Перспективы развития высокопроизводительных средств вычислительной техники
Передовым фронтом развития вычислительной техники и, в первую очередь, ее элементной базы, схемотехниких и архитектурных решений, являются универсальные вычислительные средства сверхвысокой производительности - суперЭВМ. Это подтверждается историей развития вычислительных средств с момента их основания по настоящее время.
В настоящее время к достаточно универсальным комплексам сверхвысокой производительности, получившим широкое распространение в мировой практике, можно отнести следующие:
- фирма CRAY С90, Т90, T3D, T3F;
- фирма CONVEX SPP-120, SPP-200;
- фирма IBM SP2.
Анализ преимуществ или недостатков тех или иных суперЭВМ необходимо производить с помощью каких-то единых критериев. Основным показателем качества комплекса является степень эффективности его использования, то есть возможность загрузки или отношение реальной производительности Рреал к максимальной Рмах.
Попробуем на базе имеющихся в настоящее время общеизвестных суждений и эмпирических данных создать некую систему качественных сравнительных оценок вычислительных средств с точки зрения как системных программистов, так и программистов-пользователей. В настоящее время в промышленном выпуске существуют всего три архитектуры вычислительных средств: однопроцессорные машины, включая векторные конвейерные; многопроцессорные системы и многомашинные вычислительные комплексы [1].
Так, для однопроцессорных машин для таких качественных оценок могут быть использованы следующие параметры: производительность процессора (Ппр), пропускная способность канала процессор-ОЗУ (Епр), объем ОЗУ (Q) и пропускная способность ОЗУ-внешняя память Е. Максимальная производительность однопроцессорной машины, как правило, ограничивается частотными характеристиками используемой элементной базы и соединений. Как правило, для всех систем выполняется следующее соотношение: Ппр=RЕпр, где R - процент обращений процессора к ОЗУ из всех обращений его за данными. Подразумевается, что большая часть обращений за данными идет в сверхоперативную память процессора (быстрые регистры, КЭШ и т.д.). Учитывая, что отношение среднего количества обращений от процессора к ОЗУ к общему числу обращений к памяти колеблется от 20% до 2% в зависимости от решаемой задачи, можно с достаточной для наших рассуждений точностью считать Ппр=Епр, где Ппр имеет размерность Мflops, а Епр - МB/s. Поэтому, если мы не располагаем значениями Епр, можно определять их через Ппр. Производительность Ппр, включая векторные конвейерные процессоры, зависит от глубины конвейеризации (Ск), реализованной в процессорах. Однако для того, чтобы использовать свойство конвейеризации процессора, необходимо, чтобы на протяжении решения всей задачи выполнялось условие Р Ск, где Р - количество одновременно выполняемых процессов в однопроцессорной системе. Только в этом случае производительность процессора увеличивается в Ск раз. Опыт конструирования векторных процессоров и анализ реальных задач показывает, что увеличение производительности процессора за счет конвейеризации не выше одного порядка.
Многопроцессорная система имеет следующие основные параметры: число процессоров N, производительность процессора Ппр, пропускная способность коммутатора между процессорами и ОЗУ Ек, пропускная способность ОЗУ-внешняя память Е. Во многих случаях Ек = NЕпр = NПпр.
Максимальная производительность многопроцессорной системы ограничивается двумя факторами: пропускной способностью коммутатора между процессорами - ОЗУ (Ек) и требованием корректной работы припроцессорной КЭШ памяти. И та, и другая причины не позволяют строить многопроцессорные комплексы с большим количеством процессоров N. Аппаратная сложность коммутатора пропорциональна N2. С увеличением сложности коммутатора растут временные задержки при обращении процессора к ОЗУ, что снижает скорость работы каждого процессора даже при наличии КЭШ при каждом процессоре. Практически увеличение числа процессоров выше 32-х в одном коммутаторе вряд ли целесообразно. Исключение припроцессорной КЭШ памяти приведет к увеличению числа обращений процессоров к ОЗУ, что еще больше ограничит величину N. Обеспечение корректности работы КЭШ в многопроцессорной системе - сложная задача, и качество ее решения, в свою очередь влияет на производительность всей системы, особенно при больших N. Дело в том, что если два процессора поработали с общими данными, даже в том случае, когда синхронизация по данным для них была выполнена правильно, в КЭШ одного из процессоров могут сохраняться старые данные. При этом процессор, работая с обновленными другим процессором общими данными, может часть данных брать из ОЗУ (новые), а часть из КЭШ (старые). Корректность вычислительного процесса в этом случае будет нарушена. Простейшее решение проблемы корректности работы КЭШ в многопроцессорных системах состоит в том, что при каждой записи процессора в ОЗУ должно быть обеспечено стирание данных, записанных по этому адресу в КЭШ всех процессоров. Естественно, этот способ не позволяет увеличить число процессоров в многопроцессорных системах без значительного падения ее производительности. Наиболее эффективно эта задача была решена в МВК «Эльбрус», где число процессоров, одновременно работающих на общей памяти, было увеличено до 16 практически без потери производительности. Причем, способ обеспечения корректности КЭШ, реализованный в МВК «Эльбрус», практически инвариантен к числу процессоров системы - каждый процессор решает эту задачу самостоятельно без взаимодействия с соседними процессорами. Поэтому наиболее принципиальным препятствием в увеличении производительности многопроцессорных комплексов является коммутатор между процессорами и ОЗУ.
Аналогично однопроцессорной системе максимальная производительность многопроцессорного комплекса NПпр будет достигнута только в том случае, если на протяжении решения всей задачи будет выполнено условие Р NCк.
Многомашинный комплекс должен решать достаточно сложную проблему обмена информацией между машинами, что осуществляется через взаимодействие операционных систем. Поэтому обмен информацией между машинами ведется, как правило, достаточно большими пакетами. Обмен малыми пакетами неэффективен из-за больших временных потерь, приведенных к одному слову. Может создаться впечатление, что проблема, подобная корректности КЭШ, в многомашинных комплексах отсутствует. На самом деле эта проблема при работе многих машин с общими данными переходит на уровень системных и пользовательских программ, что безусловно осложняет программирование задачи и увеличивает время ее выполнения. В то же время требования к временным параметрам системы коммутации машин становятся не такими жесткими, как в многопроцессорных комплексах, благодаря чему можно строить системы с большим числом машин N.
После такого общего анализа попробуем определить те параметры комплексов, которые накладывают определенные требования на системные программы и программы пользователей, имея в виду эффективное использование их аппаратных средств.
Начнем с однопроцессорной машины. Условием ее эффективного использования может служить критерий загрузки процессора. Для обеспечения загрузки однопроцессорной машины должно быть выполнено следующее неравенство на протяжении всего времени решения задачи:
Епр/Е Ко при объеме памяти ОЗУ Q, (1)
архитектура суперпроцессор высокопроизводительный
где Ко - средний процент переиспользования адресов ОЗУ на участке задачи объемом Q.
Действительно, если неравенство (1) не выполняется, то через определенное время производительность однопроцессорной машины будет определяться не величиной Епр, а Е, то есть пропускной способностью внешних устройств. Для того, чтобы этого не случилось, программист должен разбивать задачу на такие локальные части, для которых в объеме ОЗУ, равном Q, средний процент переиспользования адресов локальной части задачи, подкаченной в ОЗУ, превосходил величину Ко. Назовем величину Ко коэффициентом локализации. Естественно, чем больше объем памяти однопроцессорной машины Q, тем легче выполнить это требование. Поэтому условия выполнения неравенства (1) должны зависеть определенным образом от объема оперативной памяти. Примем некоторый объем ОЗУ Qд, определенный практикой, за достаточный для локализации данных в ОЗУ. В этом случае для машин с памятью Q, меньшей Qд, усложняется проблема локализации данных, что может быть учтено соотношением (Qд/Q + 1), уточняющим неравенство (1):
Eпр (Qд/Q + 1)/E Ко (2)
В многопроцессорных системах условия обеспечения процессоров данными описывается подобным соотношением, в котором Епр заменяется величиной пропускной способности коммутатора, соединяющего процессоры с ОЗУ - Ек и Ек = NЕпр = Nппр.
Предполагается, что все N процессоров имеют равную производительность Ппр и пропускную способность Епр. Тогда средний процент переиспользования данных ОЗУ объемом Q (Кмп) на протяжении всего времени задачи должен удовлетворять следующему условию:
Kмп Eк (Qд/Q + 1)/E
Рис. 1. Схема узла Cray T3D
PE - процессорный элемент, Memory Control - устройство управления памятью, DRAM Memory - оперативная память, Switch - коммутатор
Здесь Q - объем ОЗУ всего многопроцессорного комплекса, а Qд сохраняет прежнюю величину, так как мы фактически как бы увеличили производительность процессора однопроцессорной машины в N раз Ек=NЕпр.
Для многомашинных комплексов требования полной загрузки системы описываются несколько сложнее. Прежде всего, необходимо рассмотреть возможности выполнения межмашинного обмена с точки зрения эффективной загрузки узла комплекса. Каждый узел многомашинного комплекса можно представить в виде одного или нескольких процессоров, ОЗУ и коммутатора, связывающего этот узел с другими узлами комплекса (Рис. 1).
В этом случае необходимое условие загрузки процессора или процессоров узла может быть описано неравенством:
Кму NуЕкуЕпр (Qд/Qу + 1)/Еу
где Кму - коэффициент переиспользования данных памяти узла Qу;
Еку - пропускная способность коммутатора узла со стороны процессоров, обычно равная NуЕпр;
Nу - количество процессоров в узле;
Еу - общая пропускная способность коммутатора (узла) со стороны связи этого узла с другими узлами комплекса.
Необходимо отметить, что Qд имеет ту же величину, что и в предыдущем неравенстве, а Qу - объем памяти узла. Это обстоятельство сильно усложняет задачу удовлетворения этого неравенства. В дополнение к этому для относительной оценки межмашинного обмена той или иной системы необходимо ввести коэффициент, отражающий топологию связей многомашинных комплексов.
В настоящее время реализованы следующие системы связей в многомашинных комплексах: «точка-точка», плоская матрица, трехмерная коммутация и система связей «гиперкуб» (Риc.2). Возможной характеристикой топологии связи может быть параметр, определяющий среднее число узлов передачи информации от узла к узлу. Так для системы «точка-точка» этот параметр b равен 1, для транспьютерных связей b = 1/2 (рассматриваются транспьютерные замкнутые системы), для трехмерной коммутации b = 3/4 (Cray T3D и T3E), для гиперкуба b = 1/2 log2N (Ncube 2). Для конкретных систем эти формулы могут несколько корректироваться, однако порядок зависимости параметра b от N останется тем же, и при сравнении многомашинных комплексов он должен быть учтен в определении величины Еу. В этом случае неравенство (2) уточниться следующим образом:
Кму NуEпр b (Qд/Qу + 1)/Eу (3)
Условие загрузки многомашинного комплекса при взаимодействии с внешней памятью может быть описано следующим соотношением:
Kм Eмк (Qд/Q +1)/E,
где Емк - пропускная способность всех коммутаторов системы, которая может определяться суммарной производительностью комплекса Пм = NПпр = Nепр, а Q = NQу.
Для всех трех структур вычислительных комплексов достижение их предельной производительности возможно только при выполнении следующего неравенства на протяжении выполнения задачи: Р NСк.
Важное значение при сравнении вычислительных комплексов имеет такой элементарный параметр, как относительное быстродействие процессора или микропроцессора системы Кпр = Пэт/П. Здесь Пэт - производительность микропроцессора, принятая за эталонную, которая выбирается как средняя величина производительностей нескольких процессоров последнего выпуска. Другим параметром является коэффициент достаточности памяти. Естественно, что чем меньше Кпр, тем ниже требования к распараллеливанию алгоритма для одной и той же задачи.
Практика использования вычислительных средств выявила следующую закономерность соотношения объема памяти Qп и производительности системы, которая сохраняется на протяжении всего времени существования дискретных вычислительных средств - на каждый миллион операций в секунду приходится порядка 100 тысяч слов памяти ( 0.5 MB). Естественно, чем больше память, тем удобнее программировать задачу и повышать загрузку процессоров. Поэтому можно ввести специальный коэффициент, учитывающий достаточность памяти: в однопроцессорной машине Коп = 0,5 ПпрQп/Q + 1; в многопроцесcорной системе Кмпп = 0,5NПпрQп/Q + 1; для многомашинного комплекса Кммп = 0,5ПмQп/Q + 1. В этих соотношениях Ппр имеет размерность Mflops, а все параметры памяти - GВ.
Таблица 1. Соотношения для дополнительной оценки комплексов
|
Разменость величин |
1 E - MB/s Q - GB |
2 E - MB/s Q - GB Ппр - MFls |
3 Ппр - MFls Q - GB |
4 Пэт-MFls Ппр-MFls |
5 Крез |
|
|
Однопроцессорная машина |
- |
|||||
|
Многопроцессорная система |
- |
|||||
|
Многомашинный комплекс |
Рис. 2. Схемы коммутации микропроцессоров в многомашинных комплексах