Найти тему
Валентин Иванов

Охота к перемене мест. Часть 38

Мой рабочий офис в Фермилабе
Мой рабочий офис в Фермилабе

Следующим после Лебедева на меня выходит Николай Соляк. Это плотный невысокого роста мужичок с бегающими глазами. Взгляд у него такой, как будто он чего–то боится. В проекте ILC Николай, как руководитель расчетной группы, взял на себя довольно ответственную работу – дизайн ускорительного тракта, который должен также включать электромагнитные расчёты каплеров – систем ввода высокочастотной мощности. Нанимая для своих работ сотрудников другого отдела, он переводит со своей темы деньги на зарплату этим сотрудникам. Он уже давно загрузил Пола Лебруна задачей о допусках на параметры управляющих элементов ускорителя, но его работой не очень доволен. Проблема в том, что Пол сам не способен написать достаточно сложную программу моделирования динамики частиц в реальном ускорителе, содержащем десятки тысяч управляющих параметров, поэтому он взял какую-то программу на С++, сделанную в ЦЕРНе и пытается приспособить её к решению своей задачи. Для этого нужно сначала разобраться в чужой программе, а это требует много времени. Меня Соляк попросил написать свою программу трассировки пучка через набор квадрупольных линз и дипольных корректирующих магнитов со случайными смещениями под воздействием вибраций почвы и промышленных шумов. Через пару недель я уже показывал оптику пучка, рассчитанную по моей программе, написанной на Фортране. Убедившись в том, что я способен самостоятельно написать сложную программу с нуля, он даёт новое задание. Оказывается в СЛАКе некоей Линдой Хендриксон и ещё пятью сотрудниками в среде MATLAB по методике Андрея Серого была написана программа коррекции динамики пучка, которая была опробована в проекте NLC. Эта программа оказалась намного более продвинутой, чем ранее написанный на Фортране Андреем Серым код LIAR. Теперь моя задача состояла в том, чтобы скачать со СЛАКовского сайта программу Линды, изучить её и провести массовые расчёты для нашего ускорителя при варьровании всех мыслимых параметров задачи: уровня вибраций, количества и схемы расстановки корректирующих магнитов и датчиков положения пучка в канале ускорителя. В программе управления использовался алгоритм фильтра Калмана, который имел также свои настроечные параметры. Но сначала мне предстояло освоить систему MATLAB, которая имеет свой внутренний язык программирования, изучить структуры данных и процедуры графического вывода. Это я освоил за неделю. Когда же я стал погружаться в программу Линды, первое, что обескураживало – полное отсутствие документации и довольно большой объём программы, более 60 тысяч строк кода без каких-либо следов комментариев.

Я спросил у Николая, нельзя ли слетать в СЛАК, чтобы поговорить с разработчиками программы? Он ответил, что Линда давно ушла из СЛАКА, организовала свой бизнес по уборке квартир и а настоящий момент недоступна. Остальные сотрудники работают в ЦЕРНе и в других фирмах. Я пытался выйти на них, но выяснил, что каждый из них делал только какой-либо частный блок, делали это давно и теперь уже сами не помнят, как этим пользоваться. У Николая в группе был также аспирант из Индии по имени Ранджан. Он несколько лет тому назад контактировал с Линдой, но сейчас занимается другими делами. Поговорив с Ранджаном, я понял, что на данный момент знаю о программе больше чем он. Итак, помощи ждать неоткуда. Я стал изучать программу систематически, для начала нарисовав блок-схемы основных модулей, чтобы яснее понять их взаимодействие.

Первое, что я понял – программа представляет глубоко авторский продукт, написана не для пользования другими людьми, потому что значительная часть исходных данных не вводится из файла, а задается вручную операторами присваивания, разбросанными густо по самым различным модулям программы. На мой взгляд, за такой стиль программирования нужно наказывать вплоть до увольнения. Но это было ещё далеко не всё. Программа не компилировалась, выдавала пару сотен ошибок самого различного свойства. Вывод из этого только один: этой программой пользоваться нельзя. А Николай забегал в мой офис каждый день и спрашивал, как идут дела. Когда я сказал ему, что это не программа, а просто мусор какой-то, моё заключение ему сильно не понравилось, и он заявил:

