40 лет анализа больших объёмов данных в Физике Высоких Энергий: интервью с Рене Браном

в 9:37, , рубрики: c++, open source, root, большой адронный коллайдер, визуализация данных, интервью, физика, ЦЕРН

За 40 лет своей карьеры в ЦЕРН (Международная Лаборатория Ядерных Исследований расположенная в Женеве) Рене Бран (Rene Brun) разработал ряд программных пакетов, которые стали широко использоваться в Физике Высоких Энергий. За этот фундаментальный вклад он был недавно награжден специальным призом Отделения Физики частиц Высоких Энергий Общества Европейской Физики (EPS). Мы поговорили с ним о ключевых событиях этой истории.

image

Трудно представить, что один и тот же человек может создать столько наиболее важных и широко используемых пакетов программного обеспечения, разработанных в ЦЕРНе и в области Физике Высоких Энергий: HBOOK, PAW, ROOT и GEANT. Этим страстным и дальновидным человеком является Рене Бран, ныне почетный член ЦЕРН, который недавно был награжден специальным призом Отделения Физики частиц Высоких Энергий EPS (Общество Европейской Физики) «за выдающийся и оригинальный вклад в программные инструменты для обработки данных, моделирования детекторов и анализа, которые помогали создавать эксперименты в физике частиц и высоких энергий в течение многих десятилетий ». За 40 лет своей карьеры в ЦЕРН он работал с различными блестящими учеными, и мы не можем забывать, что реализация таких усилий всегда является результатом совместных усилий. Тем не менее, у Рене была несомненная заслуга в том, чтобы генерить новые идеи, предлагать проекты и усердно и с энтузиазмом работать над тем, чтобы превратить их в реальность.

Одним из его творений, ROOT, является инструментом анализа данных, широко используемый в экспериментах физике высокой энергий и ядерной физике, в ЦЕРНе и в других лабораториях. ROOT уже вышел за пределы физики и сейчас применяется в других научных областях и даже в финансах. GEANT — чрезвычайно успешный программный пакет, разработанный Рене Браном, который позволяет моделировать физические эксперименты и взаимодействия частиц в детекторах. Его последняя версия GEANT4, в настоящее время является основным инструментом моделирования детекторов.

Но, до появления ROOT и GEANT4, которые хорошо известны даже среди самых молодых физиков, им было предложено много других проектов и программных средств. Эта захватывающая история, которую Рене рассказал на семинаре, организованном в ЦЕРН Экспериментальным Физическим Отделом в 2017 году.

Все началось в 1973 году, когда он был нанят в отдел обработки данных в ЦЕРН для работы с Карло Руббиа (Нобелевский Лауреат, один из директоров ЦЕРНа) в эксперименте R602 на ISR (первый в мире адронный коллайдер). Его обязанностью была помощь в разработке специального аппаратного процессора для онлайн-реконструкции моделей столкновений. Но поскольку эта разработка шла медленно и не занимала много времени, Рене было предложено написать программное обеспечение для реконструкции событий в многопроволочных пропорциональных камерах. «В то время я ненавидел программное обеспечение », признается Рене, улыбаясь. «Я писал программное обеспечение во время своей кандидатской диссертации, учась в Клермон-Ферране и работая в ЦЕРН в выходные дни, и мне это не очень нравилось. Я присоединился к группе Карло Ру́ббиа с «обещанием», что буду работать над аппаратным обеспечением, но очень быстро я снова стал „a software guy“… »

Вскоре Рене реализовал в программном обеспечении (программирование на Fortran4) то, что они не могли реализовать с помощью аппаратного обеспечения, и, кроме того, он разработал пакет гистограмм под названием HBOOK. Это позволило провести очень простой анализ данных, создать гистограммы, заполнить их и отправить результаты на линейный принтер. Он также написал программу под названием HPLOT, которая специализировалась на рисовании гистограмм, сгенерированных HBOOK.

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

Рене с любовью вспоминает время, потраченное на перфорацию карточек, не на саму процедуру, которая была медленной и довольно утомительной, а на длинные посиделки, которые были в комнате, где находились перфораторы и принтеры Отдела Обработки Данных, как и кафэшка рядом (в то время она работала круглосуточно с продажей спиртного). В эти долгие часы он мог обсуждать идеи и новые технологии с коллегами.

