Как делали вычисления в 50х

Всяческий Бред - Идти на Главную Страницу >>>

Категории:

Полезные Сведенья
Кухонная Философия
Общество и его пороки
Новости
Еда и Питье
Техника
Разное
Личное
Природа
Фото/Видео
"Веселые" Картинки
Юмор


Пишите Письма



Реклама:

Реклама

December 27, 2007

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

Как в 50-х 60-х годах, скажем, когда не было ещё компьютеров, делались сложные, ниибически объёмные расчёты по космонавтике, аэродинамике?

Отличным ответом в данном случае послужит цитата из книги Вы конечно шутите, мистер Фейнман (кстати, рекомендую к прочтению целиком).

Другая проблема, над которой я работал, была вот какой. Нам приходилось делать множество вычислений, и мы делали их на счетных машинах Маршана. Между прочим, это интересно - просто чтобы дать представление, на что был похож Лос-Аламос. У нас были "компьютеры" Маршана - ручные арифмометры, калькуляторы с числами. Нажимаешь на них, и они умножают, делят, прибавляют и т.д., но не так легко, как это делается сейчас. Это были механические приспособления, часто ломающиеся, их то и дело приходилось отсылать на фабрику для починки. Довольно быстро все оставались без машинок. Тогда некоторые из нас стали снимать кожухи. (Считалось, что этого делать нельзя - правило гласило: "в случае снятия кожуха мы не несем ответственности...") Все же мы снимали кожухи и отлично обучались тому, как чинить эти машинки. Постепенно мы все больше и больше преуспевали в этом ремесле, по мере того как починки становились все более изощренными. Когда же обнаруживалось что-то слишком сложное, мы отсылали машинки на фабрику, но небольшие неисправности устраняли сами, поддерживая арифмометры в рабочем состоянии. Кончилось дело тем, что я чинил все эти "компьютеры", а один парень из механической мастерской заботился о пишущих машинках.
Ну, в общем, мы все решили, что самая главная задача - понять точно, что именно происходит во время взрыва бомбы, чтобы можно было точно указать, сколько выделяется энергии и т.д., - требовала намного больше выкладок, чем мы могли делать. Но один умный человек по имени Стэнли Френкель сообразил, что вычисления, возможно, удастся сделать на машинах IBM. Компания IBM выпускала машины для бизнеса - устройства для сложения, называемые табуляторами, и машины для умножения - мультипликаторы, в которые можно было закладывать карточки: машина считывала два числа с карточки и умножала их. Были также устройства, которые сличали числа, сортировали их и т.д.
И вот Френкель придумал замечательную программу. Если бы мы собрали довольно много таких машин в одной комнате, то мы смогли бы взять карточки и запустить их по циклу. Всякий, кто сейчас делает численные вычисления, знает точно, о чем я говорю, но тогда это было нечто новое - поточная линия из вычислительных машинок. Мы делали подобные вещи на машинках для сложения. Обычно продвигаешься шаг за шагом, проводя все выкладки самостоятельно. Но здесь все не так - сначала обращаешься к "слагателю", затем к "умножителю", опять к "слагателю" и т.д. Одним словом, Френкель спроектировал такую систему и заказал калькуляторы в компании IBM, поскольку мы поняли, что это хороший способ решения наших проблем.
При этом нам нужен был человек, который чинил бы машинки, поддерживал бы их в порядке и все такое. Военные все время собирались прислать нам такого человека из своих рядов, но дело постоянно задерживалось. Теперь мы всегда были в спешке. Все, что мы делали, мы старались делать как можно быстрее. В данном конкретном случае мы разработали все численные операции - предполагалось, что их будут делать машины - множь это, потом сделай это, потом вычти это. Мы разработали программу, но у нас пока не было машин для реальной проверки. Поэтому мы посадили в комнату девушек и снабдили каждую калькулятором Маршана: одна была "умножителем", другая - "слагателем". Еще одна возводила в куб: все, что она делала, - возводила в третью степень число на карточке и отправляла ее следующей девушке.
Так мы прошли по всему циклу, пока не "вылизали" его, не избавились от всех скрытых ошибок. Оказалось, что скорость, с которой мы теперь были в состоянии вычислять, стала чертовски большой - намного больше, чем при другом способе, когда каждый человек все шаги проделывал сам. По этой системе мы получили скорость вычислений, совпадающую с предсказываемой скоростью для машины IBM. Единственная разница состояла в том, что машины IBM не уставали и могли работать в три смены. А вот девушки через некоторое время уставали.
В общем, во время этой репетиции мы все отладили, и, наконец, прибыли машины, но без мастера-ремонтника. Это были, пожалуй, самые сложные машины в технике того времени - большущие (они пришли частично разобранными) с множеством проводов и чертежей, на которых было показано, как и что делать. Мы спустились вниз и принялись собирать машины, Стэн Френкель, я и еще один парень, но у нас возникли кое-какие неприятности, и самая серьезная из них состояла в том, что большие шишки приходили все время и говорили: "Вы что-нибудь сломаете!"
Мы собрали машины, и иногда они работали, а некоторые были собраны не правильно и не работали. В конце концов я принялся работать над одним из умножителей и увидел внутри какую-то согнутую часть, однако я боялся ее выпрямить, потому что она могла бы отломиться - а ведь нам все время твердили, что мы запорем что-нибудь так, что не исправишь. Когда, наконец, приехал мастер-ремонтник, он собрал еще неготовые машины, и все пошло как по маслу. Однако и у него возникли трудности с той машиной, с которой я не справился. После трех дней работы он все еще возился с этой последней машиной.
Я спустился вниз и сказал:
- Я заметил, что здесь согнуто.
Он обрадовался:
- А, ну, конечно, все из-за этого изгиба.
А что касается мистера Френкеля, который затеял всю эту деятельность, то он начал страдать от компьютерной болезни - о ней сегодня знает каждый, кто работал с компьютерами. Это очень серьезная болезнь, и работать при ней невозможно. Беда с компьютерами состоит в том, что ты с ними играешь. Они так прекрасны, столько возможностей - если четное число, делаешь это, если нечетное, делаешь то, и очень скоро на одной-единственной машине можно делать все более и более изощренные вещи, если только ты достаточно умен.
Через некоторое время вся система развалилась. Френкель не обращал на нее никакого внимания, он больше никем не руководил. Система действовала очень-очень медленно, а он в это время сидел в комнате, прикидывая, как бы заставить один из табуляторов автоматически печатать арктангенс x. Потом табулятор включался, печатал колонки, потом - бац, бац, бац - вычислял арктангенс автоматически путем интегрирования и составлял всю таблицу за одну операцию.
Абсолютно бесполезное занятие. Ведь у нас уже были таблицы арктангенсов. Но если вы когда-нибудь работали с компьютерами, вы понимаете, что это за болезнь - восхищение от возможности увидеть, как много можно сделать. Френкель подцепил эту болезнь впервые, бедный парень; бедный парень, который изобрел всю эту штуку.
Меня попросили прервать работу, которой я занимался в своей группе, спуститься вниз и принять группу, работавшую на машинах IBM. Я постарался избежать болезни. И хотя вычислители сделали только три задачи за девять месяцев, у меня была очень хорошая группа.
Истинная беда состояла в том, что никто никогда этим ребятам ничего не рассказывал. Военные выбрали их со всей страны для команды, которую назвали "Специальным инженерным подразделением" - в ней были умные парни, закончившие школу и обладавшие инженерными способностями. Потом их послали в Лос-Аламос и разместили в казармах. И им ничего не сказали.
Затем ребята пришли на работу, и единственное, что они должны были делать, это работать на машинах IBM - пробивать дырки в карточках, манипулировать с числами, которых они не понимали. Никто не объяснил им, для чего все это нужно. Дело двигалось очень медленно. Я сказал, что первое, что необходимо предпринять, это дать людям понять, чем все-таки они занимаются. Тогда Оппенгеймер переговорил в отделе безопасности и получил специальное разрешение, и в результате я смог прочесть техническому персоналу хорошую лекцию о том, что именно мы делаем. Они все пришли в страшное возбуждение: "Мы тоже сражаемся на войне, мы понимаем, что это такое!" Теперь они знали, что означают числа. Если выходило, что давление становится выше, значит, высвобождается больше энергии и т.д., и т.п. Они знали, что делают.
Полное перевоплощение! Они начали изобретать способы, как бы сделать процесс получше. Они усовершенствовали схему. Они работали по ночам. Ночью ими не нужно было руководить, им не требовалось ничего. Они все понимали, они изобрели несколько программ, которые мы потом использовали.
Да, моих парней действительно прорвало, и все, что для этого требовалось, - это рассказать им, чем мы все занимаемся. В итоге, если раньше требовалось девять месяцев на три задачи, то теперь мы пропустили девять задач за три месяца, что почти в десять раз быстрее.
Одна из тайных уловок при решении задач была вот какой. Задачи содержались в колоде карточек, которые должны были пройти по циклу. Сначала сложи, потом умножь - так это и шло по циклу машин в комнате, медленно двигалось по кругу. Мы придумали параллельно, но в другой фазе, запустить по циклу набор карточек другого цвета. Мы делали две или три задачи одновременно!
Однако это втянуло нас в другую проблему. В конце войны, например, прямо перед испытаниями в Альбукерки встал вопрос: сколько высвободится энергии? Мы вычислили энерговыделение для различных проектов, но не для того конкретного проекта, который в конце концов был использован. Тогда к нам спустился Боб Кристи и сказал: "Мы бы хотели иметь результаты действия этой штуки через месяц, - или спустя другое, тоже очень короткое время, вроде трех недель".
Я заявил: "Это невозможно".
Он сказал:
- Смотри, вы выдаете почти две задачи в месяц. На каждую уходит только две или три недели.
Я возразил: "Я знаю. Фактически на каждую задачу уходит гораздо больше, но мы делаем их параллельно. Пока они движутся по циклу, уходит много времени, и нет способа заставить их двигаться быстрее".
Он вышел, а я начал думать. Есть ли способ заставить задачу двигаться быстрее?
Что если бы мы не делали ничего другого на машинах, так что нам ничто не мешало бы? Я бросил вызов нашим молодцам, написав на доске: МОЖЕМ ЛИ МЫ ЭТО СДЕЛАТЬ? Они начали вопить: "Да, мы будем работать в две смены, будем работать сверхурочно!" - и всю подобную чепуху. Мы попробуем, мы попробуем!
Итак, было решено: все другие задачи - вон! Только одна задача, и полная концентрация на ней. Они начали работать.

