kaipa: (Default)
Наткнулся у Ричарда Фейнмана на описание, как считали Бомбу в Лос-Аламосе. Это просто замечательно.

    Ну, в общем, мы все решили, что самая главная задача - понять точно, что именно происходит во время взрыва бомбы, чтобы можно было точно указать, сколько выделяется энергии и т.д., - требовала намного больше выкладок, чем мы могли делать. Но один умный человек по имени Стэнли Френкель сообразил, что вычисления, возможно, удастся сделать на машинах IBM. Компания IBM выпускала машины для бизнеса - устройства для сложения, называемые табуляторами, и машины для умножения - мультипликаторы, в которые можно было закладывать карточки: машина считывала два числа с карточки и умножала их. Были также устройства, которые сличали числа, сортировали их и т.д.
    И вот Френкель придумал замечательную программу. Если бы мы собрали довольно много таких машин в одной комнате, то мы смогли бы взять карточки и запустить их по циклу. Всякий, кто сейчас делает численные вычисления, знает точно, о чем я говорю, но тогда это было нечто новое - поточная линия из вычислительных машинок. Мы делали подобные вещи на машинках для сложения. Обычно продвигаешься шаг за шагом, проводя все выкладки самостоятельно. Но здесь все не так - сначала обращаешься к "слагателю", затем к "умножителю", опять к "слагателю" и т.д. Одним словом, Френкель спроектировал такую систему и заказал калькуляторы в компании IBM, поскольку мы поняли, что это хороший способ решения наших проблем.
    При этом нам нужен был человек, который чинил бы машинки, поддерживал бы их в порядке и все такое. Военные все время собирались прислать нам такого человека из своих рядов, но дело постоянно задерживалось. Теперь мы всегда были в спешке. Все, что мы делали, мы старались делать как можно быстрее. В данном конкретном случае мы разработали все численные операции - предполагалось, что их будут делать машины - множь это, потом сделай это, потом вычти это. Мы разработали программу, но у нас пока не было машин для реальной проверки. Поэтому мы посадили в комнату девушек и снабдили каждую калькулятором Маршана: одна была "умножителем", другая - "слагателем". Еще одна возводила в куб: все, что она делала, - возводила в третью степень число на карточке и отправляла ее следующей девушке.
    Так мы прошли по всему циклу, пока не "вылизали" его, не избавились от всех скрытых ошибок. Оказалось, что скорость, с которой мы теперь были в состоянии вычислять, стала чертовски большой - намного больше, чем при другом способе, когда каждый человек все шаги проделывал сам. По этой системе мы получили скорость вычислений, совпадающую с предсказываемой скоростью для машины IBM. Единственная разница состояла в том, что машины IBM не уставали и могли работать в три смены. А вот девушки через некоторое время уставали.

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

Но и это еще не все. Параллельные вычисления!

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

Частичный перезапуск в случае ошибки.

    Когда пропускали карточки, машина иногда делала ошибку, или на карточке набивали не правильное число. Обычно в таких случаях нам приходилось возвращаться назад и все начинать сначала. Но мои сотрудники заметили, что ошибка в каком-то пункте в данном цикле сказывается только на соседних числах, в следующем цикле - снова на близлежащих числах и т.д. Так это и идет по всей колоде карточек. Если у вас 50 карточек и ошибка допущена в карточке Э39, она сказывается на карточках Э37, 38 и 39. В следующем цикле - на карточках Э36, 37, 38, 39 и 40. А затем она распространяется как болезнь.
    Мои сотрудники обнаружили ошибку в том, что было уже сделано раньше, и у них возникла мысль - провести выкладки заново для небольшой колоды из десяти карточек вокруг ошибки. А поскольку десять карточек пройдут через машину быстрее, чем колода из пятидесяти карточек, они пропустят маленькую колоду, продолжая оперировать с пятьюдесятью карточками, в которых, как чума, распространяется ошибка. Но поскольку десять карточек будут готовы быстрее, они изолируют ошибку и исправят ее. Очень умно.
    Вот как эти парни работали, чтобы увеличить скорость. Другого способа не было. Если бы им пришлось остановиться для исправления ошибки, мы бы потеряли время, а взять его нам было неоткуда.

Примерно в то же время создавался первый полноценный компьютер ЭНИАК, но основные расчеты были произведены именно описанным выше способом. Интересно, а как у нас? МЭСМ -- это 1950г, то есть расчеты по Бомбе должны были делаться тоже похожим образом. Только айбиэмовских машин у нас не было.
kaipa: (Default)
Продолжаю тему, начатую несколько месяцев назад статьей Советские компьютеры