Огромный прогресс стал возможен благодаря введению телетайпа, который заменил перфораторы карт. Пользователи могли создавать программы на диске и обмениваться данными с центральной машиной, называемой FOCUS, и в то же время — видеть на рулоне бумаги, что они делают, как на машине обычного типа. « То, как это работает, может заставить людей улыбаться сегодня », вспоминает Рене, « чтобы войти в FOCUS, нужно было набрать команду, которая включала красный свет в компьютерном центре. Увидев свет, оператор должен был вставить в память машины ленту подключенного человека, который сможет запустить сеанс на диске. Когда пользователь вышел из системы, сеанс снова был сброшен на ленту. Вы можете представить себе движение! Но это было намного быстрее, чем перфокарты ».

Некоторое время спустя телетайп был в свою очередь заменен терминалом Tektronix 4010, который привел к ещё большей революции, поскольку он дал возможность отображать результаты в графической форме. Это новое, очень дорогое устройство позволило Рене ускорить разработку своего программного обеспечения: сначала HBOOK, затем еще один пакет под названием ZBOOK и первую версию GEANT. GEANT1 был создан в 1974 году им вместе со своими коллегами из группы «Электронные Эксперименты» и представлял собой инструмент для моделирования с помощью метода Монте-Карло простых детекторов. Постепенно они добавили функции в это программное обеспечение и смогли разыгрывать столкновения частиц: так родился GEANT2.

В 1975 году Рене присоединился к эксперименту NA4, эксперименту по глубоко-неупругому рассеянию мюонов, который вел Карло Руббиа . Там он участвовал в разработке новых графических инструментов, которые позволяли печатать гистограммы с помощью устройства под названием CalComp plotter. Эта машина, которая работала с рулоном бумаги длиной 10 метров, давала намного лучшее разрешение по сравнению с линейными принтерами, но была очень дорогой. В 1979 году была введена система микрофильмов: сохраненные на пленке гистограммы можно было проверить перед отправкой на плоттер, чтобы печатать только интересные. Это позволило сократить расходы на использование CalComp.

Предполагалось, что Рене продолжит работать с Карло Руббиа в эксперименте UA1 , для которого он делал много моделирования. Но вместо этого, в конце 1980 года, он присоединился к эксперименту OPAL, где произвёл всё моделирование детектора и создал GEANT3.

Работая над системой HBOOK, в 1974 году Рене разработал систему управления памятью и ввода-вывода под названием ZBOOK. Этот инструмент был альтернативой системе HYDRA, которая была разработана в группе пузырьковых камер Юлиус Цолль (также автором другой системы управления, называемой Patchy).

Считая, что иметь две конкурирующие системы бессмысленно, в 1981 году Эмилио Пагиола предложил разработать новый программный пакет под названием GEM. В то время как три человека усердно работали над проектом GEM, Рене и Юлиус вместе начали проводить тесты для сравнения своих систем, ZBOOK и HYDRA, с GEM. В результате этих испытаний они пришли к выводу, что новая система была намного медленнее, чем их.

В 1983 году Ян Баттеруорт, тогдашний директор Компьютерного Отдела, решил, что в ЦЕРНе будет поддерживаться только система ZBOOK, и что GEM должен быть остановлен, и разработка HYDRA была заморожена. « Мой руководитель группы, Ганс Гроте, пришел ко мне в офис, пожал мне руку и сказал:« Поздравляю, Рене, ты выиграл ». Но я сразу подумал, что это решение было несправедливым, потому что на самом деле обе системы имели хорошие функции, а Юлиус Цолль был отличным разработчиком программного обеспечения. »

В результате этого решения Рене и Юлиус начали сотрудничество и объединили усилия для разработки пакета, объединяющего лучшие функции ZBOOK и HYDRA. Новый проект получил название ZEBRA, из-за сочетания названий двух оригинальных систем. « Когда Юлиус и я объявили, что мы сотрудничаем, Ян Баттерворт немедленно вызвал нас обоих в свой офис и сказал нам, что если через 6 месяцев система ZEBRA не будет работать, нас уволят из ЦЕРНа. И действительно, менее чем через два месяца мы уже смогли показать работающую первичную версию системы ZEBRA. »

