М. Кузнецов — ЭВМ за световым барьером

Дата публикации: 03-07-2015

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

У ЭВМ работа тихая, на первый взгляд неприметная. Если есть шум, так это от вентиляторов или кондиционеров — машина любит комфорт. Если строки замелькали на дисплее — это скорее всего сообщение о начале работы над новой задачей. Людей вокруг почти нет, да и те немногие больше напоминают зрителей. Глядя на эти безмолвные шкафы, непосвященному трудно представить, что в них ежесекундно выполняется, скажем, миллион арифметических действий по расчету прочности нового моста, орбиты космического корабля, плана железнодорожных перевозок или прогноза погоды (все население СССР, вооруженное карандашами или счетами, не угналось бы за одной такой машиной!).

На сайте http://samodelnik.ru/kak-ustanovit-rozetku-svoimi-rukami/ легко можно научиться устанавливать розетки своими руками.

Скорость (быстродействие) ЭВМ — основа ее могущества. И вся недолгая история изобретательского поиска в области вычислительной техники — это, по сути дела, борьба за скорость. В течение двух десятилетий быстродействие ЭВМ удалось увеличить с нескольких тысяч до нескольких миллионов операций в секунду!

Но в последние годы прогресс стал уже не столь стремителен. Огромные усилия затрачивают специалисты даже для достижения самых скромных успехов. Словно невидимая стена встала на пути прогресса ЭВМ.

Принципиальный барьер на пути совершенствования ЭВМ связан с фундаментальным физическим законом. Работа ЭВМ основана на передаче электрических сигналов между различными ее элементами и блоками. Скорость распространения любого сигнала, разумеется, не может превышать скорости света. (В пустоте она, напомним, чуть меньше 300 тысяч километров в секунду: это предел для всякого движения в окружающем нас материальном мире. В реальных электрических цепях скорость сигнала в 1,5—3 раза ниже. Нетрудно подсчитать, что за миллиардную долю секунды сигнал проходит всего 10—20 сантиметров.) А расстояние между отдельными блоками компьютера может достигать нескольких метров, да еще каждая команда требует многократного обмена сигналами. Понятно, когда электрический сигнал должен за секунду тысячи и тысячи раз пробежать по нескольку метров, скорость света уже становится ощутимым, мешающим ускорению работы пределом. Так сама природа поставила на пути прогресса ЭВМ своеобразный барьер.

Что было делать в этой ситуации? Возможны два выхода: максимально сократить расстояния, проходимые электрическим сигналом в блоках памяти машины, и второй — попытаться каким-то образом увеличить скорость прохождения самих сигналов, то есть максимально приблизить скорость их к скорости света. Началась борьба за компактность, миниатюрность ЭВМ. Первые машины работали на лампах и занимали целые залы, потом лампы сменили на транзисторы, затем появились интегральные схемы, большие интегральные схемы, сверхбольшие интегральные схемы, состоящие из сотен тысяч элементов… Сегодня даже у мощнейшей ЭВМ габариты письменного стола! Для соединения блоков машины применяют особые кабели, в которых исключено взаимное влияние близлежащих проводников с током, способствующее торможению электрических сигналов. Повысить скорость электрических сигналов пробуют, используя известное явление сверхпроводимости, другие тонкие квантовые эффекты… Но барьер есть барьер: мчаться быстрее скорости света электроны не заставишь ни сверхсильным магнитом, ни космическим холодом, словом, никакими силами. А задачи, например, по планированию народного хозяйства, прогнозированию погоды или землетрясений требуют поднять быстродействие на качественно новый уровень, увеличить его в десять, в сто раз!

Так выглядит современный вычислительный комплекс

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

Чтобы обойти световой барьер, необходимо было изменить сам принцип работы ЭВМ.

Обычная электронно-вычислительная машина состоит, напомним, из двух основных частей, называемых памятью и процессором. Память предназначена для хранения информации — условий задачи, промежуточных и окончательных результатов, а также программы решения. Процессор выполняет эту программу — шаг за шагом, команду за командой — так, как это предусмотрено алгоритмом решения задачи. И все достоинство такой машины, еще раз подчеркнем, состоит в способности очень быстро выполнять последовательность элементарных арифметических действий, заданных программой. И при этом машине совершенно безразлично — рассчитывает она уникальный мост или считает картошку. Для простоты предположим, что ей задали вычислить среднее арифметическое N чисел и она это сделала в полном соответствии со своими только что еще раз отмеченными возможностями. А теперь представьте, что ту же задачу поручили, скажем, поумневшему в наш научный век Змею-Го- рынычу. Он, пожалуй, нашел бы дело для всех трех своих голов: разделил N чисел на три группы и поручил каждой голове просуммировать по группе. Затем осталось бы сложить три полученные суммы и разделить результат на N. Это, конечно, шутка, но…

При достаточно больших N быстрота решения такой задачи растет пропорционально числу участвующих в вычислении «голов». (Пример решения конкретной задачи смотри под заголовком «Подробности для любознательных».)

Подобный подход и позволил обойти световой барьер. Конструкторы стали снабжать ЭВМ несколькими «головами» — процессорами.

Идея создания многопроцессорной, «сверхсветовой» ЭВМ довольно проста для понимания. Но это вовсе не значит, что высказать и воплотить ее тоже было простым делом. Для кардинальной идеи, как не раз было в истории науки, должно приспеть время. Скажем, еще не так давно подобная затея с «многоголовой» машиной выглядела бы сомнительной: специалисты были уверены — лучше уж иметь две обычные ЭВМ, чем одну двухпроцессорную. Но сейчас процессор из громоздкого шкафа, начиненного платами с электронной аппаратурой и бесчисленными сплетениями разноцветных проводов, превратился в микросхему — коробочку размером с карандаш! Во много раз снизилась его стоимость и возросла надежность. Теперь никто уже не назовет фантастикой вычислительную систему из тысячи процессоров, каждый из которых может выполнять 2—3 миллиона операций в секунду. Многопроцессорные ЭВМ, называемые иначе машинами с распределенными (или параллельными) вычислениями, создают сейчас во многих странах мира.

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

«Равняйсь! Смирно! Нале-во! Шагом — марш!» — краткие команды, и сто человек, подчиняясь им, превращаются как бы в единое целое.

Примерно по такому пути пошли создатели многопроцессорных ЭВМ, где все процессоры однотипны и выполняют одинаковые операции. Одна из первых подобных машин, построенная в США в единственном экземпляре, имела 64 процессора и успешно проработала с 1972 по 1981 год. Для своего времени это была самая крупная и мощная ЭВМ универсального назначения.

Сейчас в нашей стране серийно выпускается ЭВМ ПС-2000 с общим быстродействием до 200 миллионов операций в секунду! Все ее процессоры (число которых различно для различных модификаций машин) одновременно выполняют одну и ту же операцию либо стоят в ожидании работы.

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

Однако далеко не всегда выгодно заставлять процессоры работать по принципу «все — как один». Возьмем простой пример. Двоим поручили некоторую работу. В одиночку каждый справился бы с заданием за полчаса. Сколько времени потребуется им при совместной работе? Пятнадцать минут, не так ли? Не всегда… Ведь далеко не безразлично, какая именно работа поручена. Если чистка картошки, тогда, конечно, пятнадцать минут. А если двоим надо приготовить обед? Понятно, один может заняться супом, другой — кашей, и дело пойдет быстрее. Но при этом совсем не очевидно, что время сократится ровно вдвое. А если они чинят радиоприемник? Решают задачу? Здесь вообще нет гарантии, что объединение усилий сократит время работы.

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

Идея специализированного процессора даже несколько старше собственно многопроцессорных систем. Дело в том, что ввод данных в память ЭВМ и вывод результатов (коротко— ввод-вывод) выполняется гораздо медленнее, чем сами машинные команды. Ведь неизбежные при вводе-выводе механические движения — подача перфокарты или перфоленты, удары печатающих молоточков, перемещение головок магнитного диска — никак не могут «угнаться» за электрическими сигналами.

Поэтому для ввода-вывода используют отдельные процессоры, называемые каналами. При этом основной процессор (его еще называют центральным) выдает каналам задания на выполнение операций ввода-вывода, а сам тем временем может продолжать работу над другой задачей.

ЭВМ серии ЕС, получившие у нас широкое распространение имеют, как правило, 3—5 каналов, к которым подключают множество разнообразных устройств: для ввода и вывода перфокарт и перфоленты, для быстрой и медленной печати, для чтения с магнитных лент и с магнитных дисков и записи на них, для ввода информации с рисунков и схем, для автоматического черчения… Поэтому ЭВМ с единственным центральным процессором может решать одновременно несколько задач, максимально используя свою вычислительную мощность, быстродействие.

От идеи каналов — процессоров для ввода-вывода — недалеко до универсальных многопроцессорных ЭВМ. Один из процессоров здесь также центральный: он распределяет задания между остальными, заставляя их одновременно выполнять различные части одной и той же задачи (или при необходимости просто различные задачи). По такому принципу организована новая советская ЭВМ ПС-3000, имеющая процессоры для однотипных вычислений и независимые процессоры, которым можно поручить специальную работу.

Итак, взят световой барьер, построены первые «многоголовые» ЭВМ… Что же дальше?.. А дальше, как, вероятно, догадался пытливый читатель, новые трудности, проблемы. И самая главная из них — необыкновенная сложность программирования «многоголовых» ЭВМ. Ведь при решении сложных задач возникает множество вариантов возможного распределения работы между процессорами. Можно, допустим, действовать по принципу «все — как один», загружая процессоры одинаковыми вычислениями. Куда сложнее, многовариантнее, но и обычно выгоднее так называемая конвейерная организация, когда каждый процессор выполняет отдельную операцию или группу операций, передавая результаты по мере готовности «соседям». (Кстати, принцип конвейера лежал в основе конструкции ЭВМ БЭСМ-6, созданной у нас в 1966 году и достигавшей невиданного тогда быстродействия— 1 миллион операций в секунду.) Здесь решение представляет собой, если воспользоваться графическим образом, разветвленное дерево с хитроумнейшими пересечениями и параллелями. Причем в меру способностей и квалификации каждый программист может вырастить такое дерево по- своему. Однако из всего множества возможных решений задачи есть всегда одно-единственное— наилучшее, оптимальное. (Это примерно так же, как на уроке математики учитель ставит задачу и говорит, что она имеет несколько решений и что надо найти самое короткое, экономное, изящное.)

Для двух-трех процессоров человек все же достаточно быстро может найти оптимальный вариант программы. Но «тысячеглавые» машины, создание которых уже не за горами, вновь потребуют принципиально нового подхода, кардинального решения. Каким видят сегодня решение этой проблемы ученые — об этом мы постараемся рассказать в одном из следующих номеров журнала.

М. КУЗНЕЦОВ, инженер

Подробности для любознательных

Возьмем простейшую задачу — вычисление на ЭВМ среднего арифметического -N чисел.

Вначале запишем известные простые формулы:

а,, а2, a*; b= (aI+a2+…+aIl) Человеку достаточно этой формулы, чтобы вычислить среднее арифметическое Ь; для машины же необходим алгоритм. Например, такой:

1.            Допустим, s=0.

2.            Допустим, i= к

3.            Вычислим новое s=s+a .

4.            Вычислим новое i=i+l.

5.            Если i N+1, перейти к операции 3.

6.            Вычислим b=s/N.

В этом алгоритме i и s — промежуточные величины: номер слагаемого и накапливаемая сумма. Как видите, наряду с арифметическими операциями (3, 4, 6) алгоритм содержит и вспомогательные: запись начальных значений величин (1, 2) и изменение порядка операций в зависимости от условия (5), Каждую операцию можно записать в виде одной или нескольких машинных команд; однако, во-первых, машинная программа будет различной для различных ЭВМ (хотя алгоритм один и тот же), и, во-вторых, преобразование алгоритма в машинные команды производится обычно самой ЭВМ при помощи специальных программ-переводчиков (трансляторов). Поэтому приведенный алгоритм тоже можно, вообще говоря, называть программой.

Допустим теперь, что наша программа уже находится в памяти машины. Там же числа а , их количество — N, скажем, 5. Пусть каждая операция соответствует одной машинной команде. Сколько команд будет выполнено процессором? Шесть? Неправильно. Операции 1,. 2 и 6 в самом деле будут выполнены по одному разу, зато с 3-й по 5-ю — 5 раз. Итого 18 команд. А для произвольного N — 3N+3. Процессор «крутится» в нашей коротенькой программе, упорно прибавляя к S число за числом. А что ему остается делать? Помочь-то ведь некому.

Теперь допустим, что в нашем распоряжении ЭВМ с двумя па- I аллельными процессорами, выполняющими одни и те же команды Числа для этих команд располагаются в нам; ЭВМ по соседству, парами. Пары обозначаются заглавн] ми буквами, Например, Р = (3,5) означает, что в памяти подряд записаны числа 3 и 5, Q=(l,l) — две единицы. Операция сложения P+Q даст в результате пару R=(4,6): первое число пары 4=3+1 будет получено 1-м процессором, второе — 6=5+1 — 2-м, причем одновременно.

Если I — пара индексов, например (1,2), то через А обозначается паpa чисел (аь а2). S=(s’, s») — пара, в которой накапливается сумма: s’=ai+a2+ +…; s»=a2+a4+… Пусть, наконец, N — четное число. Тогда мы можем записать программу в следующем виде:

1.            Допустим, S = (0* 0).

2.            Допустим, 1=(1, 2).

3.            Вычислим новое S=S+A .

4.            Вычислим новое 1=1+(2,2).

5.            Если 1 (N+l, N+2), перейти к операции 3.

6.            Вычислим s=s’+s».

7.            Вычислим b = s/N.

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

Как видно, программа получилась немногим сложнее, Чем прежняя, для однопроцессорной ЭВМ Но ее выполнение будет состоять только из 1.5N+4 команд (проверьте!). Для больших N мы получили двукратный рост производительности, для малых N — несколько меньше. Будь процессоров не два, а больше, они бы работали не с парами, а с тройками, четверками или вообще с наборами чисел произвольной длины. Чем больше процессоров, тем выше производительность, но и тем труднее находить для всех них работу.

ИНФОРМАЦИЯ

Случайное

Ателье „ЮТ»

Намагниченный инструмент

Кран «лебедь, рак да щука»

«Сверчок-2»— универсальный станок

Вместо пинцета и кусачек

Лазер над тайгой

По ту сторону фокуса

Коньки на все времена года

На пути к орбитальным комплексам

Александр беляев. Замок ведьм

Серьги для… Коров

Самоходная гаубица

Космический айсберг или гость из антимира!

Модель двигателя Стирлинга

Задачи с хитростью

Новое Случайное Нас нашли

©2009-2014  Адрес в интернете: http://unteh.ru