– Классный программист тот, кто может разобраться в любой программе.

Тогда я сказал, что у меня остаётся единственный выход – на основе этой программы написать другую, которая будет работать и выдавать правильные результаты, но это займет не менее месяца.

– У нас нет столько времени. Результаты нужны практически завтра. В крайнем случае, на следующей неделе.

Когда имеешь дело с дураком, спорить и доказывать что-либо бесполезно, и я развёл руками. Теперь я начал догадываться, что сам он потратил немало времени, чтобы разобраться в этой программе, но интеллекта ему явно не хватило, если он не смог даже преодолеть ошибки компиляции. Я продолжал работать систематически. По средам у нас были семинары, на которых участники группы докладывали, что сделано за неделю. На каждом семинаре Соляк бросал ехидные замечания, что Валентин, видимо, чем-то не тем занимается или, вообще, непригоден к такой работе. Мне это надоело, и я поговорил со Спендзурисом о том, что Соляк требует невозможного – чтобы программа, на которую шесть человек в СЛАКе потратили пять лет. а затем положили на сайт неработающий вариант, заработала у меня через две недели. На следующий семинар Спендзурис пришел с начальником отдела. Я показал объём программы, рассказал, что мне пришлось переписать полностью как ввод данных, так и графический вывод, поскольку полученная версия программы просто не компилировалась и не имела никакой документации. Начальник отдела сказала дипломатично, что если хочешь получить серьёзный результат, нужно сделать инвестмент, то есть затратить время и интеллектуальные усилия. На что Соляк пробурчал:

– Валентин так долго возится с этой программой, наверное, потому что он не физик вовсе.

Когда после семинара я заявил Спендзурису, что не хотел бы вообще работать с Соляком, он попросил меня:

– Валентин, ситуация такова, что деньги у Соляка. Ты потерпи, не конфликтуй с ним.

– Хорошо, – пожал плечами я.

Прошло ещё две недели, и у меня всё заработало. Пошли первые результаты. Теперь настала воистину горячая пора. Ранджан пытался заставить работать эту программу на параллельном кластере. Проблема была в том, что у всех нас была интерпретирующая версия Матлаба, а для кластера в таком случае нужна лицензия на каждый процессор, где запускается эта программа. Компилятор же стоит намного дороже интерпретатора, поэтому Ранлдан должен был откомпилировать её и запускать на сотне процессоров. Это у него пока не получалось. Чтобы не ждать, я запускал по четыре версии задачи на своём компьютере, на двух компьютерах технического отдела и на двух ноутбуках, принесённых из дома. Счёт одного варианта продолжался около пяти часов, после чего я должен был оббежать все компьютеры, расположенные в разных зданиях, запустить новые серии задач и успеть обработать полученные результаты. По выходным я также дважды в день прибегал для этого в Фермилабу. Через неделю такой работы у меня буквально дым шёл из ушей, а цветные графики результатов стали сниться по ночам. При этом часть задач сбивалась или зависала, нужно было их перезапускать. Если бы я не вёл аккуратно учёт всех просчитанных вариантов, можно было бы запутаться уже на второй день. Зато мы подготовили массу нового материала для десятка последующих конференций. На некоторые с докладами ездил Соляк, в основном, в Европу и Японию, на американские конференции ездили я и Ранджан. За весь этот титанический труд Соляк ни разу даже не сказал мне спасибо, а только заставлял считать всё новые и новые варианты.