В то же время гистограмма и инструменты визуализации находились в стадии разработки. Рене собрал интерактивную версию HBOOK и HPLOT под названием HTV, которая работает на машинах Tektronix. Но, в 1982 году появление персональных рабочих станций ознаменовало революцию. Первая персональная рабочая станция, появившаяся в Европе, Apollo, продемонстрировала скачок с точки зрения характеристик и производительности: она была быстрее, имела больше памяти и лучший интерфейс пользователя, чем любое другое предыдущее устройство. « Компания Apollo пригласила меня поехать в Бостон и посетить их», — рассказывает Рене. « Когда я впервые увидел рабочую станцию Apollo, я был шокирован. Я сразу понял, что это может ускорить нашу разработку в 10 раз. Я заставил себя работать и думаю, что всего за три дня я адаптировал под неё около 20000 строк кода ».

Работа Рене по адаптации HTV для рабочей станции Apollo вызвала интерес у Руди Бека, Люка Папе и Жана-Пьера Револя из коллаборации UA1, которые также предложили некоторые улучшения. Поэтому в 1984 году трое из них разработали предложение для нового пакета, который будет основан на HBOOK и ZEBRA, который они назвали PAW (Physics Analysis Workstation).

image
Команда PAW: (слева) Рене Бран, Пьетро Занарини, Оливье Куе (стоит) и Карло Вандони.

После первого периода неопределенности проект PAW быстро развивался, и было введено много новых функций, в том числе благодаря увеличению объема памяти рабочих станций. « В определенный момент программное обеспечение PAW росло так быстро, что мы начали получать жалобы от пользователей, которые не могли идти в ногу с разработкой», — говорит Рене, улыбаясь. « Может быть, мы были немного наивны, но определённо полны энтузиазма ».

Язык программирования, обычно используемый для научных вычислений, был FORTRAN. В частности, в то время FORTRAN 77 (представленный в 1977 году) был широко распространен в сообществе физиков высоких энергий, и главной причиной его успеха был тот факт, что он был хорошо структурирован и довольно прост в освоении. Кроме того, очень эффективные реализации его были доступны на всех машинах, используемых в то время. Как следствие, когда появился новый FORTRAN 90, казалось очевидным, что он заменит FORTRAN 77 и будет таким же успешным, как и предыдущая версия. « Я хорошо помню руководителя вычислительного подразделения Паоло Дзанеллу, который сказал:« Я не знаю, что будет делать следующий язык программирования, но я знаю его название: FORTRAN. »

В 1990 и 91 годах Рене вместе с Майком Меткалфом, который был великим экспертом FORTRAN, усердно работал над адаптацией пакета ZEBRA к FORTRAN 90. Но, эти усилия не привели к удовлетворительному результату, и возникли дискуссии о возможности продолжать работать с FORTRAN или переход на другой язык. Это был период, когда объектно-ориентированное программирование делало свои первые шаги, а также когда Тим Бернерс Ли (создатель интернета) присоединился к группе Рене.

Тим должен был разработать систему документации под названием XFIND, чтобы заменить предыдущий FIND, который мог работать только на машинах IBM, которые должны были использоваться на других устройствах. Однако он полагал, что процедура, которую он должен был осуществить, была немного неуклюжей и, конечно, не лучшим подходом к проблеме. Таким образом, он предложил другое решение с более децентрализованным и адаптируемым подходом, который требовал прежде всего много работы по стандартизации. В этом контексте Тим разработал свою знаменитую идею серверов и клиентов - World Wide Web, разработанную с использованием объектно-ориентированного языка (Objective C). Как-то раз я спросил Рене »Как это было?". Его ответ меня шокировал — «Это было не благодаря, а вопреки ЦЕРНу»

Это был очень жаркий период, потому что началась фаза проектирования и моделирования экспериментов для нового ускорителя LHC (Большой Адронный Коллайдер). Важно было принять решение о языке программирования и инструментах программного обеспечения, которые будут использоваться в этих новых проектах.

На семинаре ERICE, организованном INFN в ноябре 1990 года, а затем на конференции по вычислительной технике в физике высоких энергий (CHEP) в Анси (Франция) в сентябре 1992 года, «гуру» по физике высоких энергий мира собрались для обсудить языки программирования и возможные направления для разработки программного обеспечения в Физике Высоких Энергий для Большого Адронного Коллайдера. Среди множества предложенных языков были Eiffel, Prolog, Modula2 и другие.

В 1994 году были запущены два проекта исследований и разработок: RD44 с целью разработки на C++ новой версии GEANT (которая станет GEANT4 ) и RD45 с целью исследования объектно-ориентированных решений для баз данных для экспериментов на Большом Электрон-Позитронном Коллайдере LEP.

