Чтение онлайн

ЖАНРЫ

Я познаю мир. Компьютеры и интернет
Шрифт:

Ныне есть следующие пути увеличения быстродействия этих монстров.

За счет дальнейшего изменения параметров микросхем – то есть за счет элементной базы – можно уменьшить их габариты. Электронные лампы и транзисторы давно уж заменены микрочипами. Сегодня один кристаллик микропроцессора может вмещать в себя сотни тысяч, а то и миллионы элементов, для размещения которых ранее требовался целый шкаф. И конструкторам этого все мало. Ныне ведутся разговоры о создании квантовых компьютеров на основе молетроники, когда роль чипов будут выполнять уже отдельные молекулы и атомы. Микроминиатюризация позволяет до предела укоротить пути, по которым движутся электроны, а значит, и повысить быстродействие компьютера.

Важной

характеристикой микропроцессора – основного узла, производящего вычисления – является также его тактовая частота. Например, процессор «Пентиум–500» имеет тактовую частоту в 500 МГц. Для сравнения скажем, что самый мощный компьютер 1949 года обладал тактовой частотой в 0,5 МГц, то есть производил 100 арифметических операций в секунду. Современный же суперкомпьютер «Крей С–90» с частотой в 500 МГц может произвести в секунду миллиард арифметических операций, и это далеко не предел.

В общем, тактовая частота нынешних суперкомпьютеров за полвека возросла в 500 раз, а производительность в 10 млн раз! Каким образом? Основной прогресс был достигнут благодаря новым решениям в архитектуре компьютера. Теперь большинство из них решает задачи не последовательно, а параллельно.

Вычисления на конвейере

Как это происходит, можно пояснить с помощью такого примера. Скажем, одному человеку, для того чтобы вскопать лопатой огород, понадобится 12 часов. Но если создать бригаду из 12 человек, распределить между ними участки, то весь огород может быть вскопан уже через час.

Автор этого наглядного примера – специалист по параллельным вычислениям Владимир Воеводин из Вычислительного центра МГУ лишь сожалеет о том, что далеко не все задачи так легко поддаются распараллеливанию, как вскапывание огорода.

Возьмем, например, изготовление автомобиля на конвейере. Здесь каждый рабочий делает одну–две операции, потом авто продвигается по конвейерной ленте к соседу, который делает свои операции. И так далее, до конца конвейера, с которого съезжает уже готовый автомобиль. Можем ли мы распараллелить все операции и выполнить их одновременно, собрав авто в мгновение ока? Нет, так как сборщики просто будут мешать друг другу. Кроме того, есть операции, которые можно выполнить только тогда, когда будут сделаны предыдущие...

Рабочее место конструктора, имеющее связь с большой ЭВМ

Поэтому большинство современных компьютеров все же работают по конвейерному принципу, последовательно выполняя заложенные в программу операции. И увеличить производительность можно, лишь последовательно загружая в ЭВМ ряд однотипных задач, которые она будет решать одну за другой точно так же, как на конвейере одновременно, но последовательно собирается сразу добрая сотня автомобилей.

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

Примерно так стали поступать и создатели суперкомпьютеров. Так, скажем, конструкторы фирмы «ИБМ» в свое время оснастили свой компьютер! шестью дополнительными устройствами ввода–вывода информации, позволившими значительно увеличить производительность основного процессора.

Затем пришла очередь модернизации самого процессора. Его память была разбита на два уровня, предусмотрен опережающий

просмотр команд и т. д.

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

В середине 60–х годов взошла звезда американского конструктора Сеймура Крея. Он был первым, кто начал конструировать суперкомпьютеры повышенной мощности и быстродействия, внедряя однотипные, взаимосвязанные между собой компьютерные блоки. Управлялись они с помощью так называемых векторных команд. Таким образом, удавалось одновременно на одной машине обрабатывать сразу целые массивы данных.

У нас, как мы уже рассказывали, подобные работы велись под руководством А. С. Лебедева, В. М. Глушкова, М. А. Карцева и других.

И тут – семейственность...

Узкое место параллелизма, как уже говорилось, – трудности, с которыми сталкиваются математики, пытаясь разбить тут или иную задачу на несколько менее сложных, которые можно было бы решать независимо друг от друга.

На практике чаще всего оказывается, что решения отдельных частей общей задачи зависят друг от друга, поэтому то и дело приходится использовать промежуточные данные вычислений. Словом, получается, что отдельные процессоры обязательно должны в ходе работы общаться друг с другом, обмениваться данными и результатами вычислений. А это резко усложняет и архитектуру и конструкцию суперЭВМ.

Над всеми параллельными вычислениями дамокловым мечом висит закон Андала. Он определяет, какого максимального ускорения можно достичь для данного числа параллельных процессоров в зависимости от доли последовательных операций в алгоритме.

Скажем, нам нужно сложить все числа от 1 до 99. Если выполнять эти операции последовательно, нужно 99 операций сложения. Если же мы сначала разобьем числа по парам, а потом каждую суммированную пару подадим на один из процессоров параллельного компьютера, то при одновременном сложении потребуется всего 7 таких операций. И они займут куда меньше времени.

Иначе говоря, ограничения, который вносит закон Андала, выглядят так. Если в программе 90 операций выполняется параллельно, а только 10 последовательно, то при любом количестве параллельных процессоров нельзя достичь ускорения большего, чем в десять раз.

Таким образом, получается, что использовать мощные машины можно лишь в том случае, когда тщательно подготовлен алгоритм параллельного решения задачи.

И тут выясняется, что в мире существует сравнительно немного задач, которые можно так глубоко распараллелить, чтобы для их решения можно было использовать огромные суперЭВМ со множеством параллельных процессоров.

Большую же часть задач при грамотном подходе вполне можно решать на суперкомпьютерах с небольшим или средним числом параллельных процессоров.

И здесь свое веское слово сказали наши специалисты. Во всем мире их уважают за умение создавать такие алгоритмы решения тех или иных конкретных задач, которые позволяют существенно экономить ресурсы машинного времени, использовать ЭВМ меньшей мощности.

Например, в лаборатории параллельных технологий Вычислительного центра МГУ разработан проект «параллель.ру», который авторы называют «прообразом центра компетенций по параллельным вычислениям». Говоря проще, с помощью Интернета любой пользователь может не только ознакомиться с базой данных по параллельным вычислениям во всем мире, но и получить доступ со своей задачей непосредственно к самому суперкомпьютеру МГУ. Руководитель лаборатории Владимир Воеводин даже завлекает всех желающих посчитать на своем кластере.

Поделиться с друзьями: