kaipa: (Default)
[personal profile] kaipa
В последние дни мне попалось несколько материалов по советской вычислительной технике, и родился этот пост. Наверное, многие до сих пор считают, что советская вычислительная техника была сильно отсталой, по сравнению с американской. Однако, это было не так и не всегда. Тема для меня близкая.

Начнем с того, что триггер был изобретен советским ученым М.А.Бонч-Бруевичем в 1918г в нижегородской радиолаборатории, а его соратник О.В.Лосев в 22г изобрел "кристадин" -- прообраз современного транзистора. Нобелевскую премию за это получили, как обычно, американцы. Нескольками годами позже он же изобрел свето-диод и фото-диод. То есть определенный научный задел в области радиотехники в СССР существовал еще в 20е годы. Однако, острая необходимость в вычислительных машинах появилась только с развитием атомной и ракетной техники. И успех СССР в атомной энергетике, космосе, ракетной и противоректной технике -- это косвенное подтверждение высочайшего уровня вычислительной техники, которая разрабатывалась для военной и космической области.

Первые советские вычислительные машины создавались в Киеве, в Институте Электротехники АН УССР. Именно там бала создана и запущена в 1950г МЭСМ -- Малая Электронная Счетная Машина -- первая ЭВМ в континентальной Европе. Она создавалась под руководством С.А.Лебедева, который в 50г был переведен руководить в Москву Институтом Точной Механики и Вычислительной Техники (ИТМиВТ). МЭСМ задумывалась как макет для БЭСМ -- Большой (или Быстродействующей) Электронной Счетной Машины. В БЭСМ были впервые в мире применены такие базовые принципы, как конвеер и стэк. БАСМ-1 или БЭСМ-АН была завершена в 1952г и на выставке 1953г в Дармштате была лучшей в Европе. Ее усовершенствованная версия БЭСМ-2 была первой в мире серийной ЭВМ. Ей были оснащены все вычислительные центры СССР, на ней считались траектории спутников и космических кораблей. Полупроводниковая БЭСМ-6 была закончена в 1966 году, это был первый советский супер-компьютер, не уступавший американским Креям (Cray) того времени. Выпускался, кстати, до 1987года и использовался во всех областях промышленности и науки.

На основе БЭСМ-2 была создана военная ЭВМ М-40, которая в 1961 году смогла впервые в истории сбить ракету противоракетой. Американцы смогли повторить этот результат только спустя 23 (!!!) года. А 5Э26 -- это мобильная ЭВМ, созданная с 69 по 75 год специально для комплекса ПВО С-300. Комлекс до сих пор лучший в мире (ЭВМ, конечно, с тех пор несколько раз совершенствовалась). Система трех процессорная, но не для производительности, а для надежности. Все процессоры считают одно и то же, и если один выдает отличный от двух других результат -- он отключается. Ведь ошибка в военных системах может привести к катастрофе.

Машины семейства Эльбрус (1 и 2), созданные в 70-80 г были уже параллельными, построенные на суперскалярной архитекторе (первые в мире коммерческие ЭВМ такого типа, кстати). Причем, сначала на бумаге, а потом в железе была достигнута линейная масштабируемость производительности по количеству процессоров (до 10). Они использовали 10 процессоров, из них 2 резервных (как и в М-40), аппаратное динамическое распределение ресурсов и многие другие уникальные технические решения. Система Эльбрус-2 применяется в ПРО Москвы A-135 В то же время были разработаны векторные процессоры для Эльбрус-3, который был построен в 1988, до конца не отлажен, и пущен под пресс "за ненадобностью" в 1994м. Его производительность была бы в два раза выше современного ему "крея" Cray Y-MP

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

Началом заката советской вычислительной техники стало принятое в 1967 году решение хрущевского руководства перейти на «обезьянью политику» - копировать американскую вычислительную технику, запустить в производство машины IBM-360 под названием Единая Система «Ряд». И хотя ИТМиВТ продолжал разрабатывать уникальные ЭВМ вплоть до распада СССР, это уже происходило на энтузиазме Лебедевцев и вопреки официальной линии. Ну с крушением СССР все или почти все развалилось, и наследники Эльбруса уже 15 лет не могут ничего до вести до серийного производства. Возможно, в последнее время что-то меняется, так как руководство страны понимает, что без собственной вычислительной техники невозможно сохранять обороноспособность. Дай то Бог.

Использованные материалы:
Википедия по ряду вопросов.
Физик Лосев
Первая БЭСМ. Начало пути
Сталин и Кибернетика
Супер ЭВМ в России. История и перспективы
"Эльбрус". История легенды.
История разработок ИТМмВТ

