автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.18, диссертация на тему:Комплексное моделирование и оптимизация ускорительных систем на графическом процессоре (GPU)

доктора физико-математических наук
Перепёлкин, Евгений Евгеньевич
город
Москва
год
2013
специальность ВАК РФ
05.13.18
Диссертация по информатике, вычислительной технике и управлению на тему «Комплексное моделирование и оптимизация ускорительных систем на графическом процессоре (GPU)»

Автореферат диссертации по теме "Комплексное моделирование и оптимизация ускорительных систем на графическом процессоре (GPU)"

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. М.В. Ломоносова Кафедра квантовой статистики и теории поля

На правах рукописи

Перепелкин Евгений Евгеньевич

КОМПЛЕКСНОЕ МОДЕЛИРОВАНИЕ И ОПТИМИЗАЦИЯ УСКОРИТЕЛЬНЫХ СИСТЕМ НА ГРАФИЧЕСКОМ ПРОЦЕССОРЕ

(GPXJ)

Специальность: 05.13.18 - математическое моделирование, численные методы и комплексы программ.

Автореферат диссертации на соискание ученой степени доктора физико-математических наук

005052212

R АПР 2013

Москва, 2013 г.

005052212

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

Официальные оппоненты:

Петров Игорь Борисович,

член-корреспондент РАН, доктор физико-математических наук, профессор, Национальный исследовательский университет Московский физико-технический институт (государственный университет) - НИУ-МФТИ, заведующий кафедрой информатики.

Поляков Сергей Владимирович,

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

Ильин Вячеслав Анатольевич,

доктор физико-математических наук, старший научный сотрудник, Национальный исследовательский центр «Курчатовский институт», начальник отделения математического моделирования и информационных технологий Курчатовского НБИК-Центра.

Ведущая организация: Петербургский институт ядерной физики

им. Б.П. Константинова, г. Гатчина Ленинградской области

Защита состоится "23" мая 2013 г., в 11.00 часов на заседании диссертационного совета Д-002.024.03 в Институте прикладной математики им. М.В. Келдыша РАН по адресу: 125047, Москва, Миусская пл., д.4.

С диссертацией можно ознакомиться в библиотеке Института прикладной математики им. М.В. Келдыша РАН.

