Шрифт:
Ныне есть следующие пути увеличения быстродействия этих монстров.
За счет дальнейшего изменения параметров микросхем – то есть за счет элементной базы – можно уменьшить их габариты. Электронные лампы и транзисторы давно уж заменены микрочипами. Сегодня один кристаллик микропроцессора может вмещать в себя сотни тысяч, а то и миллионы элементов, для размещения которых ранее требовался целый шкаф. И конструкторам этого все мало. Ныне ведутся разговоры о создании квантовых компьютеров на основе молетроники, когда роль чипов будут выполнять уже отдельные молекулы и атомы. Микроминиатюризация позволяет до предела укоротить пути, по которым движутся электроны, а значит, и повысить быстродействие компьютера.
Важной характеристикой микропроцессора – основного узла, производящего вычисления – является также его тактовая частота. Например, процессор «Пентиум–500» имеет тактовую частоту в 500 МГц. Для сравнения скажем, что самый мощный компьютер 1949 года обладал тактовой частотой в 0,5 МГц, то есть производил 100 арифметических операций в секунду. Современный же суперкомпьютер «Крей С–90» с частотой в 500 МГц может произвести в секунду миллиард арифметических операций, и это далеко не предел.
В общем, тактовая частота нынешних суперкомпьютеров за полвека возросла в 500 раз, а производительность в 10 млн раз! Каким образом? Основной прогресс был достигнут благодаря новым решениям в архитектуре компьютера. Теперь большинство из них решает задачи не последовательно, а параллельно.
Вычисления на конвейере
Как это происходит, можно пояснить с помощью такого примера. Скажем, одному человеку, для того чтобы вскопать лопатой огород, понадобится 12 часов. Но если создать бригаду из 12 человек, распределить между ними участки, то весь огород может быть вскопан уже через час.
Автор этого наглядного примера – специалист по параллельным вычислениям Владимир Воеводин из Вычислительного центра МГУ лишь сожалеет о том, что далеко не все задачи так легко поддаются распараллеливанию, как вскапывание огорода.
Возьмем, например, изготовление автомобиля на конвейере. Здесь каждый рабочий делает одну–две операции, потом авто продвигается по конвейерной ленте к соседу, который делает свои операции. И так далее, до конца конвейера, с которого съезжает уже готовый автомобиль. Можем ли мы распараллелить все операции и выполнить их одновременно, собрав авто в мгновение ока? Нет, так как сборщики просто будут мешать друг другу. Кроме того, есть операции, которые можно выполнить только тогда, когда будут сделаны предыдущие...
Рабочее место конструктора, имеющее связь с большой ЭВМ
Поэтому большинство современных компьютеров все же работают по конвейерному принципу, последовательно выполняя заложенные в программу операции. И увеличить производительность можно, лишь последовательно загружая в ЭВМ ряд однотипных задач, которые она будет решать одну за другой точно так же, как на конвейере одновременно, но последовательно собирается сразу добрая сотня автомобилей.
Тем не менее мы можем все же увеличить скорость сборки, если подключим к главному конвейеру несколько вспомогательных, на которых будем собирать из деталей целые узлы авто. Например, на главный конвейер будем поставлять уже собранный мотор, коробку передач, диски колес с накачанными шинами и т. д.
Примерно так стали поступать и создатели суперкомпьютеров. Так, скажем, конструкторы фирмы «ИБМ» в свое время оснастили свой компьютер! шестью дополнительными устройствами ввода–вывода информации, позволившими значительно увеличить производительность основного процессора.
Затем пришла очередь модернизации самого процессора. Его память была разбита на два уровня, предусмотрен опережающий просмотр команд и т. д.
Следующий шаг сделали ученые Манчестерского университета, предложившие в 1963 году многопрограммную операционную систему, которая позволила выполнять несколько программ одновременно, автоматически регулируя, какую из них наиболее рационально выполнять в данный момент.
В середине 60–х годов взошла звезда американского конструктора Сеймура Крея. Он был первым, кто начал конструировать суперкомпьютеры повышенной мощности и быстродействия, внедряя однотипные, взаимосвязанные между собой компьютерные блоки. Управлялись они с помощью так называемых векторных команд. Таким образом, удавалось одновременно на одной машине обрабатывать сразу целые массивы данных.
У нас, как мы уже рассказывали, подобные работы велись под руководством А. С. Лебедева, В. М. Глушкова, М. А. Карцева и других.
И тут – семейственность...
Узкое место параллелизма, как уже говорилось, – трудности, с которыми сталкиваются математики, пытаясь разбить тут или иную задачу на несколько менее сложных, которые можно было бы решать независимо друг от друга.
На практике чаще всего оказывается, что решения отдельных частей общей задачи зависят друг от друга, поэтому то и дело приходится использовать промежуточные данные вычислений. Словом, получается, что отдельные процессоры обязательно должны в ходе работы общаться друг с другом, обмениваться данными и результатами вычислений. А это резко усложняет и архитектуру и конструкцию суперЭВМ.