Стимулом стала хорошая статья Мальчиша ([livejournal.com profile] malchish_org) Воображариум науки. Часть вторая. В частности, он описал современное состояние Эльбрусов. Процессор для системы Эльбрус-3М1 все таки был доделан (спустя 15 лет после системы Эльбрус-3), и сейчас делается процессор Эльбрус-S. Вроде это даже выпускается серийно http://www.mcst.ru/b_6-7.shtml. В отличие от Эльбрусов 1 и 2, это уже не суперкомьютеры. В процессе обсуждения и поиска в Сети, я обнаружил немало интересных материалов, многие из которых были для меня новостью.

Начну, пожалуй, с проекта "Кронос", который существовал в Новосибирском академгородке в 80-90 годы. В 84г был готов первый процессор серии "Кронос-1", ориентированный на язык Модула-2. Программы для него сразу писались на этом языке высокого уровня, что значительно ускоряло разработку и упрощало отладку. В 85м был разработан новый процессор "Кронос-2" и на его основе в 87 рабочая станция "Кронос-2.6", которая выпускалась серийно на нескольких заводах СССР и использовалась в оборонке и космических областях. На основе процессоров "Кронос" проводились разработки транспьютеро-подобных систем МАРС-Т (Модульные Асинхронные Развиваемые Системы). "В отличие от английской концепции транспьютера, разработанной в компании Inmos, в случае МАРС вычислительный элемент имел не четыре, а произвольное число соседей. Основным строительным блоком служил процессор "Кронос", точнее говоря, МАРС-Т." Но к концу 90х был готов только один опытный образец, а потом все кончилось.

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

