Специализированные пакеты программ для научных исследований

 

Оглавление

Введение 3

1 Специализированные  пакеты программ 4

2 Пакет программ  ROOT 7

2.1 История и разработчики 7

2.2 Основные  характеристики 8

3 Структура  ROOT 11

3.1 Что такое  ROOT 11

3.2 Архитектура 11

3.3 Категории  классов 12

4 Графические  материалы 13

5 Применение  и эксперименты 16

Заключение 18

Список использованной литературы: 19

 

 

 

Введение

 

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

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

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

 

1 Специализированные пакеты программ

 

Пакеты прикладных программ (ППП) - это специальным образом  организованные программные комплексы, рассчитанные на общее применение в определенной проблемной области и дополненные соответствующей технической документацией.

В зависимости от характера  решаемых задач различают следующие  разновидности ППП:

    • пакеты для решения типовых инженерных, планово-экономических, общенаучных задач;
    • пакеты системных программ;
    • пакеты для обеспечения систем автоматизированного проектирования и систем автоматизации научных исследований;

пакеты педагогических программных  средств и другие.

Чтобы пользователь мог применить  ППП для решения конкретной задачи, пакет должен обладать средствами настройки (иногда путём введения некоторых дополнений).

Каждый ППП обладает обычно рядом возможностей по методам обработки данных и формам их представления, полноте диагностики, что дает возможность пользователю выбрать подходящий для конкретных условий вариант.

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

Часто пакеты прикладных программ располагают базами данных для хранения данных и передачи их прикладным программам.

Профессиональные пакеты ориентированы на специальные высокотехнологичные области применения, такие, как издательское дело, автоматизированное проектирование, моделирование и компьютерная графика. Как правило, профессиональные пакеты требуют мощной конфигурации ПК, включающей высокопроизводительный процессор, большой объем оперативной и кэш-памяти, значительное дисковое пространство и высококачественную видеосистему. Кроме того, часто требуется использование дополнительных периферийных устройств - сканера, плоттера, лазерного принтера или других, более специфических устройств.

    • автоматизированное проектирование:

системы автоматизированного проектирования (САПР) быстро входят в число наиболее распространенных приложений. САПР иногда рассматривают как средство для создания лишь технических чертежей и 3х-мерного моделирования сложных объектов. В действительности САПР поддерживают полный цикл проектирования от первых концептуальных разработок на уровне технического предложения до моделирования механических и электрических процессов в проектируемом изделии и подготовки чертежей и документации для производства. Являясь интегрированной системой, типичный пакет САПР включает базу данных, текстовый процессор, электронную таблицу, а также средства 3-мерной графики.

- анимация:

компьютерная анимация буквально «оживляет» любую прикладную программу, будь то компьютерная игра, учебная программа или рекламный ролик. Подобно мультфильмам, компьютерная анимация состоит в воспроизведении последовательности отдельных изображений. Создание анимации требует использования специальных пакетов программ, наиболее известными из которых являются разработки фирмы Autodesk. С их помощью компьютерные художники создают 2х-мерные анимационные последовательности.

- трехмерная графика:

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

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

 

 

 

 

 

 

 

 

 

2 Пакет программ ROOT

2.1 История и разработчики

 

ROOT — пакет объектно-ориентированных  программ и библиотек, разработанных  в Европейском центре ядерных  исследований. Пакет был разработан специально для использования в качестве платформы обработки экспериментальных данных физики высоких энергий и содержит специфичные для этой области продукты, однако также может быть использованы для анализа других данных, например, в астрономии.

CERN поддерживал свою программную библиотеку, написанную на языке Фортран 77; разработка и поддержка была прекращена в 2003 году в пользу ROOT, написанного на C++.

Разработка ROOT была инициирована сотрудниками CERNа Рене Брюном и Фонсом Рэйдмэйкерсом в 1994 году. [5]

