Московский государственный университет им. М.В. Ломоносова Физический факультет Кафедра физики элементарных частиц Дипломная работа Шамардина Льва Витальевича Использование программы CompHEP для распределенных вычислений процессов столкновения элементарных частиц на коллайдерах высоких энергий Зав. кафедрой д.ф.-м.н., профессор, чл.-корр. РАН Научный руководитель к.ф.-м.н., с.н.с. С.П. Денисов А.П. Крюков Москва 2004 1. Введение ........................................................................................................... 3 2. Автоматизация вычислений в физике высоких энергий............................. 4 3. Модификация CompHEP для распределенных вычислений в физике высоких энергий. ..................................................................................................... 8 3.1. Новый генератор C-кода для генерации n_comphep по подпроцессам. 10 3.2. Работа с сессиями в n_comphep. ................................................................ 12 3.3. Генерация задач для batch-систем. ............................................................ 13 3.4. Структура сборки, установки, запуска, новая структура библиотек. ... 15 4. Полученные результаты и сравнение со стандартной версией. ............... 16 4.1. Время сборки, размер модулей.................................................................. 16 4.2. Время счета и потребление памяти. .......................................................... 16 5. Заключение .................................................................................................... 17 6. Литература ..................................................................................................... 17 Приложение. Инструкция к программе gCompHEP-mkjobs. ........................... 19 2 1. Введение В современной физике высоких энергий, в связи с появлением ускорителей, работающих на энергиях порядка нескольких ТэВ, возникает необходимость расчета большого количества процессов с участием различных элементарных частиц. Огромные количества данных, полученных за прошедшие годы на коллайдерах Large Electron Positron Collider (LEP) в CERN (Женева) и Stanford Linear Collider (SLC), а так же на протон-антипротонной установке TEVATRON в FERMILAB позволили достичь впечатляющей точности для многих параметров в физике частиц. Например, масса и ширина Z-бозона измерена с такой же точностью, как постоянная Ферми [1, 2]. Однако большую важность имеет так же точность предсказаний, следующих из теоретических моделей. В настоящее время наиболее популярной моделью в физике частиц является так называемая Стандартная Модель. Она объединяет все известные кварки и лептоны и описывает их взаимодействия калибровочной группой SU(3)×SU(2)×U(1). Здесь SU(3) генерирует сильное взаимодействие между кварками путем обмена безмассовыми глюонами, в то время как SU(2)×U(1), обычно называемая электрослабым сектором, охватывает электромагнитные и слабые взаимодействия, переносимые безмассовым фотоном и имеющими массу заряженным W± и нейтральным Z бозонами соответственно. До настоящего времени все теоретические предсказания, выведенные из Стандартной модели, нашли точное экспериментальное подтверждение. Например, существование top-кварка было предсказано после открытия Yрезонансов в 1977 году [3] всего лишь из необходимости существования SU(2) дублета для bottom-кварка. Не менее впечатляющим было точное предсказание его массы Mt по сравнению прецизионных измерений некоторых наблюдаемых величин на ускорителях LEP и SLC с их теоретическими значениями. Зависимость массы top-кварка от этих наблюдаемых проявляется только как эффект более высокого порядка через так называемые радиационные поправки, типичные для квантовых теорий полей. Поэтому, когда коллаборациями CDF и D0 было объявлено о первых признаках открытия topкварка [4], согласие непосредственно и косвенно измеренных значений для массы top-кварка послужило очень убеждающим аргументом. Сегодняшняя статистика уже значительно улучшена, и первоначальный сигнал получил впечатляющее подтверждение [5]. Аналогичная ситуация наблюдается с бозоном Хиггса, являющимся в настоящее время единственной еще не обнаруженной частицей Стандартной Модели. Более того, его существование никоим образом не гарантируется, как это было с top-кварком после открытия b-кварка. Предсказания для массы Хиггса MH страдают гораздо большей неопределенностью, так как зависимость соответствующих радиационных поправок от MH является всего лишь логарифмической [6], в то время как она квадратичная для Mt. 3 Теперь обратимся к вопросу о том, как извлечь физическую информацию, такую как сечения и скорости распада из Стандартной модели, чтобы получать предсказания аналогичные предсказаниям для Mt и MH, о которых говорилось выше. В настоящее время подавляющее большинство вычислений основываются на теории возмущений, сформулированной на языке Фейнмановских диаграммам. Вместе с правилами Фейнмана, которые утверждают правила перевода из графической в математическую нотацию, они являются полным соответствием один к одному к пертурбативным рядам. В то время как одних могут интересовать только пертурбативные результаты, другие могут сформулировать теорию в терминах одних только правил Фейнмана, то есть предоставив список возможных вершин, описывающих взаимодействия частиц и пропагаторов. Тогда любой физический процесс может быть рассчитан путем соединения вершин и пропагаторов всеми возможными способами, приводящими к требуемым начальному и конечному состоянию. Порядок теории возмущений отражается числом вершин соответствующих Фейнмановских диаграмм. Большое количество комбинаций вершин и пропагаторов, соответствующих рассматриваемому процессу приводит к большому объему вычислений, необходимых для получения информации о процессе. В связи с этим возникает идея автоматизации, или, по крайней мере, частичной автоматизации вычислений в физике высоких энергий. 2. Автоматизация вычислений в физике высоких энергий Первая реализация идеи переложить чисто алгебраические, или, если быть более точным, символьные операции на компьютер на самом деле была сделана физиками элементарных частиц, когда в 1967 году M. Veltman разработал программу SCHOONSCHIP [7], служащую в основном для проверки вычисления следов гамма-матриц. На сегодняшний день SCHOONSCHIP заменен множеством других систем, которые, тем не менее, унаследовали многие из его основных идей. Некоторыми важными примерами ранних программ, которые своими корнями так же уходят в физику частиц являются MACSYMA [8], REDUCE [9] и другие. Высоко развитая на данный момент алгебраическая система Mathematica [10] на самом деле является производной программы SMP созданной в 1980 физиком элементарных частиц S. Wolfram. В то время как некоторые из этих программ претендуют на полную универсальность, наиболее прямым потомком SCHOONSCHIP является FORM [11], система, приспособленная в основном для физики высоких энергий. Чем выше порядок по теории возмущений, тем больше число участвующих Фейнмановских диаграмм, и тем сложнее их отдельное вычисление. Поэтому разработка эффективных алгоритмов, которые могут быть просто реализованы на компьютере, является не только желанной, но даже неизбежной. Много усилий в области вычисления Фейнмановских диаграмм посвящены поиску алгоритмов для особенных типов операций, возникающих в типич4 ных вычислениях. Эти операции можно охарактеризовать путем анализа шагов, необходимых для теоретических вычислений пертурбативных полей: по заданному набору правил Фейнмана, сначала необходимо сгенерировать набор Фейнмановских диаграмм для рассматриваемого процесса. Поскольку это в основном комбинаторная задача, она очень хорошо подходит для компьютеризации, и для решения аналогичных задач уже существуют очень эффективные алгоритмы. Следующим этапом является вычисление соответствующих математических выражений для диаграмм, которые можно разделить на алгебраическую и аналитическую части. Алгебраическая часть состоит из операций типа свертки Лоренцевских индексов и вычисления фермионных следов. В настоящее время многие алгебраические системы предоставляют функции, оптимизированные для операций такого типа. Аналитическая часть вычисления Фейнмановских диаграмм связана с Фейнмановскими интегралами, и обычно это то место, с которым компьютеры не могут справиться без вмешательства человека. Тем не менее, Фейнмановские интегралы представляют собой особый класс интегралов, и для многих подклассов существуют алгоритмы, которые алгебраически сокращают их до базовых наборов интегралов (мастер-интегралов). Двумя наиболее важными техники этого типа являются так называемое тензорное сокращение [12] и алгоритм интегрирования по частям [13]. Первая техника приводит любую Лоренцевскую структуру в подынтегральном выражении к инвариантам и была разработана специально для одно-петлевого уровня для общего случая, и до двух петель для диаграмм с пропагаторами. С другой стороны, при использовании алгоритма интегрирования по частям могут быть получены рекуррентные отношения для выражения диаграмм с нетривиальной топологией через более простые ценой увеличения их числа и степени знаменателей. Практическая реализация этих алгоритмов для реальных вычислений была бы невыполнимой без использования мощных компьютерных систем. Из обсуждения в предыдущем параграфе можно видеть, что до тех пор, пока нас интересует точное вычисление Фейнмановских диаграмм, число проблем, которые целиком можно переложить на компьютеры довольно ограниченно, в основном из-за относительно небольшого числа точно вычисляемых Фейнмановских интегралов. Однако, существует много процессов, для которых численный результат мог бы быть настолько же полезен, как и точный. Это становится ясно, если вспомнить, что с одной стороны, работа с фиксированным порядком теории возмущений в любом случае является приближением, и, с другой стороны, экспериментальные результаты в любом случае не свободны от погрешностей. В настоящее время существует большое количество программ для расчета в физике высоких энергий [14]. Пакет CompHEP [15] предназначен для расчета многочастичных конечных состояний в столкновениях и процессах распада. Основной идеей пакета CompHEP является эффективный прямой переход непосредственно от лагранжиана к сечениям и распределениям с высокой степенью автоматизации. 5 CompHEP позволяет вести расчет процессов рассеяния и распада на древесном уровне. Интерфейс программы CompHEP основан на системе меню. После выбора модели и ввода процесса, Фейнмановские диаграммы автоматически генерируются и графически отображаются на экране. После этого пользователь может выбрать диаграммы для дальнейшего рассмотрения. Далее генерируются и отображаются квадрированные диаграммы, и вычисляются соответствующие им аналитические выражения. Далее из них может быть сгенерирован код на языке C, используемый для численных исследований. Этими исследованиями могут быть вычисления различных распределений, а так же генерация событий. Численные вычисления распределений величин для определенных процессов позволяют получить ответы на ряд вопросов о свойствах частиц, получить сечения реакций, а так же выяснить, возможно, ли принципиально экспериментальное обнаружение данных частиц в тех процессах, которые исследуются. Генерация событий широко используется в физике высоких энергий как одно из основных средств моделирования эксперимента. Для детального моделирования эксперимента генерируются потоки в миллионы событий, позволяющие в дальнейшем исследовать фоны процессов, аппаратные функции детекторов и многие другие экспериментальные параметры. Кроме того, генерация событий играет важную роль при разработке методов реконструкции событий на экспериментальных установках. Потоки моделированных событий используются для написания и отладки программ реконструкции, а так же для определения эффективности их работы. Кроме различных алгоритмических подходов к решению проблем, не менее важным является эффективное использование компьютерных ресурсов для вычислений. Расчеты в физике высоких энергий часто требуют больших процессорных ресурсов, и для их проведения разумно использовать не один, а несколько компьютеров, объединенных в единую систему тем или иным способом – компьютерные фермы и кластеры. Дальнейшее развитие идеи компьютерных кластеров привело к рождению концепции метакомпьютинга – вычислений в среде, фактически представляющей собой большой компьютер, состоящий из компьютеров, соединенных глобальной сетью (например, через Интернет). Объединив различные вычислительные системы в рамках единой сети, можно сформировать специальную вычислительную среду. Какие-то компьютеры могут подключаться или отключаться, но, с точки зрения пользователя, эта виртуальная среда является единым метакомпьютером. Работая в такой среде, пользователь лишь выдает задание на решение задачи, а остальное метакомпьютер делает сам: ищет доступные вычислительные ресурсы, отслеживает их работоспособность, осуществляет передачу данных, следит за выполнением задач и т.п. Такая вычислительная среда получила название Grid [16] по аналогии с электрической сетью (подключая чайник к розетке, вы не задумываетесь, какая станция производит электроэнергию; вам нужен ресурс, вы им пользуетесь). 6 Grid-технологии в значительной степени развиваются физикой высоких энергий. В частности, для поддержки экспериментов, запланированных для проведения на ускорителе LHC, строящемся в CERN в настоящее время ведется разработка иерархической распределенной системы для проведения вычислений – LHC Computing Grid (LCG). Ресурсы этой системы будут использоваться, прежде всего, для моделирования событий для отладки и тестирования методов обнаружения частиц на экспериментальных установках при помощи программ реконструкции. Одной из особенностей процессов, изучаемых на адронных коллайдерах, является огромное количество диаграмм, и сотни подпроцессов. Рассмотрим для примера Стандартную Модель в Фейнмановской калибровке. Для процесса p, p → W+, W-, jet, jet, где p={u, U, d, D, c, C, s, S, b, B, G} и jet={u, U, d, D, c, C, s, S, b, B, G} QCD фон (то есть без диаграмм с виртуальными A, Z, W+, W-) получим 775 подпроцессов с 16461 диаграммой. Возможной попыткой решения является упрощение комбинаторики модели [17] – использование u#d#-модели: p, p → W+, W-, jet, jet, где p={u#, U#, d#, D#, b, B, G} и jet={u#, U#, d#, D#, b, B, G}. Тогда при тех же условиях получаем 69 подпроцессов и 845 диаграмм (рис. 1). Однако и это количество диаграмм является очень большим. Необходимо отметить, что расчеты по отдельным подпроцессам одного процесса не зависят друг от друга, поэтому их возможно проводить параллельно с использованием нескольких компьютеров. Использование распределенных вычислений открывает перед исследователями сразу несколько новых возможностей. Прежде всего, за счет использования ресурсов нескольких процессоров, сокращается время расчетов. Также появляется возможность эффективно использовать ресурсы существующих компьютерных Рис. 1. Процесс p, p → W+, W-, jet, jet в u#d#-модели ферм и кластеров. Кроме того, распределенные расчеты процессов в 7 CompHEP и генерация событий являются задачами, идеально вписывающимися в концепцию Grid-вычислений. Цель данной работы состоит в разработке версии CompHEP, которая позволила бы пользователю удобным способом запускать для каждого подпроцесса свой экземпляр программы CompHEP на компьютерах кластера или в среде Grid. Тем самым время вычислений должно сократиться в количество раз, пропорциональное числу подпроцессов данного процесса, что позволит существенно расширить класс рассматриваемых физических задач. 3. Модификация CompHEP для распределенных вычислений в физике высоких энергий. Общая структура вычисления процессов в CompHEP представлена на рис. 2. Пакет можно разделить на две части: символьную (s_comphep) и численную (n_comphep). Символьная часть программы CompHEP генерирует набор Фейнмановских диаграмм в рамках выбранной модели для указанного процесса. Далее происходит расчет матричных элементов, и получившиеся результаты сохраняются в виде исходного кода на языке C. Этот код компилируется и связывается с библиотеками CompHEP, в результате чего получается версия программы n_comphep для данного процесса. Эта программа содержит код, необходимый для расчета всех подпроцессов заданного процесса. Далее в процессе работы n_comphep пользователь имеет возможность выбрать интересующий его подпроцесс, произвести настройку параметров, и запустить процессы интегрирования или генерации событий. Однако такая схема работы имеет ряд существенных недостатков. Существует ряд технических ограничений, сужающих класс пригодных для исследования процессов. Одним из таких ограничений является размер выполняемого модуля n_comphep: при запуске программы система требует, чтобы s_comphep Генератор диаграмм n_comphep Символьные вычисления Выбор подпроцесса Следующий подпроцесс Генератор C-кода Monte Carlo интегрирование Компилятор (gcc) Рис. 2. Схема работы пакета CompHEP. 8 весь модуль помещался в оперативной памяти, даже если после загрузки большая часть кода окажется в виртуальной памяти. Из-за этого процессы, содержащие большое количество подпроцессов не могут быть обсчитаны при помощи CompHEP из-за слишком большого размера n_comphep. Другим недостатком является большое время сборки выполняемых файлов большого объема. Кроме того, при большом количестве подпроцессов ресурсы компьютера используются очень неэффективно, так как для работы в каждый момент времени используется только маленькая часть всего модуля n_comphep, в то время как большая его часть просто занимает память и не используется. s_comphep Генератор диаграмм Символьные вычисления Генератор C-кода n_comphep подпроцесс 1 n_comphep подпроцесс 2 n_comphep подпроцесс n Компилятор (gcc) Компилятор (gcc) Компилятор (gcc) Monte Carlo интегрирование Monte Carlo интегрирование Monte Carlo интегрирование Рис. 3. Схема работы gCompHEP Для устранения этих недостатков, а так же для достижения большей гибкости при расчетах с использованием ферм/кластеров ПК или Gridтехнологий, была предложена модификация CompHEP, которой и посвящена данная работа. В общих чертах суть идеи заключается в генерации для каждого подпроцесса отдельного исполняемого кода n_comphep, содержащего код, необходимый для обсчета только данного подпроцесса (см. рис. 3). Также было написано программное обеспечение для создания и запуска заданий для batch и Grid систем. Кроме того, в процессе разработки были внесены значительные изменения, направленные на приближение структуры пакета CompHEP к существующим стандартам на программное обеспечение типа GNU. 9 Выше уже описывалась структура программы CompHEP, а так же общая схема ее работы. Здесь мы рассмотрим принцип работы и основные изменения версии CompHEP для распределенных вычислений – gCompHEP. Все изменения, внесенные в CompHEP можно разделить на несколько групп: переработка генератора C-кода для генерации n_comphep по подпроцессам; изменения схемы настройки вычислений подпроцессов (копирование параметров сессий, изменение процедуры сборки); новые программы для генерации задач для batch/grid, а так же для смешивания событий измененная система сборки и структура библиотек всего пакета CompHEP; Далее следует подробное описание всех произведенных изменений. 3.1. Новый генератор C-кода для генерации n_comphep по подпроцессам. За генерацию C-кода в s_comphep отвечает модуль c_out.c, основной функцией в котором является c_prog(). Она подверглась значительной переработке. Здесь описывается логика работы новой версии этой функции (рис. 4). Сначала производится проверка готовности директории results к выводу n_comphep, и очистка этой директории при необходимости. Так же в директорию results копируется Makefile верхнего уровня, отвечающий за сборку n_comphep для всех подпроцессов. Далее в директории results создаются файлы d*.c и f*.c содержащие код, отвечающий за расчет диаграмм. После этого просматривается список всех подпроцессов. Для каждого подподготовка директории results генерация f*.c и d*.c повторить для каждого подпроцесса генерация sqme.c, service.c копирование необходимых файлов f*.c и d*.c, Makefile, … очистка директории results Рис. 4. Алгоритм работы c_out(). 10 процесса в директории results создается поддиректория sub#, где # – порядковый номер подпроцесса. В этих поддиректориях будут находиться экземпляры n_comphep для соответствующих подпроцессов. Для каждого подпроцесса генерируются файлы service.c и sqme.c. Код этих файлов значительно отличается от их аналогов, генерируемых обычным CompHEP. Основное отличие заключается в том, что функции pinf_(), cStrings() и smpl() содержат CompHEP workdir gCompHEP workdir results results Makefile f1.c … Makefile sub1 Makefile f1.c … f34.c … sqme.c sqme.c sub2 Makefile f34.c … sqme.c … Рис. 5. Структура директории results. только фрагменты кода, отвечающие за расчеты для текущего подпроцесса. Также в поддиректорию sub# для текущего подпроцесса копируются необходимые файлы f*.c и d*.c, список которых определяется во время генерации файлов service.c и sqme.c. Сюда же записывается Makefile для сборки n_comphep.exe и скрипт запуска n_comphep. После генерации всех подпроцессов, в директории results так же сохраняется файл со списком всех подпроцессов, который в дальнейшем будет использоваться программами n_comphep для каждого подпроцесса. Необходимость этого файла объясняется тем, что в старых версиях n_comphep не содержится информации о других подпроцессах, которая может быть необходима пользователю во время настройки параметров работы. Заключительным этапом является удаление ненужных копий файлов f*.c и d*.c из директории results. Старая и новая структуры файлов, создаваемых в директории results gCompHEP показана на рис. 5. 11 Рис. 6. Копирование настроек. 3.2. Работа с сессиями в n_comphep. Все настройки, производимые в процессе работы n_comphep, а так же параметры Monte Carlo интегрирования сохраняются CompHEP в специальном файле session.dat, находящемся в директории results. В связи с изменениями, внесенными в n_comphep, возникла необходимость копирования настроек или их части между различными подпроцессами, так как теперь расчетом отдельных подпроцессов занимаются разные программы. Данная возможность была реализована в виде отдельного меню копирования настроек (рис. 6). Для реализации данной опции был переработан модуль mc_menu.c. В него было добавлено новое меню копирования настроек, предлагающее следующие возможности: копирование всех настроек в текущий подпроцесс из другого подпроцесса; копирование всех настроек из текущего подпроцесса во все остальные подпроцессы; копирование части настроек из текущего подпроцесса во все остальные подпроцессы; копирование части настроек в текущий подпроцесс из другого подпроцесса; сохранение настроек. Копирование всех настроек целиком реализовано достаточно просто и прямолинейно: для копирования всех настроек в текущий подпроцесс из другого подпроцесса просто загружается session.dat, находящийся в директории другого подпроцесса, а для копирования всех настроек из текущего подпроцесса во все остальные подпроцессы производится сохранение состояния n_comphep в директории других подпроцессов. Для получения списка доступных подпроцессов используется файл со списком подпроцессов, генерируемый в директории results программой s_comphep. Сложнее в реализации копирование части настроек. Основная проблема заключается в том, что, во-первых, формат файла session.dat и существующий API для работы с ним не предусматривают частичной загрузки или сохранения параметров, кроме того, во-вторых, все необходимые настройки 12 внутри n_comphep хранятся в виде глобальных переменных, что делает невозможным их «блочное» копирование прямо в оперативной памяти. Для преодоления данной проблемы был написан небольшой модуль для n_comphep (session.c), позволяющий в удобной форме хранить несколько копий различных настроек n_comphep в оперативной памяти в виде сессий. Основными функциями модуля являются create_session_from_globals(), создающая в оперативной памяти образ текущей сессии, load_globals_from_session(), восстанавливающая образ сессии по ее копии, созданной create_session_from_globals(), а так же copy_params_group(), служащая для копирования групп параметров сессии между образами сессий в оперативной памяти. Выделены следующие группы параметров: параметры начального состояния, параметры модели, параметры QCD, Breight-Wigner, Cuts, Kinematics, Regularization. Копирование части параметров между подпроцессами реализовано аналогично копированию всех параметров, но и с использованием модуля для работы с сессиями. Для копирования части настроек в текущий подпроцесс из другого подпроцесса текущие настройки сохраняются при помощи функции create_session_from_globals(), далее загружается session.dat от другого подпроцесса и новые настройки так же сохраняются в другой образ функцией create_session_from_globals(). Далее производится копирование группы параметров функцией copy_params_group(), и модифицированные настройки загружаются обратно функцией load_globals_from_session(). Аналогично производится копирование части настроек из текущего подпроцесса в остальные, только процедура повторяется для каждого подпроцесса. 3.3. Генерация задач для batch-систем. Запуск расчетов на компьютерных фермах и кластерах сильно отличается от обычного интерактивного режима работы за компьютером. Прежде всего, запускаемая задача должна быть не интерактивной, то есть она не должна требовать взаимодействия с пользователем во время работы. Задача, запущенная на ферме работает в своей собственной среде, которая, вообще говоря, может достаточно сильно отличаться от машины пользователя. Для того чтобы использовать gCompHEP в расчетах на фермах была написана специальная программа gCompHEP-mkjobs (см. приложение), генерирующая задания для запуска на фермах. Каждое такое задание представляет собой shell-скрипт, который при запуске на узле фермы выполняет следующие действия (рис. 6): 1. Копирует в рабочую директорию на узле фермы архив с исходными текстами, необходимыми для компиляции n_comphep для расчета данного подпроцесса. 2. Распаковывает этот архив, и производит подготовительные действия, необходимые для успешной компиляции n_comphep. 3. Запускает сборку n_comphep. 4. Производит вызов n_comphep с необходимыми параметрами. 13 задачи пользователь Архивы с задачами ферма Архивы с задачами, файлы с результатами Файл-сервер Рис. 6. Концепция выполнения задач, генерируемых gCompHEP 5. По окончании расчетов, копирует результаты расчетов в указанное пользователем место. Остановимся подробнее на отдельных пунктах. Архивы с исходными текстами и другими файлами, необходимыми для компиляции и работы n_comphep для одного подпроцесса генерируются автоматически. Поскольку не существует единого стандартного способа копирования файлов на ферму, пользователь должен позаботиться о том, чтобы этот архив можно было скопировать на ферму. Для этого он должен указать программе gCompHEP-mkjobs параметр --fetch-cmd, в котором указывается команда для копирования файлов на ферму. Приведем несколько примеров таких команд. Допустим, что на ферме непосредственно доступна домашняя директория пользователя, и сгенерированные файлы с заданиями и архивы находятся в директории c47/jobs в домашнем каталоге пользователя. Тогда параметр --fetch-cmd будет иметь вид: --fetch-cmd=”cp $HOME/c47/jobs/%f .” При запуске задач в среде EDG/LCG, файлы с заданиями могут быть размещены на Storage Element’е системы. Тогда параметр --fetch-cmd может иметь вид: --fetch-cmd=”globus-url-copy gsiftp://lhc03.sinp.msu.ru/flatfiles/SE00/cms/cms/Test/UI_LCGB0/gcomph ep_test/jobs/%f file://`pwd`/%f” Если же к файлам задач есть доступ по протоколу http, то параметр --fetchcmd может иметь вид: --fetch-cmd=”wget http://theory.sinp.msu.ru/~shamardin/jobs/%f” Возможны самые различные варианты. Выбор варианта, наиболее подходящего для данного случая, предоставляется пользователю. Кроме параметра --fetch-cmd существует полностью аналогичный ему параметр --return-cmd, указывающий команду, при помощи которой файлы с результатами (событиями) будут возвращены обратно с узла фермы. Компиляция n_comphep на узле фермы подразумевает, что пакет gCompHEP установлен на ферме. По умолчанию считается, что местополо14 жение пакета gCompHEP будет заданно в переменной среды окружения COMPHEP. Если это не так, то при генерации задач необходимо использовать опцию --comphep, в которой указать расположение пакета gCompHEP на ферме. Программа gCompHEP-mkjobs так же понимает опции, позволяющие включать те или иные расчеты в задание для batch-системы. При помощи этих опций можно включать запуск процедуры VEGAS, поиск максимума, генерацию событий, а так же переключать параметр Gauge Invariance и включать принудительную очистку статистики и сетки интегрирования перед генерацией событий. В заключение приведем пример использования программы gCompHEPmkjobs для запуска генерации событий на компьютерной ферме LXBatch в CERN. Этот пример реально использовался для запуска тестовых задач. gCompHEP-mkjobs --all --queue=8nh --comphep=”/afs/cern.ch/user/s/shamard/public/comphep-4.7.0” --fetchcmd=”scp pccms168:/scratch/shamard/jobs/%f .” --return-cmd=”scp %f pccms168:/scratch/shamard/jobs/out/%f” В данном примере будут сгенерированны задачи для всех подпроцессов, все задачи будут содержать код запуска VEGAS, поиска максимума и генерации событий. Для копирования файлов используется scp. Дальше получившиеся задачи запускались на вычисление при помощи команд bsub –q 8nh sub1_batch.sh ... 3.4. Структура сборки, установки, запуска, новая структура библиотек. Первым большим изменением является полностью новый скрипт определения параметров среды окружения configure. Он был полностью переписан с использованием инструментария GNU AutoConf. Помимо стандартных опций, понимаемых всеми autoconf скриптами, были добавлены следующие опции: enable-/disable- опции --disable-longlong, --disable-long, --enable-double (здесь указаны значения по умолчанию). Служат для выбора типа данных, используемых для целых чисел в s_comphep. with- опция --with-cernlib. Служит для указания местоположения библиотек CERNLIB, отличного от значения по умолчанию (/cern/pro/lib). Данные библиотеки необходимы для работы с MSSM моделями. В процессе работы configure скрипт определяет команды, необходимые для запуска компилятора C, определяет опции, необходимые для включения предупреждений на этапе компиляции, включения типа char как signed char по умолчанию, проверяет наличие необходимых библиотек (libm, библиотеки X11). Далее определяется размер типов данных long и long long, после чего производится выбор типа данных для целых чисел в s_comphep с учетом минимальных требований к размеру, а так же указанных enable/disable опций. Далее производится проверка наличия CERNLIB. По результатам работы configure скрипта устанавливаются следующие переменные: SHELL, 15 CFLAGS, CPPFLAGS, CXXFLAGS, FFLAGS, DEFS, LDFLAGS, LIBS, exec_prefix, prefix, program_transform_name, bindir, sbindir, libexecdir, datadir, sysconfdir, sharedstatedir, localstatedir, libdir, includedir, oldincludedir, infodir, mandir, CC, CPP, X_CFLAGS, X_PRE_LIBS, X_LIBS, X_EXTRA_LIBS, CHEP. С использованием этих переменных из шаблонных файлов генерируются следующие файлы: Makefile, usr/comphep, usr/Makefile, usr/Makefile.results, usr/Makefile.sub, usr/n_comphep, usr/mk_tab, usr/symb_batch.pl, comphep-create-workdir. 4. Полученные результаты и сравнение со стандартной версией. Проверка проводилась на процессе p, p → W+, W-, jet, jet, где p={u#, U#, d#, D#, b, B, G} и jet={u#, U#, d#, D#, b, B, G} с QCD-фоном (без диаграмм с виртуальными A, Z, W+, W-). 4.1. Время сборки, размер модулей. Результаты измерений времени компиляции, и размеры получающихся файлов представлены в таблице 1. Можно заметить, что общее время компиляции подпроцессов уменьшилось. Кроме того, значительно уменьшился размер выполняемого модуля, хотя суммарный объем всех выполняемых модулей стал больше. Однако, поскольку для расчетов одновременно используется только один из модулей, объем памяти, необходимый для запуска расчетов одного подпроцесса значительно уменьшился (более чем в 20 раз для данного процесса). CompHEP CompHEP gCompHEP gCompHEP (из расчета (всего) (среднее зна- (всего) на один чение) подпроцесс) Размер выпол- 1.02 M 71 M 2.9 M 200.1 M няемого файла Время сборки 133 сек. 176 мин. 133 сек 153 мин. Таблица 1. Время сборки и размер файлов. 4.2. Время счета и потребление памяти. В таблице 2 предоставлены результаты потребления памяти и времени счета для обычной и параллельной версий CompHEP. Можно заметить, что для gCompHEP значительно сократилось потребление виртуальной памяти. Кроме того, немного ускорился сам процесс счета, хотя этого результата не ожидалось. CompHEP (из gCompHEP CompHEP/gCo расчета на (среднее знаmpHEP один подпро- чение) цесс 16 Расчет сечения Память (Вирт./Оперативн.) Поиск максимума Память (Вирт./Оперативн.) Генерация 1 тысячи событий Память (Вирт./Оперативн.) 19 сек. 46.5M/1.8M 52 сек. 46.5M/1.8M 92 сек. 15 сек. 7.0M/2.0M 50 сек. 6.8M/1.8M 60 сек. 1.3 6.7/0.9 1.1 6.7/1.0 1.5 46.7M/2.1M 7.0M/2.0M 6.7/1.1 Таблица 2. Время счета и потребление памяти. Таким образом, gCompHEP обладает целым рядом преимуществ по сравнению с обычным CompHEP. 5. Заключение Результат пробной эксплуатации показал, что разработанная версия программы CompHEP, ориентированная на использование на компьютерных фермах и в среде Grid, позволяет сократить время вычисления процессов для адронных коллайдеров в десятки и сотни раз, что открывает новые возможности для расчетов процессов, исследуемых на LHC. Так же значительно сокращены требования к виртуальной и физической памяти во время расчетов, уменьшено время сборки выполняемых файлов, а так же разработана система автоматической генерации задач для проведения расчетов в среде компьютерных ферм и Grid. Эффективность используемой методики подтверждены вычислительной проверкой. В дальнейшем планируется использовать gCompHEP для вычислений в рамках CMS DC04 в среде LCG. Результаты данной работы были доложены на международной конференции ACAT 2003 [18]. Данная работа была выполнена в отделе теоретической физики высоких энергий НИИЯФ МГУ. 6. Литература [1] D. Karlen, talk presented at ICHEP’98, Vancouver, July 1998. [2] W. Hollik, talk presented at ICHEP’98, Vancouver, July 1998. [3] S. W. Herb et al., Phys. Rev. Lett. 39 (1977) 252. [4] F. Abe et al. (CDF Collaboration), Phys. Rev. Lett. 74 (1995) 2626; S. Abachi et al. (D0 Collaboration), Phys. Rev. Lett. 74 (1995) 2632. [5] R. Partridge, talk presented at ICHEP’98, Vancouver, July 1998. 17 [6] M. Veltman, Act. Phys. Pol. B 8 (1977) 475; Phys. Lett. B 70 (1977) 253. [7] M. Veltman, SCHOONSCHIP, CERN preprint, 1967; H. Strubbe, Comp. Phys. Commun. 8 (1974) 1. [8] MACSYMA Reference manual version 9, MIT Lab. Comp. Sci. (1977). [9] A. C. Hearn, REDUCE user’s manual Version 3.5 (RAND publication, Santa Monica 1993). [10] S. Wolfram, Mathematica – a system for doing mathematics by computer (Addison-Wesley, New York, 1988). [11] J. A. M. Vermaseren, Symbolic Manipulation with FORM, (Computer Algebra Netherlands, Amsterdam, 1991). [12] G. Passarino and M. Veltman, Nucl. Phys. B 160 (1979) 151. [13] F. V. Tkachov, Phys. Lett. B 100 (1981) 65; K. G. Chetyrkin and F. V. Tkachov, Nucl. Phys. B 192 (1981) 159. [14] R. Harlander, M. Steinhauser, Automatic Computation of Feynman Diagrams, Prog. Part. Nucl. Phys. 43 (1999) 167-228; Rep. No. TTP98-41, BUTP-98/28; hep-ph/9812357. [15] E. E. Boos, M. N. Dubinin, V. A. Ilyin, A. E. Pukhov, V. I. Savrin, CompHEP: specialized package for automatic calculations of elementary particle decays and collisions, Rep. No. SNUTP-94-116 (1994); hep-ph/9503280. [16] I. Foster, C. Kesselman, The Grid: Blueprint for a New Computing Infrastructure. – Morgan Kaufmann Publishers, 1998. – 701 p. [17] E. E. Boos, V. A. Ilyin, A. N. Skachkova, Simplification of Flavour Combinatorics in the Evaluations of Hadronic Processes, hep-ph/0004194. [18] A. Kryukov, L. Shamardin, CompHEP development for distributed calculation of particle processes at LHC, report on ACAT 2003, Tokyo, 1-5 of December 2003, to be published. 18 Приложение. Инструкция к программе gCompHEP-mkjobs. Usage: gCompHEP-mkjobs [options...] Generate batch ncomphep jobs Example: gCompHEP-mkjobs --subproc=1 --all Basic options: --help --subproc=NUM --list-subproc --results=NAME --output=NAME Generation options: --vegas --maxima --events --all --cleanstat --cleangrid --clean --gauge-invariance Job control options: --queue=NAME --jobmanager=NAME Display this help message Select subprocess, use commas and dashes to select several subprocesses (default: all available subprocs) List available subprocesses for the process Specify results directory name (default: 'results') Output directory where the jobs are saved (default: 'jobs') Include vegas into the batch job Include maxima search into the batch job Include events generation into the batch job Same as --vegas --maxima --events (default: --all if none of the above options specified) Clean statistics before generation Clean grid before generation Clean statistics and grid before generation Turn gauge invariance ON (default: off) Queue name Select job manager to use. Valid jobmanagers are pbs, lsf, edg. (default: lsf) Batch environment options: --comphep=PATH Path to comphep installation (default: $COMPHEP) --fetch-cmd=COMMAND Command used to fetch the source files generated by this script to the current directory on the batch node. See 'Notes' below for details. (default: "cp $HOME/c47/jobs/%f .") --return-cmd=COMMAND Command used to copy the results files generated by CompHEP from the working directory to the storage location. See 'Notes' below for details. (default: "cp %f $HOME/c47/results/%f") Notes This script generates a number of files in the output directory. Some of these files are the batch job scripts, and some of these files are the data files required on the batch node during the calculations. You MUST take care to make these files available from the batch node. To do this you must specify the correct --fetch-cmd option. The script will substitute %f with the filename of the required file during the execution. For example, if your home directory is available on the batch node and CompHEP working directory is $HOME/c47, you may want to use this option: --fetch-cmd="cp $HOME/c47/jobs/%f ." In LCG/EDG environment you might want to use something like --fetch-cmd="globus-url-copy gsiftp://some.place/path/to/data/%f file://`pwd`/%f If the job data files are available through http, you may use something like --fetch-cmd="wget http://some.place/path/to/data/%f" The output files must be transported to the storage location from the batch node. If you need the output files, you MUST take care copying these files to the storage location. Use --return-cmd option to specify the command used to copy files from the working directory on the batch node. The script will substitute %f with the filename. See --fetch-cmd description for more details. 19