Однажды, забирая распечатку статьи из общего принтера, я обратил внимание на заголовок статьи, распечатанной кем-то другим. Статья была из весьма престижного журнала «Физикал Ревью» и называлась она «Об использовании функции Грина при численном моделировании фотоинжектора». Расспросив коллег, я узнал, что распечатывал её Спендзурис, и попросил у него разрешения сделать копию. Когда я прочитал статью, просто обалдел. Впечатление было такое, что статья написана полуграмотным студентом, хотя в авторах значился хорошо мне известный Роб Райн из Беркли и какой-то китаец, видимо, его аспирант, который эту статью и писал. Поразили меня два момента. Во-первых, авторы вывели формулу аналитического интегрирования по объему прямоугольных ячеек, на которые разбит объём пучка. Эта формула была единственной в статье и, даже на первый взгляд, имела две странности: она была просто неправильной, поскольку отдельные её члены имели разную размерность; кроме того, она была записана почему-то в комплексной форме, хотя даже студенту известно, что электростатический потенциал является вещественной функцией. Кроме того, я хорошо помнил, что когда в бытность мою в СЛАКе Роб рассказал на телеконференции, что придумал новый метод учёта объемного заряда пучка в исключительно высокой эффективностью, я поправил его, сказав, что подобную работу проделал семнадцать лет тому назад и опубликовал в трудах Института математики, которые переводятся на английский язык и должны быть в американских научных библиотеках. После моих слов Роб сильно занервничал и попросил меня срочно послать ему эту статью по факсу. После этого он еще два раза звонил мне, чтобы спросить, послал ли я ему эту статью. Теперь же я в списке литературы нахожу очень оригинальную ссылку на меня в виде «частное сообщение», из которого читателю никак не понять, что именно мною сделано, и была ли журнальная публикация.

Вторая особенность, удивившая меня еще больше, заключалась в том, что постановка задачи была неправильной во всех её пунктах, а приведенныё в качестве численных результатов два графика непонятно какое отношение могли иметь к расчетам фотоинжектора. В статье была ссылка на нашу с Эриком Колби публикацию по моделированию фотоинжектора, опубликованная в трудах международной конференции, но авторы, скорее всего, её не читали, а если читали, то не поняли главного вывода о том, что такие приборы нельзя считать программой PARMELA, поскольку она даёт неверные результаты. В статье Роба Райна оптика пучка считалась именно с помощью PARMELA. Главным же было, что ошибки постановки задачи заключались совсем не в этом. В нашей статье подчёркивалось, что проблема формирования сгустков с исключительно малым эмиттансом требует прецизионных вычислений как поля, так и оптики пучка, поэтому далеко не любые методы и программы подходят для решения этих задач. Мы в расчетах аккуратно представляли границу прибора сложной формы, а Роб Райн заменил её сечение прямоугольником, на границах которого поставил условия периодичности. Такая постановка достаточно характерна для задач физики плазмы, где плазменное облако распространяется далеко от границ прибора, поэтому форма границ не имеет особого значения, поскольку там не требуется высокая точность, и погрешность расчётов в пятьдесят процентов считается допустимой. Но и эта нелепость была не последняя. Собственно говоря, сгустки частиц, формируемые фотоинжектором имели пикосекундную длительность, и на расстоянии в десять сантиметров они разгонялись до почти световой скорости, поэтому электростатическое приближение, использованное Райном было неприменимо, в принципе. Оно используется только для ультрарелятивистского движения, когда частицы на всём протяжении летят с околосветовой скоростью.

Все эти соображения я изложил Спендзурису и сказал, что хочу направить свои критические замечания в журнал. Он посоветовал мне не поднимать шума, а написать всё сначала Робу Райну, с которым Спендзурису не хотелось портить отношений, как с коллаборатором по проекту вычислений на суперкомпьютерах. Я написал такое письмо, подождал месяц. Никакого ответа не было. Тогда я снова поговорил с начальником, и он дал мне добро на отправление замечаний в журнал. Я постарался очень чётко и кратко изложить все свои аргументы, добавив, что в моей давней публикации, кроме прочего, дана методика более высокого порядка аппроксимации плотности заряда, что является принципиально важным для расчёта оптики на краю пучка, поскольку использованная Райном кусочно-постоянная аппроксимация будет давать очень большую погрешность вычислений, так как заряженный равномерно кубик имеет сингулярности для компонент поля вблизи его рёбер и вершин, чего нет уже для линейной аппроксимации использованной мною.

