Я познаю мир. Компьютеры и интернет | страница 43




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


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


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

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

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


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


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


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


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


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