Научная статья на тему 'Особенности численного решения эволюционных задач распространения коротких лазерных импульсов на системах архитектуры numa'

Особенности численного решения эволюционных задач распространения коротких лазерных импульсов на системах архитектуры numa Текст научной статьи по специальности «Математика»

CC BY
50
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
NUMA / ПРОГОНКА / ВОЛНОВОЕ УРАВНЕНИЕ / СВЕРХКОРОТКИЙ ИМПУЛЬС

Аннотация научной статьи по математике, автор научной работы — Фадеев Д. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Фадеев Д. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Особенности численного решения эволюционных задач распространения коротких лазерных импульсов на системах архитектуры numa»

Южный федеральный университет, кафедра алгебры и дискретной математики, Ростов-на-Дону; научный сотрудник; E-mail: [email protected]

Южный федеральный университет, кафедра алгебры и дискретной математики, Ростов-на-Дону; программист; E-mail: [email protected] Южный федеральный университет, кафедра алгебры и дискретной математики, Ростов-на-Дону; младший научный сотрудник; E-mail: [email protected]

Южный федеральный университет, кафедра алгебры и дискретной математики, Ростов-на-Дону; научный сотрудник; E-mail: [email protected]

Южный федеральный университет, кафедра алгебры и дискретной математики, Ростов-на-Дону; ассистент; E-mail: [email protected]

Поступила в редакцию 15.05.11 г.

УДК 004.021, 004.252, 004.75

Д. А. Фадеев

ОСОБЕННОСТИ ЧИСЛЕННОГО РЕШЕНИЯ ЭВОЛЮЦИОННЫХ ЗАДАЧ РАСПРОСТРАНЕНИЯ КОРОТКИХ ЛАЗЕРНЫХ ИМПУЛЬСОВ НА СИСТЕМАХ АРХИТЕКТУРЫ NUMA

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

Ключевые слова: NUMA, прогонка, волновое уравнение, сверхкороткий импульс.

Архитектура NUMA (Non Uniform Memory Access) определяет класс параллельных вычислительных систем с логически общей, но физически раздельной памятью [1]. Существует достаточно много вариантов реализации такой архитектуры. В частности, компания Advanced Micro Devices ввела подход, при котором чипы RAM подключаются непосредственно к чипу CPU, содержащему встроенный контроллер памяти. В случае использования MultiCPU-платформ каждый CPU подключается к своему набору планок RAM. При этом память остается логически общей благодаря наличию шины HyperTransport, имеющей существенно больший пропускной канал, чем связка CPU-RAM. Более того, серверные процессоры AMD имеют N-1 Hyper Transport каналов (N — число процессоров (чипов) в одном вычислительном узле (материнской плате)) и каждый чип CPU соединен с каждым. Таким образом, достигается реализация логически общей памяти. При этом скорость доступа данного CPU к памяти любого нода (связки СPU-RAM) одинакова, если требуемая память не занята другим запросом. Таким образом, в NUMA ширина канала увеличивается во столько же раз, сколько нодов имеется на вычислительном узле. В настоящее время архитектура NUMA поддерживается и на персональных компьютерах, в частности, использующих платформу Nehalem [2].

В настоящей статье рассматриваются особенности реализации задачи эволюционного (по координате z) численного моделирования распространения лазерного импульса A(z, т,r) с широким спектром:

Виктор Владимирович Петренко —

Иван Сергеевич Скиба —

Василий Николаевич Шаповалов —

Роман Борисович Штейнберг —

Олег Борисович Штейнберг —

Рекомендована НИИ НКТ

90

Д. А. Фадеев

2 д2 A 1 д ( дА Л п

--+--1 r— I = 0.

c dxdz r dr l дг )

(1)

Такое соотношение может быть получено из уравнений Максвелла для условий малоуглового распространения короткого импульса вдоль оси г , где т = I - г/с - сопутствующее время. В фурье-пространстве уравнение (1) перейдет в следующее:

Ж ^ - (2)

2 дВ 1 д

—гш--1---1 r —

c дх r дr l дr

= 0,

которое, в свою очередь, аппроксимируется посредством Ыт независимых конечно-разностных уравнений:

яг?

[0,Мт -1], (3)

дВ

-гшп — + LB = 0, п дх

n |