С первого захода я получил высокомерный ответ редактора о том, что если я желаю видеть свои замечания опубликованными, мне следует использовать более правильный английский. Впрочем, редактор отправил мои замечания рецензентам. Я хорошо понимал, что редакция понадеялась на компетентность рецензентов статьи Райна и теперь будет «блюсти честь мундира», поскольку признаваться, что пропустили в столь престижный журнал полную лажу – неприятно каждому. Обычная практика журналов состоит в том, что авторы к статье прилагают список потенциальных рецензентов, и в этом списке чаще всего фигурируют их друзья. Главное для меня было в другом: мои замечания отправлены редакцией авторам статьи, и теперь им отмолчаться будет невозможно, как это они сделали, когда я направил письмо им непосредственно. Прошла пара месяцев, я получил ответы трёх рецензентов. Первый был полностью согласен с моими замечаниями, второй – согласен частично, а третий заявил, что недостатки есть у каждой статьи, можно оставить и так, но авторов следует заставить сделать правильную ссылку на оригинальные работы Иванова. Сам Роб отвечать редакции не стал, заставив писать ответ своего китайца. Тот написал следующее: «Во-первых, ошибка в формуле была позднее исправлена, о чём написано в замечании, опубликованном несколько позднее. Во-вторых, исследование точности расчетов выходит за рамки вопросов. рассмотренных в статье. В-третьих, никакой сингулярности у них в расчётах не наблюдалось, поскольку они не вычисляли поле строго в углах и рёбрах ячеек сетки, а использовали аппроксимацию со сглаживанием».

На этот ответ я написал следующее письмо: «Автор проявляет полную математическую безграмотность, ибо даже не представляет, что если его программа не делит на нуль, это вовсе не означает отсутствия сингулярности, поскольку сингулярность в математике понимается как поведение функции и её производных в окрестности некоторых подмножеств, а вовсе не как обращение функции в бесконечность в некоторых точках. По этой причине, игнорирование сингулярности дает источник значительных погрешностей при расчете поля». На это моё письмо Редактор сообщил, что им назначены ещё два дополнительных рецензента. Проходит еще три месяца, и я получаю ответы этих новых рецензентов. Совершенно очевидно, что один из них является другом Роба Райна, поскольку он отказывается от анализа содержания статьи, ограничившись замечанием, что допущенные авторами погрешности статьи являются несущественными. Зато другой рецензент полностью согласился с моим замечанием относительно порядка аппроксимации зарядов на краю пучка и предложил мне написать свою статью с описанием более эффективной методики расчётов.

Я рассказал об истории этой переписки, которая тянется уже целый год, Володе Шильцеву, он сказал:

– А чего тянуть? Вон через пару месяцев во Флориде будет международная конференция по методам оптимизации. Подавай доклад и тут же пиши статью. Труды этой конференции публикуются очень быстро. Это займёт намного меньще времени, чем вся эта тягомотина с «Физикал Ревью».

Я так и сделал, но подал два доклада, один по функциям Грина, а другой по разработанной мною программе коррекции воздействия вибраций на параметры пучка в ускорителях, которую я назвал LFSC (Linac Feedback Simulation Code). Таким образом я утвердил своё авторство в этой программе, отстроившись от Соляка, который меня за физика не держит. Уже через месяц после конференции держал в руках свежеотпечатанный номер журнала «Модерн Физикс» с моими статьями. Тогда я написал Редактору «Физикал Ревью» очень вежливое письмо, в котором сообщил, что моя попытка написать краткие замечания к статье заняла промежуток времени более года, поэтому я прихожу в ужас от его предложения дать свою статью в журнал, поскольку полагаю, что на это уйдёт, как минимум, полжизни. Поскольку я уже опубликовал свою статью в другом журнале, я могу любезно предоставить ему копию этой статьи. Ответа я не получил, зато хорошо уяснил для себя: «Бюрократические проволочки и издательсткая мафия есть не только в бывшем СССР, но и во всех редакциях мира».

Лёня попал в Центр ускорительной физики Володи Шильцева в группу, которую возглавлял Юра Алексахин, приехавший из Дубны. В этой же группе работал инженер Геннадий Фёдорович Кузнецов, бывший ИЯФовец. Геннадий Фёдорович был большим специалистом по конструированию электронных пушек, а у Шильцева родилась идея уменьшения эмиттанса протонных сгустков в канале ускорителя путем простреливания их электронным пучком, который компенсирует пространственный заряд сгустка. Кузнецов взялся проектировать пушку с двумя прикатодными сетками, одна из которых служит для вытягивания максимального тока пучка с катода, а другая для быстрого запирания пучка. В Фермилабе была программа SAM для расчёта пушек, сделанная в ИЯФе Мишей Тиуновым и Славой Яковлевым на основе моей программы POISSON-2, но она не могла считать столь сложные приборы, поэтому данная задача была поручена мне. Я провёл серию расчетов, по которым затем Геннадий Фёдорович сделал пушку. Работа эта сдружила нас, и последующие расчёты пушек более простых конфигураций уже проводил Лёня по программе SAM.