По словам Рене, его подразделение было разделено на три группы: те, кто хотел остаться с FORTRAN 90, те, кто делал ставку на C++, и те, кто был заинтересован в использовании коммерческих продуктов. "Я представил предложение о разработке пакета, который позволил бы перенести PAW в мир Объектно-Ориентированного Программирования. Но проект, который я назвал ZOO, был отклонен, и мне даже предложили взять отпуск", — признается Рене.

Этот удар, однако, позже оказался действительно удачей для Рене. Его руководитель Дэвид Уильямс предложил ему присоединиться к эксперименту NA49 в северной части ЦЕРНа, где нужен был кто-то, кто помог бы в разработке программного обеспечения. Сначала он отказался. В течение многих лет он руководил проектами GEANT и PAW и занимался моделированием или разработкой программного обеспечения для различных групп и приложений, поэтому согласие вернуться к работе в конкретном эксперименте показалось ему большим ограничением.

Но, он задумался над этим и понял, что это была возможность потратить некоторое время на разработку нового программного обеспечения с полной свободой. Он посетил здание NA49 на площадке Привессан и, увидев из окон сосны и белки, почувствовал, что это действительно та самая спокойная обстановка, в которой он нуждался для своего нового проекта. Поэтому он переместил свою рабочую станцию ​​из своего офиса на сайт Привессан (« Я сделал это в выходные, даже не рассказав Дэвиду Уильямсу ») и, работая на NA49 , он учил C++, переводя большую часть программного обеспечения HBOOK на C++.

В начале 1995 года к Рене присоединился в NA49 Фонс Рэйдемакерс, с которым он уже сотрудничал. Они вдвоем много работали и создали первую версию того, что стало знаменитой системой ROOT. Название происходит просто от сочетания начальной буквы адресов электронной почты двух основателей (René и Rdm, для Rademakers), двойного O Object Oriented и слова Technology. Но значение или слово «root» также хорошо подходили для того, чтобы быть основой для разработки большего количества программного обеспечения и использования древовидных структур в его архитектуре.

В ноябре того же года Рене провел семинар, чтобы представить систему ROOT. "Зал компьютерного отдела был неожиданно переполнен!" Рене вспоминает: "Я думаю, это потому, что люди думали, что мы с Фонсом исчезли с арены программного обеспечения, и вдруг мы снова вернулись!" И на самом деле, система ROOT вызвала значительный интерес.

Но, в то время как Рене и Фонс были полностью поглощены работой над своим новым программным пакетом, проект RD45, который имел полномочия решать, какое новое программное обеспечение должно быть принято в новых экспериментах на БАК, предложил использовать коммерческий продукт «Objectivity». и продолжалась большая работа по разработке приложений для удовлетворения потребностей Физики Высоких Энергий. По словам Рене, было явное намерение помешать развитию и распространению ROOT. Весной 1996 года директор ЦЕРН по вычислительной технике Лоренцо Фоа заявил, что проект ROOT рассматривается как частная инициатива NA49, которая не была поддержана руководством ЦЕРН, и что официальная линия развития была направлена ​​на Objectivity.

« Я думаю, что у LHC Computing Board не было правильного представления об архитектуре этих программных инструментов, чтобы можно было судить, какое решение было лучшим. Таким образом, они должны были доверять тому, что им сказали », — комментирует Рене. « Это всегда проблема, когда существует такой разрыв между экспертами — и пользователями — работающими над чем-то и людьми, которые должны принимать важные решения ».

Тем не менее, Рене и Фонс продолжили разработку ROOT и внедрили новые функции, используя уроки, извлеченные из предыдущих пакетов программного обеспечения (в частности, запросы и критику пользователей). Кроме того, они внимательно следили за развитием официальной линии с Objectivity, чтобы узнать, что искали люди, использующие ее, и каковы были проблемы или трудности. « Чем больше мы смотрели на Objectivity, тем больше понимали, что она не может удовлетворить потребности нашего сообщества », — добавляет Рене, — « мы знали, что система рухнет и что в конечном итоге люди это осознают. Это дало нам еще больше энергии и мотивации для усердной работы и улучшения нашего продукта. »