Рене пришел в CERN в 1973 году. Вместе с К. Руббиа на ISR он разработал пакет HBOOK, который используется по сей день.  В 1984 году он координировал развитие PAW (рабочая станция физического анализа) анализ данных системы. До 1994 года он возглавлял группу прикладного программного обеспечения для компьютеров подразделения. В 1995 году, в то время, когда большинство гуру программного обеспечения решили следовать тупиковой линии, он создал систему ROOT . С 1995 года координирует развитие ROOT. Первоначальный дизайн был под сильным влиянием опыта PAW. В 2002 году ROOT стал официальным проектом в рамках Отдела физики в CERN.

Фонс получил докторскую степень в физике элементарных частиц в университете Амстердама в 1991 году за свою работу анализа данных для эксперимента DELPHI на LEP. С тех пор он работал в CERN и принимал участие в проектировании и разработке программ анализа данных. В 1991 году он присоединился к команде PAW Рене Брюна, где он разработал несколько интерфейсов и систем. В 1995 году вместе с Рене Брюном он начал ROOT проект и с тех пор был вовлечен во все положения системы.

Кроме родоначальников системы  ROOT в команде ее развития также принимают участие Филипп Канал, Бертран Беленот, Оливье Койет, Аксель Науманн, Жерардо Женис, Матевз Тадел, Лоренцо Монето, Виктор Васильев, Андрей Геата и Пол Руссо. [6]

2.2 Основные характеристики

 

Некоторые части пакета опубликованы под лицензией LGPL, некоторые — под GPL, таким образом весь проект базируется на свободном программном обеспечении.

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

- графический интерфейс пользователя,

- графический интерфейс разработки,

- классы-контейнеры,

- система средств самоизменения программ,

- скриптовый язык на основе C++,

- командный интерпретатор (CINT),

- система сериализации объектов,

- система долговременного сохранения данных.

Пакеты, включённые в ROOT, содержат:

- средства для создания гистограмм и графиков функций для визуализации и анализа вероятностных распределений и функций;

- средства «подгонки» (фитирования) теоретических кривых под экспериментальные данные и минимизации функций (для подборки наиболее простой зависимости, описывающей экспериментальные данные);

- инструменты статистического анализа;

- инструменты матричной алгебры;

- средства для четырёхвекторных вычислений (четырёхмерное пространство Минковского удобно применяется в физике высоких энергий);

- стандартные математические функции;

- инструменты многовариантного анализа данных, то есть использования нейронных сетей;

- средства обработки изображений, используемые, например, для анализа астрономических снимков;

- средства доступа к распределённым данным (в контексте таблиц баз данных);

- инструменты распределённых вычислений, параллелизации обработки данных;

- средства сериализации и долговременного сохранения объектов;

- инструменты доступа к базам данных;

- средства геометрической 3D-визуализации;

- инструменты для создания файлов в различных графических форматах, таких как PostScript, JPEG, SVG;

- двусторонние интерфейсы к языкам Python и Ruby (возможности использования средств ROOT из кода на Python или Ruby и использование модулей, написанных на Python или Ruby, из ROOT);

- интерфейсы к Монте-Карло-генераторам событий физики элементарных частиц.

- Ключевой возможностью пакета ROOT является специальный контейнер данных, называемый деревом (Tree), вместе с его подмножествами ветвями (Branch) и листьями (Leaf). Дерево может быть представлено как удобное средство чтения и записи данных в файле. Следующий элемент данных, записанный в файле, может быть получен инкрементированием индекса дерева. Такой подход позволяет избежать проблем с выделением памяти при создании объектов, и даёт возможность дереву выступать в качестве «лёгкого» контейнера при буферизации данных.

- ROOT разрабатывался как высокопроизводительная вычислительная библиотека, необходимая для обработки данных Большого Адронного Коллайдера, поток которых достигает нескольких петабайт в год. С 2009 года ROOT используется в подавляющем большинстве экспериментов физики высоких энергий; абсолютное большинство современных результатов и иллюстраций в этой области науки получено именно с использованием ROOT.

- Включение в пакет интерпретатора C++ CINT значительно увеличило гибкость пакета, так как позволило использовать средства ROOT в интерактивном режиме или посредством написания скриптов, что сделало его похожим на MATLAB.