"16 февраля 2007 года объявлено о завершении строительства Регионального центра коллективного пользования высокопроизводительными вычислительными ресурсами ТГУ. Вычислительный центр ТГУ оснащен суперкомпьютером СКИФ Cyberia, ставшим самым мощным вычислительным комплексом на территории России, СНГ и Восточной Европы, а также одним из ста мощнейших компьютеров мира. Пиковая производительность СКИФ Cyberia составила 12 триллионов операций в секунду." (http://www.thg.ru/technews/20070217_144613.html)

или:

"Сегодня (25.11.2009) в МГУ имени М.В. Ломоносова состоялась презентация самого мощного в СНГ и Восточной Европе суперкомпьютера "Ломоносов" производительностью 420Тфлопс."

Эти выдающийся результаты следствие долгих лет работы коллективов НИВЦ МГУ и ИПС РАН в рамках программы СКИФ. За 2000-2005 годы были проведены не только фундаментальные исследования и проектирование, но некоторые модели СКИФов были доведены до серийного производства. Обший обзор программы можно посмотреть здесь. Серийным производством занимается, как можно было догадаться, компания Т-Платформы

Но более интересной, хотя и с большим количеством воды, мне показалась статья Абрамова про состояние и перспективы суперкомпьютеров в России: http://skif.pereslavl.ru/psi-info/rcms/rcms-pressa/2006/itnews-yanuary-2006/itnews-abramov.pdf , опубликованная в ITNews в 2004г. Он много рассуждает об областях применения, об академических и практических задачах, возникающих сложностях, достигнутых результатах. Пересказывать смысла нет, читайте. К слову, в 94м году именно этот Абрамов принимал у меня в 11 классе школы экзамен и дипломную работу по программированию (что-то вроде интерактивной системы визуализации множества Мондельброта). Мощный мужик, как сейчас помню. И девчонок валил :)

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

Экспериментальный образец машины «Сетунь», построенный в 1957 — 1958 гг. в ВЦ МГУ по инициативе Соболева и под руководством Брусенцова, находился в эксплуатации 15 лет, Серийные "Сетуни" стали выпускаться в 1962г. Интересно, что разработка «Сетуни» не предназначалась специально для исследования возможностей троичной техники и сравнения ее с двоичной техникой. Целью было создание недорогой и простой в использовании малой цифровой машины широкого назначения (нечто в роде того, что позднее стали называть миникомпьютером), и эта цель была успешно достигнута. То же, что требуемая машина получилась троичной, было делом случая: ввиду ненадежности имевшихся в то время транзисторов были созданы магнитные логические элементы, выполненные на нелинейных трансформаторах импульсов тока с диодами (быстродействующие магнитные усилители с питанием импульсами тока), причем оказалось, что эти элементы не только весьма удобны для построения троичных цифровых устройств, но и что троичные устройства получаются существенно более экономными в отношении количества оборудования и потребляемой мощности, более быстрыми и структурно более простыми, чем двоичные устройства, реализованные на тех же элементах. Кстати, приемочная коммиссия в 1960г признала "Сетунь" первым действующим образцом универсальной вычислительной машины на безламповых элементах. Звучит невероятно, но первая безламповая ЭВМ в СССР -- была трехразрядная "Сетунь". Это полностью опровергает мнение, что троичные компьютеры сложные, дорогие и неэкономичные.

Однако, мнение об ущербности троичных машин "наверху" было настолько сильно, что в серию "Сетунь" была запущена с огромным трудом, несмотря на обилие заказов и в СССР и за рубежом, и то лишь после того как поставили ее на шасси от военной ЭВМ М-20, до минимума снизив требования к заводу-изготовителю. В то же время, чехи были готовы наладить производство на своем новейшем заводе уже в 1961-1962гг, выпуская по сотне машин в год. Не пустили, а скоро и вся серия была свернута; всего с 1962 по 1965 год было построено 50 машин. В конце 60-х "Сетунь" подверглась модернизации, и в 1970г появилась опытный образец более мощной, производительная и экономичной версия "Сетуни-70". Но новая "Сетунь" уже не смогла пробиться через административные барьеры и в течение нескольких лет работала на... чердаке студенческого общежития.

Может быть "Сетунь" свернули, из-за того, что она была плохой? Отнюдь. По надежности, универсальности и удобству программирования она превосходила многие ЭВМ того времени. И подтверждений тому немало. Несмотря на скромность ее ресурсов, “Сетунь” оказалась необыкновенно благоприятной для создания автоматизированных систем различного назначения: в Военно-воздушной академии им. Жуковского на ней уже в 1965 г. работала система программированного обучения и автоматизированная система испытания авиационных двигателей, в Гидрометцентре - система краткосрочного прогнозирования погоды; в МХТИ и на химфаке МГУ - интенсивно используемые программы в области химии; в МИИТ - задачи строительной механики; в Иркутском политехническом институте - система оптимального планирования деятельности приборостроительного предприятия; в СибНИИЭ (Новосибирск) интерпретирующая система ИПН, позволяющая на “Сетуни” отлаживать программы для М-20; на Людиновском тепловозостроительном и на Владимирском тракторном заводах - комплексы программ конструкторско-технологического назначения; в НИИ “Пищепромавтоматика” (Одесса) - системы оптимизации сельскохозяйственного назначения; в Институте космофизических исследований и аэрономии (Якутск) - “глобальная съемка” космических лучей по материалам мировой сети станций. Нажежность была тоже на высоте. Так в первой "Сетуни" за 15 лет работы было заменено всего три вышедших из строя логических элемента.

Чем же хороша и удобна троичность в вычислительной технике? Начнем с простых соображений. На самом деле, троичная логика для человека гораздо естественнее двоичной. Редко когда ответ на какой-то вопрос бинарный. Да-нет-незнаю, вправо-влево-прямо, больше-меньше-равно -- это совершенно естественные логические тройки. Аристотелева силлогическая логика тоже троична. Отношение субъекта и предиката выражаются тремя категориямми: "необходимо есть", "необходимо нет" и "не необходимо есть". Кто-то может возразить, что двоичная логика естественнее в электротехнике, однако это тоже не так. Напряжение или заряд может быть положительным, отрицательным или нулевым, больше, меньше или равен какому-то уровню. Для электротехники троичность так же естественна, как и для логики.

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

При подготовке этого текста использовались материалы с веб-сайта ВМК МГУ Троичная информатика и статьи Н.П.Брусенцова на сайте Академии Тринитаризма
kaipa: (Default)
В последние дни мне попалось несколько материалов по советской вычислительной технике, и родился этот пост. Наверное, многие до сих пор считают, что советская вычислительная техника была сильно отсталой, по сравнению с американской. Однако, это было не так и не всегда. Тема для меня близкая.

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

Первые советские вычислительные машины )

Profile

kaipa: (Default)
kaipa

April 2017

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

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 7th, 2025 05:30 pm
Powered by Dreamwidth Studios