Автореферат разослан " " О У_2(

Ученый секретарь

диссертационного совета Д-002.024.03, доктор физико-математических наук Змитренко Н.В

2

Общая характеристика работы

Актуальность темы

В современных физических исследованиях как в области фундаментальной, так и прикладной физики используют ускорители заряженных частиц. Одним из таких ускорителей является LHC (CERN, Женева) [1], в состав которого входит детектор частиц ATLAS, построенный для проверки Стандартной модели теории поля. Другим представителем ускорительных систем является циклотрон [2], получивший широкое распространение в различных сферах деятельности человека таких, как протонная и углеродная терапия, обнаружение взрывчатых веществ на таможне, промышленное применение, фундаментальные исследования в области ядерной физики.

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

Цель диссертации

Целью диссертационной работы является построение комплексного математически выверенного и обоснованного подхода к проведению высоко реалистичного моделирования и оптимизации ускорительных систем с использованием современных компьютерных технологий - вычислений на графических процессорах (GPU) [3]. Достижение указанной цели реализуется решением следующих проблем:

1. формулировка математических постановок и решение задач:

• задачи учета потерь частиц в пучке на структурных элементах установки;

• ' задачи обратной трассировки частиц;

• задачи о гладком сопряжении центральной траекторий инфлектора и циклотрона;

• задачи определения формы инфлектора с учетом краевого электрического поля;

• задачи центрирования центральной траектории пучка;

• оценка точности решения задачи учета эффекта пространственного заряда пучка;

• задачи определения воздействия конструкций в секторах 12-14 на основное магнитное поле установки ATLAS (LHC, CERN);

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

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

Научная новизна

. предложен принципиально новый подход к решению проблемы учета потерь

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

траекторий инфлектора и циклотрона; . сформулирована и решена новая постановка задачи определения формы

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

пучка;

. предложен метод оценки точности решения задачи учета эффекта

пространственного заряда пучка; . впервые было проведено комплексное моделирование сложной конфигурации магнитной системы секторов 12-14, наиболее насыщенных магнитными элементами детектора ATLAS эксперимента LHC, CERN, Женева; . впервые была применена современная технология параллельного программирования на графическом процессоре GPU для решения проблемы комплексного моделирования и оптимизации динамики пучка в циклотроне; . разработан программный комплекс CBDA (Cyclotron Beam Dynamics Analysis), реализующий все основные численные алгоритмы комплексного подхода моделирования и .оптимизации, предложенные в диссертационной работе, с использованием современной компьютерной технологии - параллельных вычислений на графических процессорах (GPU).

Научная и практическая значимость работы

1. предложен подход комплексного моделирования и оптимизации динамики пучка в циклотроне;

2. разработан программный комплекс CBDA, использующий параллельные вычисления на графическом процессоре (GPU), что позволило достичь прироста производительности вычислений на 1.5-2 порядка по сравнению с реализацией на одном ядре стандартной х86 архитектуры;

3. предложена и реализована на практике новая геометрия центральных электродов и формы инфлектора AVF RIKEN циклотрона для второй гармоники;

4. получена карта вкладов магнитных элементов в основное магнитное поле в секторах 12-14 установки ATLAS, LHC, CERN (Женева), используемая в эксперименте по проверке Стандартной модели теории поля.

Достоверность полученных результатов

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

Достоверность полученных результатов также подтверждается тестированием и согласием с имеющимися аналитическими решениями, а также применением результатов моделирования на практике.

Апробация работы

Результаты исследований, вошедшие в содержание глав диссертации, неоднократно докладывались и обсуждались на семинарах, школах, конференциях. Приглашенные доклады:

1. CNS-RIKEN Workshop on Upgrade of AVF Cyclotron, RIKEN, Wako, Japan, 2008.

2. The GPU Computing event by APC trainers, September 5-7, 2011 Belgrade, Serbia.

3. Семинар по программированию на CUDA, 5-9 ноября 2009, Межведомственный супер-компьютерный центр РАН, Москва.

4. Семинар, посвященный персональным суперкомпьютерам NVIDIA Tesla и среде программирования на GPU — CUDA, 25 февраля 2010, Институт космических исследований РАН (ИКИ РАН), Таруса.

5. II Российско-британский семинар "Потоковая обработка данных и программирование", Институт вычислительных технологий СО РАН", с 12 по 15 сентября 2011, Новосибирск.

6 Семинар "Решение инженерных и научных задач на гибридных вычислительных системах, графические процессоры и архитектура CUDA", Институт нефтегазовой геологии и Геофизики СО РАН, 21 апреля 2011, Новосибирск.

7. Семинар по программированию в среде CUD А, Национальный Исследовательский Центр Курчатовский институт, 22 января 2010, Москва.

8. Школа по массивным параллельным вычислениям на GPU, Саровский государственный физико-технический институт, с 11 по 15 апреля 2011, Саров.

9. Школа по вычислениям на GPU в центре высокопроизводительных вычислений МГУ,

29 августа - 2 сентября 2011, Москва.

10. Семинар НИЯУ МИФИ и компаний «Открытые Технологии» и «NVIDIA» «Решение инженерных и научных задач на гибридных вычислительных системах. Графические процессоры и архитектура CUD А», 18 октября 2011, Москва.

11. Семинар «Решение инженерных и научных задач на гибридных вь,числительных системах, графические процессоры и архитектура CUDA», 23 марта 2001, Екатеринбург.

12 Семинар «Решение инженерных и научных задач на гибридных вычислительных системах, графические процессоры и архитектура CUDA», Казанский федеральный

университет, 16 марта 2011, Казань.

13. Семинар по вычислениям на графических процессорах. Калининградский государственный университет им. Э. Канта. 29 октября 2011, Калининград.

14. Школа высокопроизводительных вычислений, 29 июня 2010, Нижегородский государственный университет им. Н.И. Лобачевского, Нижний Новгород.

15. Семинар, посвященный персональным суперкомпьютерам NVIDIA Tesla и среде программирования на GPU - CUDA, 28 мая 2010, Якутский Государственный

университет (ЯГУ), Якутск.

16. University Tesla tour, Омский государственный университет совместно с компанией

NVIDIA, 11 марта 2010, Омск.

17. Семинар, посвященный персональным суперкомпьютерам NVIDIA Tesla и среде программирования на GPU - CUDA. 11 февргшя 2010, Харьков (Харьковский институт сцинтилляционных материалов HAH Украины).

18. Семинар мастер-класс по программированию на CUDA, 2-4 декабря 2009, Томский Государственном Университете (ТГУ), Томск.

19. Курс лекций «Массивно-параллельные процессы, архитектура и среда программирования СЦГОА», компания «Открытые технологии», 11 июля 2011, Москва.

Доклады на семинарах:

1. 6-й Международный семинар памяти профессора В.П.Саранцева, ОИЯИ, Научный совет РАН по проблемам ускорителей заряженных частиц, Алушта, Украина, Крым.

2. XIX International Baldin Seminar on High Energy physics problems "Relativistic nuclear physics & Quantum Chromodynamics", JINR, Dubna, Russia, 2008.

3. XVIII International Baldin Seminar on High Energy Physics Problems: Relativistic Nuclear Physics and Quantum Chromodynamics, JINR, Dubna, 2006.

4. NATO Advanced Research Workshop. Detection of Liquid Explosives and Flammable Agents in Connection with Terrorist Actions, St. Petersburg, Russia, 2007.

5. Семинар в ЛИТ, ОИЯИ, Постановка задачи об учете эффекта пространственного заряда пучка, Дубна, 10 февраля 2011.

6. Моделирование спирального инфлектора и центрирования орбит в компактном циклотроне, ОИЯИ, ЛИТ, Дубна, 22 октября 2006.

7. Использование CUDA в некоторых физических приложениях, ОИЯИ, ЛИТ, Дубна, 23 октября 2009.

8. Компьютерное моделирование спектрометрического магнита для экспериментальной установки МАРУСЯ, ОИЯИ, ЛИТ, 15 ноября 2007.

9. ATLAS Magnetic Field Workshops, CERN, Geneva, CERN, Switzerland, March 7, 2006.

Основное содержание диссертации опубликовано в 28 отечественных и

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

конференциях:

1. The Particle Accelerator Society of Japan (PASJ), Annual meeting, 5-7 August 2009, Tokai, Japan.

2. The 18th International Conference on Cyclotrons and their Applications Cyclotrons 2007, Laboratori Nazionali del Sud, Giardini Naxos, Italy.

3. The 35th European Cyclotron Progress Meeting (ECPM 2006), Nice, France.

4. The 34th European Cyclotron Progress Meeting (ECPM 2005), VINCA, Belgrade, Serbia.

5. UNISA-JINR Symposium, Skukusa, South Africa, 2007.

6. Параллельные вычислительные технологии (ПАВТ), 29 марта-2 апреля, 2010, Уфа, Россия.

7. XXII Russian Particle Accelerator Conference, Russian Academy of Science, Russian Foundation for Basic Research, Scientific Council of RAS on Charged ParticleAccelerators,

Federal State Unitary Enterprise, 2010.

8. 8 Mathematical Modeling and Computational Physics (MMCP~2009), Laboratory of

Information Technologies, JINR, Dubna, Russia.

9. RuPAC'04, Dubna, Russia.

10. The XX Russian Accelerator Conference (RuPAC2006), Novosibirsk, Russia. U. The XXI Russian Accelerator Conference (RuPAC2008), Zvenigorod, Russia.

12. Конференция по высокопроизводительным вычислениям, 12 октября 2010, U-Star,

Киев.

13. BDO-2006, St.-Petersburg, Russia, BD02002, Saratov, SSU, Russia.

14. XI Международная конференция "Математика, компьютер, образование", ОИЯИ, Дубна, Россия, 2004.

15. XIII Международная конференция "Математика, компьютер, образование", ОИЯИ, Дубна, Россия, 2006.

16. International Conference "Stability and Control Processes", St.-Petersburg, 2005, Russia.

17. Hadron Collider Physics Symposium, Isola d'Elba, Italy, 2007.

. Публикации

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

Структура и объем диссертации

Диссертация состоит из введения, шести глав, заключения и списка литературы. Материал изложен на 418 страницах, включает 22 таблицы, 379 рисунков, содержит 250 библиографических ссылок.

Краткое содержание работы

Во введении дано обоснование актуальности темы диссертации и формулируется цель диссертации, а также приводится ее краткое содержание.

В Главе 1 описан предложенный автором метод параллельной реализации на графическом процессоре (GPU) моделирования и оптимизации динамики пучка в циклотроне. В § 1-2 главы 1 дается описание архитектуры графических процессоров (GPU) и программная модель CUDA (Compute Unified Device Architecture). В §3 главы 1 автором произведено распараллеливание алгоритмов четырех основных вычислительных методов:

• метода оценки потерь частиц пучка на структурных элементах установки (триангуляционный подход);

• метода учета эффекта пространственного заряда пучка;

• метода трассировки частиц пучка во внешних электромагнитных полях;

• метода расчета задач электростатики и магнитостатики.

Суммарное ускорение, полученное в результате применения метода массивно-параллельных вычислений при моделировании динамики пучка с использование стандартного набора параметров моделирования, составило два порядка. Таким образом одна итерация моделирования динамики пучка в циклотроне, занимающая на центральном процессоре (CPU) 2 дня 9 часов стала занимать па графическом процессоре Tesla С1060 -30 минут.

В Главе 2 диссертации предложены методы оптимизации динамики пучка в циклотроне. В §1 главы 2 сформулирована новая постановка задачи отыскания центрированной центральной траектории пучка (1). Задача сведена к минимизации функционата, содержащего в себе информацию о качестве центрирования. Численное решение задачи (1) ищется с использованием параллельных вычислений на GPU. Для поиска глобального минимума функционал вычисляется параллельно в N точках

min F(r0,v0j0),

ro »vo »'о

«V j-tk I...4

где

(?оЛл) = ОьЛЛ) + у1М (пм),