- Основная критика ROOT связана с утверждениями о том, что для начинающих пользователей достаточно сложно освоить этот продукт, его широкие возможности и средства. Периодически эти проблемы обсуждаются пользователями и разработчиками ROOT в специальном списке рассылки. [5]

 

 

 

3 Структура ROOT

3.1 Что такое ROOT

 

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

Благодаря встроенному CINT  - C + + интерпретатору - язык команд, скриптов или макросов,  и язык программирования являются С + +.

Эта система была разработана  таким образом, что она может запросить ее базы данных параллельно на кластере рабочих станций или многоядерных машинах.  ROOT является открытой системой, которая может быть динамически расширена путем связывания внешних библиотек.

Это делает ROOT ведущей платформой, на которой строятся системы сбора, моделирования и анализа данных. [1]

3.2 Архитектура

 

Основу ROOT архитектуры составляет слоистая иерархия классов, которых в настоящее время около 1200 , сгруппированных в 60 библиотек, разделенных на 19 основных категорий (модулей).  Эта иерархия организована в основном на одной библиотеке классов, то есть, большинство классов наследуется от общего базового класса TObject. Это дает возможность осуществления наследования необходимой инфраструктуры всеми потомками TObject . Тем не менее, могут быть классы, которые не наследуют от TObject при необходимости (например, классы, которые используются в качестве встроенных типов, как TString ).

3.3 Категории классов

 

Классы в  базовой категории ROOT обеспечиваются наиболее низким уровнем архитектурных блоков ROOT.

Классы категории «контейнер» обеспечивают данные общего назначения, такие как массивы , списки, наборы , B-деревья , карты и т.д., которые часто используются при реализации ROOT самостоятельно.

Категория физики предоставляет классы, которые реализуют алгоритм Фельдмана ​​, генератор пространства фазового N-тела, вращение Лоренца, вектор Лоренца,  вектор 2-D, 3-D векторы и т.д.

Категория матрица предоставляет классы для ленивых матрицы, общих матриц и векторов.

Категория гистограмм  содержит классы для продвинутого статистического анализа данных, например,1D , 2D и 3D гистограммы короткой, длинной, с плавающей точкой или двойной ценности.

Категория графического пользовательского интерфейса  содержит все классы, необходимые для создания современных, кросс-платформенных графических интерфейсов. Есть классы для многих основных виджетов, таких как кнопки, окна, диалоги и меню.

C + + переводчик , CINT, позволяет строить приложения, в котором пользователь должен знать только один язык, C + +, для общения с системой. Командный язык, макро язык и язык программирования - все одно и то же. [3]

4 Графические материалы

 

Наглядное представление  работы некоторых приложений системы  ROOT приведено ниже, на рисунках 1, 2, 3 и 4.

 

Рисунок 1 – Графический  интерфейс пользователя (GUI)

Рисунок 2 - RootShower приложений

Рисунок 3 - Установка TGraph2D

Рисунок 4 - Меркурий

 

Поскольку пакет ROOT не идет на продажу, оценить его востребованность можно не по количеству покупок, а по количеству загрузок. Ниже приведены данные статистики загрузок пакета по месяцам и по странам.

Рисунок 5 – Статистика загрузок по месяцам

Рисунок 6 – Статистика загрузок по странам1

 

 

5 Применение и эксперименты

 

Многие экспериментальные  лаборатории физики высоких энергий  используют программное обеспечение, основанное на ROOT, иногда вопреки более стандартным программным решениям (например, использование контейнеров ROOT вместо классов STL).

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

- ALICE (A Large Ion Collider Experiment) — одна из шести экспериментальных установок, сооружённых на Большом адронном коллайдере в CERN. Она оптимизирована для изучения столкновений тяжёлых ионов, в частности столкновений ядер Pb-Pb при энергии в системе центра масс 2,76 ТэВ на нуклон;[ 2]

- ATLAS (от англ. A Toroidal LHC ApparatuS) — один из четырех основных экспериментов на коллайдере LHC. Эксперимент проводится на одноимённом детекторе, предназначенном для исследования протон-протонных столкновений;[ 9]