Летом ко мне поездом приехали жена с Анжелой на время отпуска. Примерно с неделю они потратили на осмотр достопримечательностей и магазинов Чикаго и окрестностей, посетили семью Комаровских, а потом решили все вместе мотануть к Ленке Миронченко, которая проживала в Мэдисоне, штат Висконсин. Ехать туда сравнительно недолго, около трёх часов. Когда-то Ленка работала в нашей лаборатории, как и Комаровские. Мне она запомнилась симпатичной девицей, у которой, наверняка, были какие-то способности, но к работе эти способности не имели никакого отношения. Впрочем, я уже упоминал, что в лаборатории у нас две трети сотрудников были женщинами и, на мой взгляд, если всех их уволить, ущерба работе не будет никакого, но атмосфера радости человеческого общения сменится сухой казёнщиной официальных служебных отношений. А поскольку другого типа сотрудников в нашей стране по ряду причин найти невозможно, то терпели этих, которые на работе примеряли колготки, сапожки, в рабочее время стояли в очередях, вязали, часами трепались и разгадывали кроссворды. Ленка вышла замуж за Женю – «недотёпу и размазню», как она его называла, и родила ребенка. Когда над Женей нависла перспектива служить в армии, она родила второго. Это сработало на какое-то время, но потом она развелась и вышла замуж за биолога Сашу, которого вскоре пригласили на работу по контракту в Америку. Так они там и остались.

Дом у них оказался просторным, для всех нас нашлось место. Качество его, конечно, уступало нашему калифорнийскому, но нам, привыкшим жить в России, где на зиму нужно было затыкать ватой все щели в окнах и дверях на балкон, чтобы тепло не выдувало, – нам такие дома представлялись чуть ли не раем. Днём мы ходили по городу, осматривая достопримечательности, вечером пошли на пирс. Сидели, погрузив ноги в тёплые волны, и слушали прелестную танцевальную музыку. На следующий вечер пошли в гости в ленкиным друзьям на день рождения. Там собралась немалая компания, пили вино, танцевали, потом появилась гитара, пели песни, я тоже спел свои из тех немногих, что помнил наизусть. Ленка в этот вечер надралась до остекленения и с глазами портовой шлюхи пристраивалась на колени к разным мужчинам. Саша, видимо, хорошо уже знавший эту сторону её натуры, в комнату не заходил, а сидел в кухне и попивал кофе, чашку за чашкой.

Ленка рассказала, что Саша перешёл из университета в какую-то частную фармацевтическую фирму, работает по грантам. Она по приезду в Америку изучила язык С++ и работала программисткой в частной компании. Когда потом потеряла работу, а они уже оформили дом в кредит, испытала шок, поскольку у Саши зарплата была почти в два раза меньше, и была реальная угроза потерять дом. В этот период глубокой депрессии она отводила душу тем, что писала картины – натюрморты и котов. Потом судьба улыюнулась, и в настоящее время она работает ведущим программистом в частной фирме, которая выпускает спектрофотометры. Фактически она и вытянула на своих женских плечах и дом, и двоих детей. Старший работает где-то программистом, живёт отдельно, заработки случайные и нестабильные. Младший живёт с ними, учится в университете. С ним была большая проблема. Там, в России он ходил в младшую садовскую группу. Ребёнком был неспокойным, капризничал, кричал. Воспитательница бросила ему на лицо подушку, чтобы остановить крик, после чего он испытал шок, стал заикаться и страдал отставанием в развитии. В Америке он сначала ходил в спецшколу для отстающих, потом выправился и даже смог поступить в университет. Увлёкся большим теннисом, и даже какое-то время работал тренером, но потом университет перевесил эти спортивные планы.