х,=х1(г0,70,10), у, =Л(г0,У0,/0), « = г,у,Аг, г =г(г0,У0,г0,/), у=У(Го,У„,Г0,/),

'ЧОоЛ.'оГ

(Ч ^ V { ^л ^ }

^Ол)=г(г0,у0,г0,^-р———туДг, = _

Дг, = ^ ))-^ (Щ,В(г)), Г, = т0с2 (у (г,)-1), у(у) = 1/ ,

где г =г(?0,у0,г0,г), у=у(г0,у0,(0,») - решения задачи Коши (3).

Л

(1 - -—г = V

ей

= У„

О >

(3)

|н-1

__________

7/ = )

с « « зз [>;

Еигуу !>'>";

Рис. 1 Зависимость среднего радиуса равновесной орбиты от энергии.

зависимость = в (2)

определяется численно для каждого режима

ЦТ

из графиков на рис.1. Величина Ы0 =—-

^Мах

задает минимально возможное число оборотов, а величина Л^.у,,,^)

показывает численно получаемое число оборотов частицы при решении задачи Коши (3). 10

В §2 главы 2 найдено решение задачи (4) о гладком сопряжении центральной траектории инфлектора и циклотрона (см. рис. 2).

Рты{Еи.к)^г!юск((р),

(4)

ТО

Цен^^і^ованнал траектория

пряжение окружностью

Рис. 2 Сопряжение траекторий

АЛЕ„Л) = {х{Т{Еи),Еи,к),у{Т{Еи),Е^к))Г

АВ.)

2

зіп [(2К (Е, ,к) -1) Ь (і, Еу)'Д 5щ \(2К (Е, ,к) +1) Ъ (и £„)]'

2К{Е„к)-\ 2К(Е,Л) + \

У

со»[(2^(Д„*)-1)й(лД,)~| ^\{2К(ЕиЛ) + \)Ь(1,Е„)] 2

ЩЕ„,к)-\ 2К(Еи,к) + 1 +\-АК(Е„к)

Д™<* {<?) = (*с - Р<яя(<р),ус -рвіп (<р))Т, = хр ус= ур-р—,

( "М-КаЛ

I К„А<р) )

Решение поставленной задачи (4) в работе было сведено к трансцендентному уравнению (5) относительно К, которое решается численно, а на рис.3 показана геометрическая интерпретация решения. Зная К, по полученной формуле (6) можно определить А, и следовательно, все остальные параметры инфлектора.

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

поставленной задачи (4) и геометрически виден диапазон возможных изменений параметра ср для оптимизации.

(тгК) = 2Кsin2 (Prinf)± 4K2-l)Rinfsin(Prmf) cos(TIK)

к

- sin{?i*K}

- positive branch of function

■- negative branch of function

Рис. 3 «Графический вид» решения уравнения (4)

Рис. 4 Выбор решения задачи

В §3 главы 2 сформулирована новая постановка задачи Коши (7) для центральной траектории инфлектора (см. рис. 5) с электрическим полем, не являющимся постоянным (см. рис.6).

= д

dt т dt т

\

Eu{x,y,z) Tv;v' 2+vyB

V\lVX+Vy

f

\

V

£ (x,y,z)—, "" ~vxB