- BaBar — эксперимент в области физики элементарных частиц, проводимый в Стэнфордской лаборатории SLAC в Калифорнии, США, с целью изучения нарушений заряда и равенства симметрии при распаде B-мезонов. Для этого использовались пучки электронов (с энергией 9,1 ГэВ) и позитронов (с энергией 3 ГэВ), коллайдера PEP-II. Набор статистики был закончен в 2008 году, обработка данных продолжается; [4]

- КЕДР — детектор элементарных  частиц. Работает на электрон-позитронном  коллайдере ВЭПП-4М в ИЯФ им. Будкера в Новосибирске. Детектор будет работать в области энергий от пси- до ипсилон-мезонов. КЕДР — один из 5 крупных детекторов, работающих в мире в этой области; [7]

- а также CB-ELSA/TAPS, CDF, CMS, COMPASS, NA61, DZero, H1, LHCb, MINOS, PHENIX, PHOBOS, STAR, ZEUS, CRESST, КМД-3.[5]

Будущие эксперименты, которые  на данный момент разрабатывают своё программное обеспечение с использованием ROOT:

- Проект NOνA - это сотрудничество 181 ученого и инженеров из 26 учреждений, которые планируют изучить  нейтрино, используя пучок нейтрино от NuMI (Neutrinos at the Main Injector) в Fermilab. Эксперимент NOνA разработан, чтобы искать осцилляции мюонного нейтрино к электронному нейтрино, сравнивая количество зарегистрированных электронных нейтрино на участке Fermilab с количеством электронных нейтрино зарегистрированных к югу от Интэрнэшнл-Фолс, штат Миннесота в 810 километрах от Fermilab; [10]

- а также  CBM, PANDA, BELLE II, NICA.[5]

Астрофизические проекты, использующие ROOT:

- ANTARES - эксперимент по поиску космических нейтрино; [8]

- а также Fermi, IceCube, H.E.S.S., MAGIC и др. [5]

 

 

Заключение

 

Имея многолетний опыт в разработке систем  интерактивного анализа данных PAW и PIAF  и пакета  моделирования GEANT , разработчики поняли, что рост и обслуживания этих продуктов, написанных на языке Фортран и с помощью некоторых 20-летний библиотеки, достигло своего предела. Хотя эти системы по-прежнему очень популярны, они не могут масштабироваться до проблем, предлагаемых коллайдером, где объем данных для моделирования и проанализированы на несколько порядков больше, чем всегда.

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

В настоящее время акцент в ROOT делается на области анализа данных, но благодаря подходу слабосвязанной объектно-ориентированной структуры системы, его можно легко распространить и на другие области, такие как моделирование, реконструкцию событий и сбор данных.

Возможно, что ROOT представляет собой идеальную среду для быстрого внедрения физиков в новый мир Объектов и C + +.

 

Список  использованной литературы:

 

    1. About //Internet. - http://root.cern.ch/drupal/content/about
    2. ALICE_(эксперимент_LHC//Internet. -http://ru.wikipedia.org/ wiki/ALICE_(эксперимент_LHC)]
    3. Architectural overview// Internet. - http://root.cern.ch/drupal/content/ architectural-overview
    4. BaBar //Internet. - http://ru.wikipedia.org/wiki/BaBar
    5. ROOT_CERN//Internet.- http://ru.wikipedia.org/wiki/ROOT_(CERN)
    6. Root development team //Internet. -  http:// root.cern.ch/ drupal/content/ root-development-team
    7. КЕДР //Internet. - http://ru.wikipedia.org/wiki/КЕДР
    8. Проект ANTARES в ИТЭФ// Internet. -  http://antares.itep.ru/
    9. Эксперимент_ATLAS // Internet. -  http://ru.wikipedia.org /wiki/Эксперимент_ATLAS
    10. Эксперимент NOνA // Internet. -  http://nuclphys.sinp.msu.ru/ students/nova/index.html

1 Image galleries // Internet. - http://root.cern.ch/drupal/image

 


Специализированные пакеты программ для научных исследований