Re: CDC-1604

Date: 2010-04-29 09:24 am (UTC)
From: [identity profile] ushastyi.livejournal.com
Я бы разделял арифметические операции, целочисленные и с плавающей точкой, и прочие. Хотя вы правы, что под MIPS -- это операции вообще, инструкции. Кстати, по приведенной вами ссылке операции-инструкции как раз четко разделяются.

"Ряд необычных схемных решений в арифметическом устройстве (невидимых программисту) обеспечил возможность при такте 10 МГц получить высокое быстродействие выполнения операций: сложение – 1,1 мкс, умножение – 1,9 мкс, деление – 4,9 мкс, прочие операции – 0,5 мкс. Это позволяет оценить среднее быстродействие АУ в 1 млн. оп/с"

То есть если мы возьмем только умножение, то БЭСМ-6 может делать примерно 0.5 миллиона операций в секунду. В то время как CDC-6600 -- 1 млн. Параллельное выполнение умножения увеличивает эту оценку для CDC вдвое, насчет же БЭСМ-6 -- я не знаю, но похоже, что параллельно вычисляться ничего не могло. Надо подробнее посмотреть.

Вообще-то, FLOPS меряются не на бумаге, а тестом определенного вида. Например, http://en.wikipedia.org/wiki/LINPACK Только в этом случае можно померять производительность системы целиком, включая работу с памятью, эффективность конвеера, кэша, параллелизма и проч. То есть теоретическая оценка имеет место быть, но без реального эксперимента она остается теоретической.

P.S. "Моя" ссылка -- просто первое, что подвернулось под руку, идет напрямую с сайта ИТМиВТ. По-моему, это как раз сайт энтузиастов, которые до сих пор делают эмуляторы БЭСМ-6 и проч.

Re: CDC-1604

Date: 2010-04-29 10:16 am (UTC)
From: [identity profile] malchish-org.livejournal.com
Данные по скорости выислений для БЭСМ-6 тут приводятся для плавающей арифметики и без учёта конвейера. Оценку MFLOPS делают по самой быстрой операции - сложению. Так и получили 1 MFLOPS.

Насчёт умножения по CDC-6600. Что они сами пишут на этот счёт?

"Both the 6400 and 6600 CPUs had a cycle time of 100 ns (10 MHz). Due to the serial nature of the 6400 CPU, its exact speed was heavily dependent on instruction mix, but generally around 1 MIPS. Floating adds were fairly fast at 11 clocks, however floating multiply was very slow at 57 clocks. Thus its floating point speed would depend heavily on the mix of operations and could be under 200 kFLOPS. The 6600 was, of course, much faster. With good compiler instruction scheduling, the machine could approach its theoretical peak of 10 MIPS. Floating point adds took 4 clocks, and floating point multiplies took 10 clocks (but there were two multiply functional units, so two operations could be processing at the same time.) The 6600 could therefore have a peak floating point speed of 2-3 MFLOPS."
http://en.wikipedia.org/wiki/CDC_6000_series

6400 - это вариант 6600 без паралельных модулей. Поэтому для 6400 получаются честные данные, а для 6600 - не очень, поскольку подразумевают "good compiler instruction scheduling", чего ожидать не приходилось. Причём 10 тактов для умножения - тут какая-то уже путаница, ибо для 6400 было 57. Вот эти 57 я бы и взял для оценки времени умножения - 5,7 мкс.

Я почему об этом так уверенно пишу. В том процессоре, который я сам разрабатывал, так же были отдельные модули для разных операций с плавающей точкой. Был умножитель, был сумматор, был модуль СПЭФ - спецфункции (деление, синус-косинус, логарифм...). Эти модули также можно было загружать одновременно и каждый из них отрабатывал несколько тактов процессора (тоже 100 нс, кстати). И на уровне макробиблиотек нам удавалось немного распараллелить их работу. Но мы НИКОГДА не считали из-за этого, что у нас производительность удваивается или утраивается. Поскольку реальные программы этот эффект практически не замечали. Поскольку сумматор у нас отрабатывал за 2 такта (200 нс), то общую производительность системы мы указывали 5 MFLOPS. Хотя мы могли запихать к корзину до 5 сумматоров и указать 25 MFLOPS. Просто нам незачем было кого-то обманывать.

Profile

kaipa: (Default)
kaipa

April 2017

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2025 08:54 pm
Powered by Dreamwidth Studios