Они получили постоянную поддержку со стороны коллабораций NA49 и ALICE, а также от многих людей из ATLAS и CMS, которые видели хороший потенциал в этом программном пакете. В то время Рене сотрудничал со многими людьми в обоих экспериментах, включая Фабиолу Джанотти (нынешний директор ЦЕРНа ) и Даниэля Фродево, в частности, для моделирования детекторов. Кроме того, многие пользователи доверяли им в течение многих лет благодаря поддержке пользователей PAW и GEANT.

Ситуация начала меняться, когда интерес к ROOT возрос за пределами ЦЕРНа (как это ни странно, но лозунг Заграница нам поможет! работает и за пределами России). В 1998 году два эксперимента Лаборатории им. Энрико Ферми в Америке (Fermilab), CDF и D0, решили обсудить будущее их программного обеспечения с учетом предстоящего сеанса на Теватроне. Таким образом, они открыли два конкурса предложений программных решений, один для хранения данных и один для анализа и визуализации данных. Рене отправил ROOT на оба конкурса. Во время конференции CHEP в Чикаго (именно там я впервые встретился с Рене лично, хотя сотрудничал с ним заочно довольно давно.
Там же он предложил мне работу) предложения обсуждались, и в последний день было публично объявлено, что CDF и D0 примут ROOT. "Я не ожидал этого", — говорит Рене, — "я помню, что когда решение было объявлено, все повернулись и посмотрели на меня". Вскоре эксперименты RHIC в Брукхейвенской национальной лаборатории приняли такое же решение. Когда физики эксперимента BaBar в SLAC, после многих лет попыток использовать Objectivity, поняли, что это не такая хорошая система, как ожидалось, поэтому они перешли на ROOT.

Постепенно стало ясно, что всё сообщество Физики Высоких Энергий «естественно» идет в направлении ROOT, руководство ЦЕРН должно было принять эту ситуацию и, в конце концов, поддержать ее. Но это произошло только в 2002 году. С ростом рабочей силы, выделенной для проекта (Рене тогда пошутил "ты первый сотрудник ЦЕРНа, который официально получает зарплату за работу над ROOT"), ROOT продолжал быстро развиваться, и число пользователей резко возросло. ROOT также начал распространяться на другие отрасли науки и в финансовый мир. « В 2010 году мы имели в среднем 12000 загрузок программного пакета в месяц, и на веб-сайте ROOT было больше посетителей, чем в ЦЕРНе ».

imageЛоготип программного пакета ROOT.

Рене ушел на пенсию в 2012 году, но его два самых важных детища, ROOT и GEANT, продолжают развиваться благодаря работе многих молодых ученых. « Я думаю, что важно иметь постоянный стимул, который подтолкнет вас к улучшению вашей продукции и появлению новых решений. Для этого очень важен вклад молодежи », — комментирует Рене. Но, как он признает, что на самом деле заставило его и его коллег так упорно работать на протяжении многих лет является то, что всегда было несколько конкурентов, хотя во многих случаях они были вызовом и даже мешали. « Когда у вас есть противник, но знаете, что правы, вы обречены на успех. »

Большое внимание к запросам пользователей также было очень важно, потому что это помогло развивать программное обеспечение и построить доверительные отношения с людьми. « Я всегда говорил, что вы должны уделять первоочередное внимание поддержке пользователей », — объясняет Рене. « Если вы ответите на запрос в течение 10 минут, вы получите 10 баллов, за один час вы получите 2 балла, а за один день вы уже наберете -10 баллов. Ответы на вопросы и комментарии являются основополагающими, потому что, если пользователи удовлетворены поддержкой, которую вы им оказываете, они готовы доверять тому, что вы предлагаете дальше. »

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

Блестящие умы всегда в работе.


Немного о себе

Я проработал с Рене много лет и являюсь одним из авторов ROOT.
Считаю его своим учителем и другом.
Он с огромным интересом следит за моей сегодняшней работой.
Я и мои коллеги работаем над самым эффективным средством лечения рака — протонными медицинскими ускорителями. Это реальное применение достижений физики в медицине.
К глубокому сожалению — «Нет пророка в своём Отечестве».
Второй раз в жизни я сталкиваюсь с ситуацией, как в ЦЕРНе, когда сопротивление оказывают «свои же» и лозунг Заграница нам поможет! опять сработал.
Наши лучшие в мире ускорители купили в Америке, Израиле, Словакии, Китае, но только не в России.

Автор: xtovo

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js