...

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



Тэги: Dec2007 Разное Полезные сведенья

Темы, имеющие некоторое отношение к этой (русскоязычный поиск в mysql все же очень не совершенен):
Ололо, набашорк! May 30, 2011
Мы ничего не делали последние десять лет. October 2, 2009
Мнение о тенденциях развития операционных систем March 9, 2008
Увидишь надпись "свинья" на утке - не верь глазам своим! March 21, 2008
Селедка под шубой July 4, 2013

Комментировать:
пользователь: пароль:
регистрироваться  Залогинится под OpenID


Архив:

Jun2023   May2023   Apr2023   Mar2023   Feb2023   Jan2023   Dec2022   Nov2022   Oct2022   Sep2022   Aug2022   Jul2022   Jun2022   May2022   Apr2022   Mar2022   Feb2022   Jan2022   Dec2021   Nov2021   Oct2021   Sep2021   Aug2021   Jul2021   Jun2021   May2021   Apr2021   Mar2021   Feb2021   Jan2021   Dec2020   Nov2020   Oct2020   Sep2020   Aug2020   Jul2020   Jun2020   May2020   Apr2020   Mar2020   Feb2020   Jan2020   Dec2019   Nov2019   Oct2019   Sep2019   Aug2019   Jul2019   Jun2019   May2019   Apr2019   Mar2019   Feb2019   Jan2019   Dec2018   Nov2018   Oct2018   Sep2018   Aug2018   Jul2018   Jun2018   May2018   Apr2018   Mar2018   Feb2018   Jan2018   Dec2017   Nov2017   Oct2017   Sep2017   Aug2017   Jul2017   Jun2017   May2017   Apr2017   Mar2017   Feb2017   Jan2017   Dec2016   Nov2016   Oct2016   Sep2016   Aug2016   Jul2016   Jun2016   May2016   Apr2016   Mar2016   Feb2016   Jan2016   Dec2015   Nov2015   Oct2015   Sep2015   Aug2015   Jul2015   Jun2015   May2015   Apr2015   Mar2015   Feb2015   Jan2015   Dec2014   Nov2014   Oct2014   Sep2014   Aug2014   Jul2014   Jun2014   May2014   Apr2014   Mar2014   Feb2014   Jan2014   Dec2013   Nov2013   Oct2013   Sep2013   Aug2013   Jul2013   Jun2013   May2013   Apr2013   Mar2013   Feb2013   Jan2013   Dec2012   Nov2012   Oct2012   Sep2012   Aug2012   Jul2012   Jun2012   May2012   Apr2012   Mar2012   Feb2012   Jan2012   Dec2011   Nov2011   Oct2011   Sep2011   Aug2011   Jul2011   Jun2011   May2011   Apr2011   Mar2011   Feb2011   Jan2011   Dec2010   Nov2010   Oct2010   Sep2010   Aug2010   Jul2010   Jun2010   May2010   Apr2010   Mar2010   Feb2010   Jan2010   Dec2009   Nov2009   Oct2009   Sep2009   Aug2009   Jul2009   Jun2009   May2009   Apr2009   Mar2009   Feb2009   Jan2009   Dec2008   Nov2008   Oct2008   Sep2008   Aug2008   Jul2008   Jun2008   May2008   Apr2008   Mar2008   Feb2008   Jan2008   Dec2007   Nov2007   Oct2007   Sep2007   Aug2007   Jul2007   Jun2007   May2007   Apr2007   Mar2007   Feb2007   Jan2007   Dec2006   Nov2006   Oct2006   Sep2006   Aug2006   Jul2006   Jun2006   May2006