Признаться, я был сильно удивлён тем, как ни к чему не пригодная на работе в России Ленка превратилась в Америке в главную кормилицу для семьи. Самое интересное, что из этого факта при поверхностном анализе можно было сделать два противоположных вывода. Первый: в России не были никаких предпосылок для развития личности и младшему грозила в лучшем случае участь дебила, и только в благословенной Америке таланты её самой раскрылись во всей полноте – на работе её считают очень ценным специалистом, а сын учится в университете. Второй вывод таков: если бы её в Росии выперли с работы за полную профессиональную непригодность, все её таланты и неукротимое желание поставить детей на ноги раскрылись бы и там. Но в России можно было годами числитьсся на работе, ровным счётом ничего не делать, и при этом быть совершенно спокойным, что никто тебя не выгонит. А теперь их этих двух выводов нужно выбрать один. Понятно, какой именно был ею выбран.

На следующий вечер я устроил свой концерт в ленкином доме. Днём я прошёлся основательно по репертуару, пока дамы гуляли по магазинам. В целом, концерт понравился всем, только Саша неоднократно просил некоторые особенно экспрессивные песни петь потише. Я заметил ему, что есть песни романсового характера, а есть и такие, что нужно именно орать, и тому много примеров, скажем, у Высоцкого «Охота на волков», которого ценили именно за неповторимый темперамент. В конце Лена сказала, что Саша обычно совершенно равнодушен к авторской песне, а тут впервые в жизни не только прослушал все до конца, но и высоко их оценил.

Перед самым нашим отправлением мы ездили в зоопарк. Это было где-то на окраине города, и на обратном пути у нас случился весьма напряжённый разговор. Люба и Ленка наперебой расхваливали благословенную Америку и во все закорки ругали никчемную Россию. В какой-то момент мне это надоело, и я встрял в этот разговор, сказав, что в каждой стране можно найти положительные и отрицательные стороны, и ничем эта ваша Америка не лучше других, а судя по тому, как нагло она ведёт себя в отношении других стран, так она много хуже их. Что тут началось! Обе бабёнки вцепились в меня, как стервятники.

– Докажи! – вопили они.

– А чё тут доказывать? Возьми хотя бы американскую медицину, которая ничем мне не хотела помочь, когда я загибался от отравления. Если бы не русский доктор Басин, каюк мне пришёл бы еще семь лет назад, и некому было бы тогда спорить с вами. Да я ни от одного коренного американца слова доброго не слышал об этой медицине – безумно дорогой и не нацеленной на излечение пациента.

– Да ты-ы!.. Наши дети сдохли бы давно, если б не американская медицина, – вопили они, потрясая кулаками перед моим лицом.

– Или хотя бы взять американскую судебную систему, – продолжал я. – Пусть у нас были бандитские девяностые, но ведь когда меня ограбили, ни один советский милиционер не угрожал мне оружием, а тут... Я пришёл в суд с иском на страховую компанию, которая больше года просто игнорировала все мои письма и телефонные звонки. Я не преступал закон, никого не ограбил и не убил, но именно американский полицейский нагло прессовал меня, положив руку на кольт, а за что – я до сих пор не могу понять. Разве за то, что я русский, а они все, как хорошо известно в Америке, мафиози и бандиты, по-определенению.

Полчаса две хрупкие дамы рвали меня на части, и положить предел этому я смог только сказав:

– Ну, хорошо, прекрасные женщины, я ведь не утверждал, что Америка совсем говённая страна. Я просто хотел показать, что везде есть и свои достоинства, и свои недостатки, ибо природа человека такова. Вот вы утверждаете, что лучше Америки ничего на свете нет. Добро, считайте так, не буду спорить, поскольку я уважаю ваше мнение. Ответьте мне только на один вопрос: «Почему же вы в таком случае не желаете уважать моё мнение?». Или я не имею права на такое мнение?

– Зачем же ты тогда приехал сюда? – резонно воскликнули рассерженные Эринии.

– Каюсь. Было любопытство посмотреть, так ли она хороша, как про неё говорят. Посмотрел, сделал выводы. Главный вывод такой: дорабатываю до пенсии и возвращаюсь в Россию. Точка. Потому что это моя Родина, а Америка – чужая мне страна. Пусть в ней сытно, но это не для меня.