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