где оператор L аппроксимирует дифференциальный оператор в соотношении (2). Данный оператор может быть записан в трехдиагональном виде как обобщение обычного двумерного пятиточечного лапласиана. Уравнение (3) решается численно методом Крэнка—Никольсона для каждой гармоники шп.

С точки зрения эффективного использования архитектуры NUMA элементы массива A(r, т j) целесообразно расположить так, чтобы соседние элементы по второй (временной)

координате оказались соседними в памяти. Это удобно для выполнения преобразования Фурье, которое при таком размещении данных может выполняться построчно. Пусть далее в системе есть Nnuma нодов, тогда все массивы A, B размером NR х NT разбиваются на

Nnuma отдельных частей размером ((/Nnuma )х Nt . На рисунке, а представлено параллельное выполнение преобразования Фурье; б — первая часть прогонки (прямая прогонка) с конфликтом памяти; в — прямая прогонка без конфликта памяти. Для выполнения преобразования Фурье по строкам достаточно запустить Nnuma независимых нитей — thread (а). В соответствии с предложенным расположением массивов в памяти соседние по r элементы оказываются удалены на Nt элементов в памяти. Более того, элементы из разных подмасси-вов оказываются на разных нодах, поэтому простейший цикл по столбцам матрицы B, реализуемый при выполнении прогонки, оказывается неоптимальным, так как при этом физические процессоры будут синхронно обращаться к памяти одного нода, как это представлено на рисунке, б.

а) б) в)

' ncdep llCPL'ot ICPUlI'.CPU

n octet I

о z

CPUo

CPU i

CPU'

CPU;

...... Ш1

i

.....;1 пит

J I :' I ( ( I I

ш ((({(((

Выходом в данном случае может быть „лестничная" процедура, представленная на рисунке, в. Процесс прямой прогонки (обнуление одной из боковых лент матрицы обращаемого оператора) можно начинать выполнять на одном ядре (СРИ0), после того как элементы

Б(г0,т0),..., /ncpu,то) обработаны, можно переходить к обработке элементов

B(r0,ij),..., В(гд^ /ncpu,Tj), а CPUi может начать обработку элементов

b(?nr/ncpu,To),..., B(r2nr/ncpu-1,To). Таким образом, все члены CPU будут задействованы с

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

Для практической реализации предложенной выше процедуры необходима некоторая модификация. Так как обращение к любому элементу памяти, отсутствующему в кэше, вызывает считывание целой кэш-линии первого уровня (Li cache line), следует выполнять модифицированную прогонку, реализующую один шаг с номером i сразу для 16 элементов ( A(ri,tj),..., A(ri,tу+i6)). При этом время ожидания в начале предложенного „лестничного"

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

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

только количество строк Nrk в подмассиве (исходно Nrk = Nr /Ncpv, Vk ). Так как при каждом изменении размера подмассива выделяются и высвобождаются большие объемы памяти, данную операцию следует производить через некоторое, достаточно большое, число эволюционных шагов.

Рассмотренные подходы являются достаточно перспективными благодаря разработке NUMA-систем. На данный момент на рынке широко представлены системы с максимальным числом нодов 2—4. В условиях увеличения числа ядер на один NUMA-нод (до 12 в последних предложениях от AMD) эти системы остаются, на наш взгляд, по-прежнему несбалансированными по соотношению вычислительная производительность—пропускная способность памяти. Эксперименты с вычислительной станцией на базе Intel Nehalem 2 CPU X5550 показали, что увеличение каналов памяти (3 канала в Nehalem) не оправдывает заявленной производительности и при этом не допускает контроля со стороны программиста. В этом смысле использование особенностей NUMA более эффективно, чем применение в рамках модели глобальной общей памяти, разделяемой между ядрами.

СПИСОК ЛИТЕРАТУРЫ

1. A NUMA API for LINUX* 2005 [Электронный ресурс]: <developer.amd.com/assets/LibNUMA-WP-fv1.pdf>.

2. [Электронный ресурс]: <http://download.intel.com/pressroom/pdf/nehalem-ex.pdf>.

Сведения об авторе

Даниил Александрович Фадеев — Институт прикладной физики РАН, отдел нелинейной электродинамики, Нижний Новгород; младший научный сотрудник; E-mail: [email protected]

Рекомендована НИИ НКТ Поступила в редакцию

15.05.11 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.