Советские компьютеры
Jan. 28th, 2010 01:16 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В последние дни мне попалось несколько материалов по советской вычислительной технике, и родился этот пост. Наверное, многие до сих пор считают, что советская вычислительная техника была сильно отсталой, по сравнению с американской. Однако, это было не так и не всегда. Тема для меня близкая.
Начнем с того, что триггер был изобретен советским ученым М.А.Бонч-Бруевичем в 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 лет не могут ничего до вести до серийного производства. Возможно, в последнее время что-то меняется, так как руководство страны понимает, что без собственной вычислительной техники невозможно сохранять обороноспособность. Дай то Бог.
Использованные материалы:
Википедия по ряду вопросов.
Физик Лосев
Первая БЭСМ. Начало пути
Сталин и Кибернетика
Супер ЭВМ в России. История и перспективы
"Эльбрус". История легенды.
История разработок ИТМмВТ
Начнем с того, что триггер был изобретен советским ученым М.А.Бонч-Бруевичем в 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 лет не могут ничего до вести до серийного производства. Возможно, в последнее время что-то меняется, так как руководство страны понимает, что без собственной вычислительной техники невозможно сохранять обороноспособность. Дай то Бог.
Использованные материалы:
Википедия по ряду вопросов.
Физик Лосев
Первая БЭСМ. Начало пути
Сталин и Кибернетика
Супер ЭВМ в России. История и перспективы
"Эльбрус". История легенды.
История разработок ИТМмВТ
no subject
Date: 2010-03-26 05:05 am (UTC)Аффтар жжошь. Первый Cray появился в конце 75-го года, примерно 9 лет после появления БЭСМ-6. Если же ты про CDC-6600, над которым действительно работал Сеймур Крэй, то он превосходил БЭСМ-6 ровно в три раза и появился за два до нашей машины (серийное производство начато в 64-м году).
no subject
Date: 2010-03-26 08:12 am (UTC)CDC-1604
Date: 2010-04-29 05:43 am (UTC)The 1604 was used by the Soviet nuclear weapons laboratory. Their BESM-6 super computer was designed to be somewhat software compatible with the CDC 1604, but it ran 10 times faster and had additional registers.
http://en.wikipedia.org/wiki/CDC_1604
Тактовый цикл у CDC-1604 всего 1 МГц. У БЭСМ - 10 МГц и она ещё имеет конвейер! Поэтому я не верю даже, что БЭСМ уступала CDC-6600 c той же тактовой частотой, ибо конвйер Крей "изобрёл" позже и ввёл только на CDC-7600.
Не было и программной совместимости БЭСМ-6 и CDC-1604, как пишут американцы. Они привирают, чтобы создать впечатление, что мы всё же содрали их дезайн.
Re: CDC-1604
Date: 2010-04-29 06:33 am (UTC)Скажем так. БЭСМ-6 сравнивают с CDC-1604, и БЭСМ-6 лучше. Но в 1964м году уже появился CDC-6600 на принципиально новой архитектуре, с декларируемой производительностью 3 MFLOPs. (У БЭСМ-6 - 1MFLOPs). Конечно, дело не только в производительности в флопсах, но это некоторый показатель.
Хотя про 3MFLOPs у CDC-6600 написано в русской википедии в статье про Крея, в английской про CDC-6600 фигурирует более скромная цифра в 1MFLOP, как у БЭСМ-6. Но уже в 69м вышел CDC-7600 с производительностью от 10 до 36 MFLOPs.
Re: CDC-1604
Date: 2010-04-29 06:41 am (UTC)По операциям с плавающей точкой у них был примерный паритет в 1 MFLOPS.
CDC-7600
Date: 2010-04-29 06:58 am (UTC)http://en.wikipedia.org/wiki/CDC_7600
Там же:
"was generally about ten times as fast as the CDC 6600, and could deliver about 10 MFLOPS on hand-compiled code, with a peak of 36 MFLOPS[1]."
10 раз - это конвейер(3)+рост частоты(3). Но на плавающей арифметике это очень неоднозначно. Деление занимает 10 тактов и на делении конвейер может дать десятку роста. На умножении (3 такта) - только тройку. Однако компилятор не даёт конвейеру заполнить все такты! Это сложная задача для компилятора. Поэтому пишут про 10 MFLOPS и пиковую 36 MFLOPS. Но реально там ещё меньше должно получаться - 3MFLOPS стандарт и 10MFLOPS пиковой. Это опять быстрее в 3 раза, чем у БЭСМ-6. Теоретически. Реальность могли бы показать только сравнительные тесты.
Re: CDC-1604
Date: 2010-04-29 06:37 am (UTC)БЭСМ-6 имеет конвейер, который позволяет извлекать данные, производить арифметическую операцию и сохранять результат за один такт процессора. Таким образом можно оценивать производительность БЭСМ-6 в 10 млн оп/сек. Хотя операции с плавающей точкой занимают несколько тактов и потому производительность её также оценивают в 1 MFLOPS. Путаница MIPS и MFLOPS привела к тому, что БЭСМ-6 считают менее производительной, чем CDC-6600. Однако конвейер БЭСМ-6 позволял ей делать целочисленные операции в 3 раза быстрее CDC-6600, сохраняя паритет на операциях с плавающей точкой.
Re: CDC-1604
Date: 2010-04-29 08:02 am (UTC)http://www.mailcom.com/besm6/index_ru.shtml
Re: CDC-1604
Date: 2010-04-29 08:47 am (UTC)Ту ссылку, что вы тут даёте, лучше выкинуть. Непрофессиональная туфта с попыткой очернить совесткую технику. Более профессионально:
http://www.icmm.ru/~masich/win/lexion/besm6/besm6.htm
Re: CDC-1604
Date: 2010-04-29 09:24 am (UTC)"Ряд необычных схемных решений в арифметическом устройстве (невидимых программисту) обеспечил возможность при такте 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)Насчёт умножения по 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. Просто нам незачем было кого-то обманывать.