dv, <1 г ( \Mli-

dtm V

— = v.jc| . = 0, v I = 0,

f-v H..-°.v,L"0'

Д<р = 0

Иг = ^

, E = -V<z>,

[[М]

5

(V)

Применяя конформное отображение (8) области IV (и, у) на область 1{х,у) (см. рис.7), найдена аналитическая аппроксимация (9) решения краевой задачи о

12

распределении электрического поля вдоль центральной траектории инфлектора, входящей в постановку (7).

Рис. 5 Инфлектор и центральная траектория

—— Analytical solid shape approximation

Рис. б Eu — компонента электрического поля в инфлекторе

z = w + e" (8)

1 + е" (9)

х - и = е"

Рис. 7 Конформное отображение области W на область Ъ

Зависимость и(х) в (9) является однозначной, гак как определяется пересечением

прямой х-и и экспоненты е". На рис. 9 показано сравнение аппроксимации (9) (черный цвет) с численным решением (красный цвет) трехмерной задачи электростатики для случая обрезания концов электродов инфлектора на 4 мм (см. рис.8).

Используя полученное выражение для электрического поля (9), было найдено решение задачи (7) в виде (10).

Рис. 8 Конфигурация инфлектора с величиной обрезания электродов инфлектора: 0 мм и 4 мм

-20 "10 0

Lenght, [mm]

- Analytical approximation

- Solid shape

- Calculated field

Рис. 9 Сравнение электрических полей

v(t) = V r(t) = r0 + jv(r)dr

sin(0(Kf))sin(/?i) sm(o(n))cos(jBt) -cos(®(Ki))

где Ф(,?) =-r- fEadU /3= — . Отметим, что

mV J m

\Еи<И=и(х)-и(х0).

В §4 главы 2 сформулирована новая постановка задачи обратной трассировки частиц (11)-(13):

Пи = Ki cos > гм sin <Рм>Г . =<»,+| = ' F0>70. 'о - известны,

(11)

где - решения задачи Коши (12)

Г = V,

(12)

г =Я, у =7..

Суммарное электрическое поле в центральной области представимо в виде:

"ж -

я«** = £ ^ >Л+1>М> (13)

1=0

Важным отличием новой постановки (11) - (13) от классического алгоритма обратной трассировки является построение численной базы данных реалистичных трех мерных электрических полей Ёт ускоряющих зазоров различной конфигурации (см. рис.10).

Рис. 10 Конфигурация ускоряющего зазора и соответствующее ему распределение модуля электрического поля в медианной плоскости

На рис. 11 показан результат решения задачи (11)-(13) для установки УШСУ (Белград, Сербия). Для каждого режима ускорения: Н~, Щ, НеАг£ находится оптимальное положение ускоряющих зазоров, после чего находится усредненное положение зазоров по всем ускорительным режимам. Следующий шаг - создается

15

трехмерная геометрия (см.рис.12). По данной геометрии вычисляется электрическое поле и производится трассировка всех режимов ускорения. На рис. 13 дано сравнение новой и старой конфигурации центральной области.

Рис. 11 Построение геометрии центральных электродов

Рис. 12 Новая оптимизированная геометрия центральной зоны

V- С

/Л V.

Рис.13 а,б Сравнение конфигураций: а) до оптимизации б") после оптимизации

В Главе 3 рассматриваются различные варианты тестирования и оценки точности численного решения нелинейной задачи учета эффекта пространственного заряда пучка. При численном решении используется метод «частица в ячейке» (Р1С) или «частица на частицу» (РР). В случае однородно заряженного шара с нулевой начальной скоростью на рис. 14 приведено сравнение численного и аналитического решения (14):

А

где р„ - начальная плотность частиц в шаре радиуса Я^, у Уравнение (14)

тЕй 3

описывает эволюцию функции плотности заряда внутри шара.

EUdh». [m]

Рис. 14 Начальное и конечное распределение плотности частиц в шаре

В главе 4 произведены расчеты электромагнитных полей, используемых при моделировании динамики пучка в ускорительных системах. В §1 главы 4 получено распределение магнитного поля в секторах 12-14 установки ATLAS, LHC, CERN (Женева). В §2 главы 4 произведены расчеты электромагнитных полей линии инжекции пучка в установке AVF RIKLEN циклотрон (RIKEN, Япония). Рассчитано электрическое поле банчера, магнитные поля глейзеровских линз (Glazer lens), электрическое поле инфлектора, электрическое поле центральных электродов ускоряющей системы для второй гармоники. В §3 главы 4 получены распределения магнитных полей спектрометрических магнитов установок: NIS, MARUSYA (ОИЯИ, Дубна, Россия).

Глава 5 содержит описание созданной автором программы CBDA (Cyclotron Beam Dynamics Analysis). Программа CBDA написана для моделирования динамики пучка в циклотроне, она имеет дружественный интерфейс и включает в себя моделирование основных узлов циклотрона:

• линии инжекции

• инфлектора

• циклотрона

• выводной системы

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

В §1 главы 5 приведено описание структуры программы CBDA, а также основных численных алгоритмов, реализованных в программе. Приведены примеры тестовых расчетов-сравнений с известными программами. В §2 главы 5 создан параллельный вариант программы CBDA, позволивший реализовать предложенный в работе метод массивно-параллельных вычислений на GPU в комплексной оптимизации динамики пучка в циклотроне.

В Главе 6 рассмотрена комплексная оптимизация динамики пучка в ускорительных установках и сформулированы полученные результаты по ее применению. В §1 главы 6 на основе предложенного в работе оптимизационного подхода получена и реализована на практике новая геометрия центральных электродов ускоряющей системы для A VF RIKEN циклотрона (RIKEN, Япония) для второй гармоники. Полученная конфигурация рассчитана на ускорение в четырех режимах: 14N5+ (7МэВ/нукл.), 1б07+ (11 МэВ/нукл.), 1607+ (12 МэВ/нукл.), 1607+ (14 МэВ/нукл.). В §2 главы 6 получена оптимальная геометрия центральной области для циклотрона VINCY (Белград, Сербия). В §3 главы 6 проведено моделирование динамики пучка таможенного циклотрона Custom Cyclotron (Лос-Аламос, США) для обнаружения взрывчатых веществ на таможне. В данной работе была получена геометрия центральной области и произведен расчет линии транспортировки заряженных частиц в накопительное кольцо. В §4 главы 6 на основе метода массивно параллельных вычислений на GPU получены параметры линии инжекции медицинского синхротрона (ЛФВЭ, ОИЯИ, Россия) для проведения пучка углерода с током от 0 до 100 мА.

Основные результаты, полученные в диссертации:

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

2. Сформулированы и решены новые математические постановки задач комплексного моделирования и оптимизации динамики пучка в циклотроне:

• учета потерь частиц (предложен новый подход - триангуляционный подход)

• новая задача обратной трассировки частиц

18

• задача о гладком сопряжении траекторий инфлектора и циклотрона (получено аналитическое решение)

• новая задача определения формы инфлектора (получено аналитическое решение с учетом краевого электрического поля инфлектора)

• задача центрирования центральной траектории пучка (новая математическая постановка)

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

4. На основе предложенного подхода произведено комплексное моделирование и оптимизация установок:

• Секторов 12-14, ATLAS, LHC, CERN, Женева;

• AVF RIKEN Cyclotron (RIKEN, Япония);

• VINCY Cyclotron (Белград, Сербия);

• Custom Cyclotron (Лос-Аламос, CILIA);

• NIS и MARUSYA (ЛФВЭ, ОИЯИ, Дубна).

Список публикаций автора по теме диссертации

1. Перепелкин Е.Е. Аналитическая модель краевого поля инфлектора в циклотроне. Журнал "Математическое моделирование", т.24, №3, с.48-64, 2012.

2. Перепелкин Е.Е. 3-х мерная математическая модель оптимизации центральных электродов циклотрона. Вестник РУДН, "Математика. Информатика. Физика.", №4. с. 96-106, 2011.

3. Перепелкин Е.Е., Юдин И.П.,. Использование параллельных вычислений на графических процессорах при исследовании пропускной способности канала транспортировки пучка ионов с учетом пространственного заряда. Вестник СПбГУ, т.Ю, №3, с.103-112, 2012

4. Перепелкин Е.Е., Юдин И.П., Тютюнников С.И., Использование среды программирования CUDA при моделировании линии инжекции пучка ионов с учетом пространственного заряда. Письма в ЭЧАЯ, т.8, №6(169), с. 989-995, 2011.

5. Перепелкин Е.Е., Смирнов СЛ., Ворожцов С.Б., Использование технологии NVIDIA CUDA для расчета динамики пучков заряженных частиц, Вестник РУДН, "Математика. Физика. Информатика", с.76-82, N1, 2010.

6. Жидков Е.П., Перепелкин Е.Е., Ворожцов С.Б., Моделирование спирального инфлектора и центрирования орбит в компактном циклотроне. Журнал "Математическое моделирование", pp. 704-711, Vol. 1, No 6, 2009.

7. Thomas J. Т. Kwan, Richard E. Morgado, Tai-Sen F. Wang, B. Vodolaga, V. Terekhin, L. M. Onischenko, S. B. Vorozhtsov, E. V. Samsonov, A. S. Vorozhtsov, Yu. G. Alenitsky, E. E. Perpelkin, A. A. Glazov, D. L. Novikov, V. Parkhomchuk, V. Reva, V. Vostrikov, V. A. Mashinin, S. N. Fedotov, S. A. Minayev. The development of enabling technologies for producing active interrogation beams. Rev. Sci. Instrum. 81, 103304, 2010.

8. Р.В.Полякова, Е.Е.Перепелкин, Т.В.Шаврина, И.П.Юдин, Расчеты распределения поля спектрометрического магнита, Письма в ЭЧАЯ, т.З, №7(136), с. 74-77, 2006.

9. A.A.Baldin, Е. Е. Perepelkin, V. L. Smirnov, and I. P. Yudin, Mathematical Modeling of Field Distribution of SP_57 Magnet for MARUSYA Experiment, ISSN 1547_4771, Physics of Particles and Nuclei Letters, Vol. 7, No. 1, pp. 51-56,2010.

10.1.P. Yudin, I.G. Voloshina, E.E. Perepelkin, and N.S. Rossiyskaya, Numerical Experiment for Obtaining the Field Distribution of the NIS Spectrometric Magnet, ISSN 1547-4771, Physics of Particles and Nuclei Letters, Vol. 4, No. 4, pp. 367-376, 2007.

11. E. P. Zhidkov, R. V. Poljakova, I. G. Voloshina, E. E. Perepelkin, N. S. Rossiyskaya, T. V. Shavrina, and I. P. Yudin, Computer Simulation of Spectrometer Magnets for Some Experimental Installations, ISSN 1547-4771, Physics of Particles and Nuclei Letters, Vol. 6, No. 2, pp. 177-179,2009.

12. Amaud, M. Commissioning of the Magnetic Field in the ATLAS Muon Spectrometer / M.Arnaud, E.Perepelkin, A.Vorozhtsov, S.Vorozhtsov [a.o.], HCP 2007: Proceedings of the Hadron Collider Physics Symposium 2007, La Biodola, Isola d'Elba, Italy, May 2026, 2007/ Ed.: Castaldi R. [et al.] .- Amsterdam: Elsevier Science B.V., 2008.-p.265-266 .- Bibliogr.:3.

13. A.A.Baldin, I. G. Voloshina, E. E. Perepelkin, R. V. Polyakova,N. S. Rossiyskaya, Т. V. Shavrina, and I. P. Yudin, Numerical Simulation of the Field Distribution Produced by the SP-40 Magnet of the MARUSYA Setup and Comparison of Simulation Results with Experimental Data, ISSN 1063-7842, Technical Physics, Vol. 52, No. 11, pp. 13971406, 2007.

14. Perepelkin E. and ATLAS collaboration, Commissioning of the magnetic field in the ATLAS muon spectrometer, Nucl.Phys.Proc.Suppl., ISSN:0920-5632, vol. 177-178, pp. 265-266, 2008.

15. T. J. T. Kwan, R. E. Morgado, T. F. Wang, B. K. Vodolaga, V. A. Terekhin, L. M. Onischenko, S. B. Vorozhtsov, A. S. Vorozhtsov, E. E. Perepelkin, E. V. Samsonov, V. Parkhomchuk, V. Reva, V. Vostrikov, V. Shirokov, A. Burdakov, V. A. Mashinin, S. A. Minaev, S. N. Fedotov, Detection of Explosives Using Nuclear Resonance Absorption of Gamma Rays in Nitrogen: A Russian/US Collaboration, Detection of Liquid Explosives and Flammable Agents in Connection with Terrorism, NATO Science for Peace and Security Series B: Physics and Biophysics, 2008, pp 97-116.

16. S.Vorozhtsov, ...A.Vorozhtsov, ...E.Perepelkin, ...etc, The ATLAS Experiment at the CERN Large Hadron Collider, Aad, JINST 2008, S08003, vol.3, p.437.

17. E. E. Perepelkin, A. S. Vorozhtsov, S. B. Vorozhtsov, P. Beliiev, V. Jocic, N. Neskovic, B. Radenovic, M. Rajcevic, SPIRAL INFLECTORS AND ELECTRODES IN THE CENTRAL REGION OF THE VINCY CYCLOTRON, Cyclotrons and Their Applications 2007, pp.400-402, Eighteenth International Conference, Laboratori Nazionali del Sud, Giardini Naxos, Italy.

18. S. B. Vorozhtsov, A. S. Vorozhtsov, E. E. Perepelkin, S.Watanabe, S. Kubono, T. Mitsumoto, A. Goto, CALCULATIONS OF THE BEAM TRANSMISSION AND QUALITY IN THE RIKEN AVF CYCLOTRON, Proceedings of RuPAC 2008, pp.5153, Zvenigorod, Russia

19. E. E. Perepelkin and S. B. Vorozhtsov, CBDA - CYCLOTRON BEAM DYNAMICS ANALYSIS CODE, Proceedings of RuPAC 2008, pp.41-42, Zvenigorod, Russia

20. E.E. Perepelkin, A.S. Vorozhtsov, S.B. Vorozhtsov and L.M. Onischenko, BEAM DYNAMICS SIMULATIONS FOR THE CUSTOMS CYCLOTRON, Proceedings of RuPAC 2006, pp. 348-350, Novosibirsk, Russia

21. S.B.Vorozhtsov, E.E.Perepelkin, A.S.Vorozhtsov, DYNAMICAL PROPERTIES OF THE ELECTROMAGNETIC FIELD OF THE CUSTOMS CYCLOTRON, Proceedings of RuPAC XIX, pp.135-137, Dubna 2004

22. S. B. Vorozhtsov, E. E. Perepelkin, A. S. Vorozhtsov, P. Belicev, N. Neskovic, M. Rajcevic, ION BEAM DYNAMICS SIMULATIONS FOR THE VINCY CYCLOTRON, Proceedings of RuPAC 2006, pp.316-318, Novosibirsk, Russia

23. S.B.Vorozhtsov, L.M, Onischenko and E.E.Perepelkin, CUSTOMS CYCLOTRON AND BEAM DELIVERY SYSTEM, Cyclotrons and Their Applications 2007, pp.421-423, Eighteenth International Conference

24. Sergey Vorozhtsov, Evgeny Perepelkin, Alexey Vorozhtsov, Shin-ichi Watanabe, Shigeru Kubono, Akira Goto, BEAM SIMULATIONS IN COMPUTER-MODELLED

3D FIELDS FOR RIKEN AVF CYCLOTRON UPGRADE, Proceedings of Particle Accelerator Society Meeting 2009, JAEA, pp.240-243, Tokai, Naka-gun, Ibaraki, Japan

25. S. B. Vorozhtsov, A. S. Vorozhtsov, E. E. Perepelkin, S. Watanabe, S. Kubono, Y. Ohshiro, T. Mitsumoto and A. Goto, Beam Simulation of RIKEN K78 AVF Cyclotron ISSN:1343-2230, pp.57-78, CNS-REP-76, 2006, University of Tokyo.

26. Perepelkin E. and RIKEN collaboration RIKEN, Computer modelling of the Nitrogen, Oxygen, and Proton acceleration in RIKEN AVF Cyclotron, Accelerator Progress Report, vol.42, 2009.

27. Perepelkin E. and RIKEN collaboration RIKEN Accelerator, Calculations of the beam transmission and quality in the RIKEN AVF Cyclotron, Progress Report, vol.4l,p.92, 2007.

28. Российская H. С., Перепелкин E. E., Полякова P. В., Шаврина Т. В., Юдин И. П., Математическое моделирование поля спектрометрического магнита установки «МАРУСЯ», XI Международная конференция "Математика, компьютер, образование", МКО — 2006, т. 2, стр. 178-186.

Цитируемая литература

1. ATLAS Technical Proposal for a General-Purpose pp Experiment at the Large Hadron Collider at CERN. CERN/LHCC/94-43. LHCC/P2. 15 December 1994.

2. E. O. Lawrence and M, L. Livingston. Phys. Rev., 37, 1707, 1931.

3. http://wvAv.nvidia.com, официальный сайт компании NVIDIA.

Подписано к печати 4-. 0-4-ЛЯ Тмрпк {00 Заудэ

Отпснаттино а отделе оперзтнлнон печати фкзнмескапз ср^-куллтста МГУ

Текст работы Перепёлкин, Евгений Евгеньевич, диссертация по теме Математическое моделирование, численные методы и комплексы программ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ М.В. ЛОМОНОСОВА

ПЕРЕПЕЛКИН Евгений Евгеньевич

КОМПЛЕКСНОЕ МОДЕЛИРОВАНИЕ И ОПТИМИЗАЦИЯ УСКОРИТЕЛЬНЫХ СИСТЕМ НА ГРАФИЧЕСКОМ ПРОЦЕССОРЕ

(GPU)

Специальность 05.13.18 - математическое моделирование, численные методы и комплексы программ

Диссертация на соискание ученой степени доктора физико-математических наук

Физический факультет

На правах рукописи

0520iSo0S70

МОСКВА 2013

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 4

ГЛАВА 1 МЕТОД МАССИВНО ПАРАЛЛЕЛЬНОГО 80 ПРОГРАММИРОВАНИЯ НА ГРАФИЧЕСКИХ ПРОЦЕССОРАХ (GPU)

§1.1 Архитектура графических процессоров (GPU) 80

1.1.1 Введение: особенности GPU архитектуры

1.1.2 Архитектура GPU: Tesla 8, Tesla 10, Tesla 20 (Fermi)

§1.2 Программная модель CUDA 87

1.2.1 Введение: гибридная модель программного кода

1.2.2 Понятие потока, блока, сети блоков

1.2.3 Функция-ядро, как параллельный код на GPU

1.2.4 Особенности работы с различными типами памяти

1.2.5 Компиляция программы на CUDA

§1.3 Метод массивно-параллельного программирования на GPU в 102

задачах динамики пучка с использованием среды CUDA

1.3.1 Проблема оценки потерь пучка

1.3.2 Проблема учета эффекта пространственного заряда

1.3.3 Задача трассировки пучка

1.3.4 Расчет электромагнитных полей

ГЛАВА 2 МЕТОДЫ ОПТИМИЗАЦИИ ДИНАМИКИ ПУЧКА В 140 ЦИКЛОТРОНЕ

§2.1 Проблема поиска начальных условий для центрированной 146

траектории

§2.2 Оптимизация параметров инфлектора 152

§2.3 Оптимизация краевого поля инфлектора 162

§2.4 Оптимизация центральной области на основе метода «обратной 178

трассировки» пучка

ГЛАВА 3 АНАЛИЗ ЭФФЕКТА ПРОСТРАНСТВЕННОГО ЗАРЯДА 186

§3.1 Модельная DV - постановка задачи учета эффекта 187

пространственного заряда

3.1.1 Постановка задачи

3.1.2 Решение в системе центра масс

3.1.3 Построение решения

3.1.4 Задача однородно заряженного шара

§3.2 Численное решение DV - задачи 208

3.2.1 Порядок аппроксимации решения

3.2.2 Задача с первым порядком аппроксимации по времени

3.2.3 Задача со вторым порядком аппроксимации по времени

§3.3 pV - постановка задачи учета пространственного заряда 227

3.3.1 Постановка задачи

3.3.2 Построение решения

§3.4 Численное решение pV - задачи 233

3.4.1 Разностная схема

3.4.2 Пример численного решения модельной задачи

ГЛАВА 4 РАСЧЕТ ЭЛЕКТРОМАГНИТНЫХ ПОЛЕЙ В 242

УСКОРИТЕЛЬНЫХ УСТАНОВКАХ

§ 4.1 Оценка вклада поля магнитных элементов в секторе S12-14 242

установки ATLAS, CERN (Женева, Швейцария)

§ 4.2 Расчет электромагнитных полей в установке AVF RIKEN 278

циклотрон, RIKEN, Япония

4.2.1 Линия инжекции: соленоиды, банчер, инфлектор

4.2.2 Электрическое поле центральной области

§ 4.3 Магнитные системы установок ОИЯИ, Дубна, Россия 285

4.3.1 Спектрометрический магнит SP-40 (установка NIS)

4.3.2 воротный магнит SP-57 (установка MARUSYA)

ГЛАВА 5 АВТОМАТИЗАЦИЯ КОМПЛЕКСНОЙ ОПТИМИЗАЦИИ 301

ДИНАМИКИ ПУЧКА В ЦИКЛОТРОНЕ

§5.1 Программа CBDA 301

5.1.1 Структура программы

5.1.2 Тесты, примеры.

§5.2 Параллельная версия CBDA 325

5.2.1 Использование ОрепМР

5.2.2 Гибридный подход CPU+GPU на основе CUDA

ГЛАВА 6 ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ ДИНАМИКИ ПУЧКА 335

§6.1 RIKEN AVF циклотрон, RIKEN, Япония 335

§6.2 VIN С Y циклотрон, Белград, Сербия 371

§6.3 Таможенный циклотрон, Лос-Аламос, США 380

§6.4 Проект медицинского синхротрона ОИЯИ, Дубна, Россия 392

ЗАКЛЮЧЕНИЕ 395

ЛИТЕРАТУРА 399

ВВЕДЕНИЕ

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

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

• Tianhe - 1 A, Tianjin National Supercomputing Center, Китай

• Jaguar, Oak Ridge National Lab, США

• Nebulae, National Supercomputing Center Shenzhen, Китай

• Tsubame 2.0, Tokyo Institute of Technology, Япония

• Hopper II, NRSC, США

• Тега 100, Essonne, Франция

ЭООО г В

Рис. 1 Производительность и потребляемая мощность шести самых мощных суперкомпьютеров в мире на 2011 год.

На графике левый сдвоенный столбик соответствует производительности суперкомпьютера, а правый - потребляемой мощности. На фотографии рис.1 показан общий вид суперкомпьютерного кластера.

Три из приведенных на рис.1 кластера: Tianhe - 1А, Nebulae, Tsubame 2.0, - имеют гибридную архитектуру. Гибридная архитектура включает в себя наряду с классическими центральными процессорами CPU (Central Processor Unit) современные графические процессоры GPU (Graphics Processor Unit), позволяющие производить массивно-параллельные вычисления.

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

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

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

связанные с графикой, но и задачи чисто вычислительного характера. Так

появилось понятие графического процессора GPU (Graphics Processing Unit).

/

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

Параллельные вычисления на GPU основываются на принципе, состоящем в переносе «центра тяжести» вычислений с центрального процессора CPU на графический процессор GPU. Изначально GPU процессоры были ориентированны на работу с графикой, что привело к большому числу ядер на кристалле. Ядра GPU имеют меньшую мощность, чем ядра CPU. Однако, количество ядер в одном GPU на порядки превышает количество ядер в CPU. Например, GPU NVIDIA Tesla С2070 имеет 512 ядер, в то время, как CPU Intel Xeon имеет 6 ядер.

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

Вследствие такой особенности и распределение памяти у CPU и GPU выглядит по-разному. На CPU существенную часть кристалла занимает память (cache), необходимая для обеспечения непрерывной работы ядер процессора, т.к. ядра работают намного быстрее, чем происходит доступ в глобальную память (RAM). На графическом процессоре, большую часть кристалла занимают именно вычислительные ядра. Поэтому основным искусством оптимизации программного кода на GPU является умение сбалансировать загрузку вычислительных ядер со временем обращения в память видеокарты.

За последние годы (2006-2011) графические процессоры компании NVIDIA очень быстро эволюционировали по пиковой производительности вычислений и по пиковой пропускной способности памяти (см.рис.2).

Рис. 2 Развитие GPU архитектуры

Такой рост сопровождался появлением новых архитектур GPU: Tesla 8, Tesla 10, Tesla 20 (Fermi).

Вычислительные модули Tesla делятся на две категории: Tesla С и Tesla S. Маркировка «С»-соответствует одной видеокарте (Card), которая содержит один GPU, маркировка «8»-означает серверный (Server) вариант, такой вычислительный модуль содержит 4 видеокарты, т.е. суммарно 4 графических процессора (GPU). На рис.3 показана модель Tesla С 1060 и Tesla S 1070.

Вычислительный модуль Tesla С устанавливается в обычный персональный компьютер в PCI-E разъем, a Tesla S предназначен для установки в серверную стойку, поэтому имеет форм фактор 1U.

Рис. 3 Вычислительные модули Tesla С1060 и Tesla SI070

Рассмотрим архитектуру GPU подробнее. На рис.4 приведена архитектура Tesla 10. Основным вычислителем на GPU является потоковый мультипроцессор (SM: Streaming Multi-processor). На Tesla 10 количество SM -30 штук. Мультипроцессоры (SM) объединены в блоки по три SM, которые называются ТРС (Texture Processor Cluster). Всего на Tesla 10-10 таких ТРС.

Каждый SM содержит: 8 скалярных ядер (SP), разделяемую память (shared memory), блок для работы с двойной точностью (DP: Double Precision), два блока для работы со специальными функциями (sin, cos, sqrt, 1/х и т.д.) (SFU: Special Function Unit), блок для работы с константной памятью (constant memory), регистровый файл (register file) и доступ к текстурным блокам (Texture unit). Вне SM есть доступ к глобальной памяти

Рис.4 Архитектура Tesla 10 (global memory), а также через PCI-E шину можно обращаться к памяти расположенной на материнской плате.

Архитектура Tesla 8 похожа на Tesla 10, но имеет ряд отличий:

• на SM отсутствует блок для работы с двойной точностью (DP);

• меньший размер регистрового файла (8 192 -32 битных регистров, вместо 16 384 на Tesla 10);

• в одном ТРС - 2 SM;

• количество ТРС - 8;

• отличия, связанные с СС (Compute Capability).

В результате, на Tesla 8 находится 8(SP)*2(SM)*8(TPC)=128 вычислительных ядер, а на Tesla 10 - 8(SP)*3(SM)*10(TPC)=240 вычислительных ядер.

Umt олпСяс Ги?

Рис.5 Архитектура Tesla 20 (Fermi)

На рис.5 показана архитектура Tesla 20 на базе GPU Fermi. Каждый SM содержит 32 вычислительных ядра. Группа из четырех SM образует GPC. Количество GPC - 4, что дает 16 мультипроцессоров SM. Общее количество вычислительных ядер на GPU (Fermi) - 32(SP)*4(SM)*4(GPC)=512. В отличие от Tesla 10 архитектура Tesla 20 имеет ряд отличий: • все вычислительные ядра работают с двойной точностью;

• имеется два планировщика вычислительных потоков (на предыдущей архитектуре Tesla 10 только один);

• добавлен новый кэш (LI cache) первого уровня LI ;

• размер разделяемой памяти (shared memory) вместе с LI кэшем (LI cache) может варьироваться (16/48 КБ);

• появилась возможность одновременного асинхронного копирования данных с GPU на CPU и CPU на GPU;

• есть встроенный планировщик запуска задач на GPU;

• увеличен размер регистрового файла (32 768 - 32 битных регистра вместо 16 384 на Tesla 10 и 8 192 на Tesla 8)

• имеется поддержка операции коррекции ошибок памяти (ЕСС: Error-Correcting Code);

• увеличен размер L2 кэша (L2 cache) до 768 КБ для доступа в глобальную память видеокарты (global memory);

• ~2 раза увеличена полоса пропускная памяти (GDDR5);

• адресное пространство памяти расширено до 1 ТВ;

• увеличен размер глобальной памяти (global memory) до 6 Гб (на Tesla 10-4 ГБ)

В 2012 году компанией NVIDIA планируется выпуск следующей архитектуры Kepler, а далее Maxwell.

Отметим, что на GPU количество одновременно работающих вычислительных потоков может существенно превышать количество вычислительных ядер.

Например, на Tesla С1060 количество вычислительных ядер 240, а для полной вычислительной загрузки ей требуется около 30 000 вычислительных потоков.

Такая ситуация возможна благодаря встроенному планировщику потоков (scheduler). Если какое то вычислительное ядро «простаивает» из-за ожидания данных из памяти для вычислительного потока с номером «i»,

10

планировщик может назначить данному вычислительному ядру обработку потока с номером «j». Такое перераспределение загрузки производится на «железном» уровне, упрощая работу программиста.

Для работы с GPU требуется специальный API (Application Programming Interface) от степени его проработки и удобства зависит перспективность использования GPU для высокопроизводительных вычислений.

На сегодняшний день на рынке существуют два основных производителя GPU: AMD и NVIDIA. Однако, только у NVIDIA на сегодняшний день имеются решения Tesla для высокопроизводительных кластерных систем.

В 2006 г. компанией NVIDIA была разработана программно-аппаратная модель CUD A (Compute Unified Device Architecture). Программно-аппаратный стек CUDA формально можно представить в виде таблицы, изображенной на рис.6

GPU Computing Applications - 1

Libraries and Middlewai

IS.PÏck C,,RA"D magma cuSPARSE ""дьмд

С++ С Fortran Java _. Python rD,rect, Wrappers Compute OpenCL

NVIDIA GPU 1 j CUDA Parallel Computing Architecture

Рис. 6 Архитектура CUD А.

На самом «нижнем» уровне находится сам процессор GPU с необходимой для его работы программой-драйвером. «Выше» идут различные среды программирования (С, С++, Fortran, Java, Direct Compute,

OpenCL и другие), с помощью которых можно писать приложения на GPU. Дальше идут готовые библиотеки (cuFFT, cuBLAS, cuRAND, cuSPARS и другие), которыми можно пользоваться в своих собственных программах, не вдаваясь в тонкости работы GPU. Последним уровнем являются собственные приложения, которые пишет пользователь, при этом не исключена возможность использования готовых библиотечных функций.

Программа, написанная под GPU, имеет гибридную структуру (см. рис.7), то есть она состоит как из последовательных блоков кода, выполняемых на центральном процессоре (CPU), так и из параллельных блоков кода, выполняемых на графическом процессоре (GPU). Вызов параллельных блоков производится «функцией-ядром» (kernel function).

Последовательный > код <

Параллельное ядро А KernelA«< nBlk, nTid >»(args);

Последовательный код

Параллельное ядро В KernelB«< nBlk, nTid >»(args);

Рис.7 Гибридная структура кода.

При программировании на GPU используются понятия «host» и «device». Идентификатором «host» отмечается все, что относится к х86 архитектуре: переменные, память, функции и т.д. Идентификатором «device» помечается все, что относится к GPU: переменные, память, функции, и т.д.

Параллельная часть программного кода выполняется на GPU по средствам огромного (порядка 30 ООО) количества вычислительных потоков/нитей (threads). Потоки группируются в блоки, как показано на рис.7. Блоки группируются в сеть блоков. Блоки выполняются независимо друг от друга. Нити (threads) внутри блока могут быть синхронизованы. Блок

целиком выполняется на одном потоковом мультипроцессоре SM (Streaming Multi-processor). На одном мультипроцессоре (SM) одновременно может выполняться несколько блоков.

В зависимости от мощности видеокарты на ней распложено разное число мультипроцессоров SM. При переносе программного кода с одной видеокарты «А» (малой вычислительной мощности, малым число SM) на другою «В» (большей вычислительной мощности, большим числом SM) нет необходимости в принципиальном переписывании программного кода (см.рис.8).

Устройство А

SM SM

1,------ч Блок ЛИ

\\ri /г J

Блок Блок

швШШЯШШШШШШ

.т Т 1|

Сетка блоков

Блок 0 Блок 1

БЛОК 2 Блок 3

Блок 4 Блок 5

Блок в 3 Блок 7

■Hi

Устройство В

* SM SM SM SM

-4 . и.

Г; Блок 1 Блок к г Блок 1 3

Блок I 4 Блок 5 J Блок А 1 J

Рис. 8 Запуск блоков на различных GPU

Как видно из рис.8 более мощная видеокарта «В» выполнит тот же самый код, только за меньшее время, что показывает хорошую масштабируемость (scaling factor) архитектуры графических процессоров (GPU).

Разбиение вычислительных потоков на блоки открывает дополнительные возможности в распараллеливании алгоритма. Например, каждая нить в блоке может делать параллельно свою задачу, а нити из другого блока делать другую задачу. При этом нити одного блока могут использовать совместно свою часть разделяемой памяти (shared memory). В

результате, возможен параллелизм по нитям внутри блока, и по блокам внутри сети (grid) блоков.

С другой стороны разбиение на блоки необходимо из-за ограниченного количества одновременно запущенных на GPU вычислительных потоков.

Каждая нить (thread) на GPU имеет свой идентификационный номер, который зависит от номера внутри блока (threadldx), от номера блока в котором находится нить (blockldx), и от размера блока (DimBlock).

threadID = threadldx.х + blockldx.х * DimBlock.х (1)

Переменные threadldx, blockldx, DimBlock являются векторными величинами, и в общем случае характеризуются тремя индексами, например, threadldx.x, threadldx.y, threadldx.z. Многомерная структура сети блоков и нитей полезна при работе с многомерными данными, например, при работе с матрицами.

Важным моментом при программировании на графическом процессоре (GPU) является сбалансированность вычислительной нагрузки и времени обращения в память видеокарты. Поэтому особое внимание уделяется методам работы с различными типами памяти CUDA. В таблице 1 приведены основные типа памяти видеокарты.

Таблица 1. Типы памяти в CUD А

Тип памяти Доступ Уровень выделения Скорость работы

Register (регистровая) R/W Per-thread Высокая (on-chip)

Local (локальная) R/W Per-thread Низкая (DRAM)

Shared (разделяемая) R/W Per-block Высокая (on-chip)

Global (глобальная) R/W Per-grid Низкая (DRAM)

Constant (константная) R/0 Per-grid Высокая (LI cache)

Texture (текстурная) R