Заслуженный участник |
|
30/01/06 72407
|
Напомнило: Вы, конечно, шутите, мистер Фейнман? Глава "Лос-Аламос снизу"
Цитата: Другая проблема, над которой я работал, была вот какой. Нам приходилось делать множество вычислений, и мы делали их на счетных машинах Маршана. Между прочим, это интересно - просто чтобы дать представление, на что был похож Лос-Аламос. У нас были "компьютеры" Маршана - ручные арифмометры, калькуляторы с числами. Нажимаешь на них, и они умножают, делят, прибавляют и т.д., но не так легко, как это делается сейчас. ... Ну, в общем, мы все решили, что самая главная задача - понять точно, что именно происходит во время взрыва бомбы, чтобы можно было точно указать, сколько выделяется энергии и т.д., - требовала намного больше выкладок, чем мы могли делать. Но один умный человек по имени Стэнли Френкель сообразил, что вычисления, возможно, удастся сделать на машинах IBM. Компания IBM выпускала машины для бизнеса - устройства для сложения, называемые табуляторами, и машины для умножения - мультипликаторы, в которые можно было закладывать карточки: машина считывала два числа с карточки и умножала их. Были также устройства, которые сличали числа, сортировали их и т.д. И вот Френкель придумал замечательную программу. Если бы мы собрали довольно много таких машин в одной комнате, то мы смогли бы взять карточки и запустить их по циклу. Всякий, кто сейчас делает численные вычисления, знает точно, о чем я говорю, но тогда это было нечто новое - поточная линия из вычислительных машинок. Мы делали подобные вещи на машинках для сложения. Обычно продвигаешься шаг за шагом, проводя все выкладки самостоятельно. Но здесь все не так - сначала обращаешься к "слагателю", затем к "умножителю", опять к "слагателю" и т.д. Одним словом, Френкель спроектировал такую систему и заказал калькуляторы в компании IBM, поскольку мы поняли, что это хороший способ решения наших проблем. ...Теперь мы всегда были в спешке. Все, что мы делали, мы старались делать как можно быстрее. В данном конкретном случае мы разработали все численные операции - предполагалось, что их будут делать машины - множь это, потом сделай это, потом вычти это. Мы разработали программу, но у нас пока не было машин для реальной проверки. Поэтому мы посадили в комнату девушек и снабдили каждую калькулятором Маршана: одна была "умножителем", другая - "слагателем". Еще одна возводила в куб: все, что она делала, - возводила в третью степень число на карточке и отправляла ее следующей девушке. Так мы прошли по всему циклу, пока не "вылизали" его, не избавились от всех скрытых ошибок. Оказалось, что скорость, с которой мы теперь были в состоянии вычислять, стала чертовски большой - намного больше, чем при другом способе, когда каждый человек все шаги проделывал сам. По этой системе мы получили скорость вычислений, совпадающую с предсказываемой скоростью для машины IBM. Единственная разница состояла в том, что машины IBM не уставали и могли работать в три смены. А вот девушки через некоторое время уставали. В общем, во время этой репетиции мы все отладили, и, наконец, прибыли машины... и все пошло как по маслу. Через некоторое время вся система развалилась... Меня попросили прервать работу, которой я занимался в своей группе, спуститься вниз и принять группу, работавшую на машинах IBM. И хотя вычислители сделали только три задачи за девять месяцев, у меня была очень хорошая группа. Истинная беда состояла в том, что никто никогда этим ребятам ничего не рассказывал. Военные выбрали их со всей страны для команды, которую назвали "Специальным инженерным подразделением" - в ней были умные парни, закончившие школу и обладавшие инженерными способностями. Потом их послали в Лос-Аламос и разместили в казармах. И им ничего не сказали. Затем ребята пришли на работу, и единственное, что они должны были делать, это работать на машинах IBM - пробивать дырки в карточках, манипулировать с числами, которых они не понимали. Никто не объяснил им, для чего все это нужно. Дело двигалось очень медленно. Я сказал, что первое, что необходимо предпринять, это дать людям понять, чем все-таки они занимаются. Тогда Оппенгеймер переговорил в отделе безопасности и получил специальное разрешение, и в результате я смог прочесть техническому персоналу хорошую лекцию о том, что именно мы делаем. Они все пришли в страшное возбуждение: "Мы тоже сражаемся на войне, мы понимаем, что это такое!" Теперь они знали, что означают числа. Если выходило, что давление становится выше, значит, высвобождается больше энергии и т.д., и т.п. Они знали, что делают. Полное перевоплощение! Они начали изобретать способы, как бы сделать процесс получше. Они усовершенствовали схему. Они работали по ночам. Ночью ими не нужно было руководить, им не требовалось ничего. Они все понимали, они изобрели несколько программ, которые мы потом использовали. Да, моих парней действительно прорвало, и все, что для этого требовалось, - это рассказать им, чем мы все занимаемся. В итоге, если раньше требовалось девять месяцев на три задачи, то теперь мы пропустили девять задач за три месяца, что почти в десять раз быстрее. Одна из тайных уловок при решении задач была вот какой. Задачи содержались в колоде карточек, которые должны были пройти по циклу. Сначала сложи, потом умножь - так это и шло по циклу машин в комнате, медленно двигалось по кругу. Мы придумали параллельно, но в другой фазе, запустить по циклу набор карточек другого цвета. Мы делали две или три задачи одновременно! Однако это втянуло нас в другую проблему. В конце войны, например, прямо перед испытаниями в Альбукерки встал вопрос: сколько высвободится энергии? Мы вычислили энерговыделение для различных проектов, но не для того конкретного проекта, который в конце концов был использован. Тогда к нам спустился Боб Кристи и сказал: "Мы бы хотели иметь результаты действия этой штуки через месяц, - или спустя другое, тоже очень короткое время, вроде трех недель". Я заявил: "Это невозможно". Он сказал: - Смотри, вы выдаете почти две задачи в месяц. На каждую уходит только две или три недели. Я возразил: "Я знаю. Фактически на каждую задачу уходит гораздо больше, но мы делаем их параллельно. Пока они движутся по циклу, уходит много времени, и нет способа заставить их двигаться быстрее". Он вышел, а я начал думать. Есть ли способ заставить задачу двигаться быстрее? Что если бы мы не делали ничего другого на машинах, так что нам ничто не мешало бы? Я бросил вызов нашим молодцам, написав на доске: МОЖЕМ ЛИ МЫ ЭТО СДЕЛАТЬ? Они начали вопить: "Да, мы будем работать в две смены, будем работать сверхурочно!" - и всю подобную чепуху. Мы попробуем, мы попробуем! Итак, было решено: все другие задачи - вон! Только одна задача, и полная концентрация на ней. Они начали работать. ... Когда я вернулся к своей вычислительной работе, то обнаружил полную мешанину. Там были белые, карточки, голубые карточки, желтые карточки, и я начал возмущаться: "Ведь мы же договорились - не больше одной задачи, только одну задачу!" Мне сказали: "Уходи, уходи отсюда. Подожди, мы все тебе объясним". Мне пришлось ждать, а произошло вот что. Когда пропускали карточки, машина иногда делала ошибку, или на карточке набивали не правильное число. Обычно в таких случаях нам приходилось возвращаться назад и все начинать сначала. Но мои сотрудники заметили, что ошибка в каком-то пункте в данном цикле сказывается только на соседних числах, в следующем цикле - снова на близлежащих числах и т.д. Так это и идет по всей колоде карточек. Если у вас 50 карточек и ошибка допущена в карточке Э39, она сказывается на карточках Э37, 38 и 39. В следующем цикле - на карточках Э36, 37, 38, 39 и 40. А затем она распространяется как болезнь. Мои сотрудники обнаружили ошибку в том, что было уже сделано раньше, и у них возникла мысль - провести выкладки заново для небольшой колоды из десяти карточек вокруг ошибки. А поскольку десять карточек пройдут через машину быстрее, чем колода из пятидесяти карточек, они пропустят маленькую колоду, продолжая оперировать с пятьюдесятью карточками, в которых, как чума, распространяется ошибка. Но поскольку десять карточек будут готовы быстрее, они изолируют ошибку и исправят ее. Очень умно. Вот как эти парни работали, чтобы увеличить скорость. Другого способа не было. Если бы им пришлось остановиться для исправления ошибки, мы бы потеряли время, а взять его нам было неоткуда. Вот так они работали. Конечно, вы уже догадались, что случилось, пока они так действовали. Они обнаружили ошибку в голубой колоде. И тогда они добавили желтую колоду с несколько меньшим числом карточек - ее можно было прокрутить быстрее, чем голубую колоду. И вот как раз в тот момент, когда они были на грани умопомрачения, поскольку после исправления голубой колоды им еще придется править белую, приходит босс. - Не мешайте, - говорят они. Я оставляю их одних, и все получается. Мы решили задачу вовремя. Вот так это было.
|
|