Статья опубликована в рамках: XLI Международной научно-практической конференции «Экспериментальные и теоретические исследования в современной науке» (Россия, г. Новосибирск, 10 июня 2019 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ РЕАЛИЗАЦИИ РАЗНОСТНОГО РЕШЕНИЯ УРАВНЕНИЙ МАКСВЕЛЛА НА ВЕКТОРНОМ ПРОЦЕССОРЕ
Целью данной работы является реализация на векторном процессоре разностного решения уравнений Максвелла [2], а также исследование эффективности полученной программной реализации.
В качестве векторного процессора будет выступать сопроцессор Intel Xeon Phi SE10/7120 series (rev 20) (Knights Corner generation) [4]. В основе реализации будет использоваться программная реализация [3] FDTD-метода [5] решения уравнений Максвелла с добавлением в него необходимых директив для корректного запуска на сопроцессоре.
Поскольку программная основа уже использует векторные операции в вычислениях, то нет никакого смысла раскрывать их в циклы и распараллеливать. Затраты на инициализацию параллельных потоков для малых задач будут слишком высоки, по сравнению с последовательным выполнением. По этой причине распараллеливание кода будет происходить только в главном цикле по временным слоям при вычислениях по схеме Yee.
Для распараллеливания кода с использованием технологии OpenMP необходимо добавить инструкцию !$omp parallel do до инициализации цикла do и !$omp end parallel do после окончания цикла. Таким образом компилятор автоматически распределит выполнение цикла по потокам процессора. Для того, чтобы задействовать сопроцессор в параллельном коде, необходимо добавить директиву !dir$ offload target(mic) перед инструкцией !$omp parallel do. Таким образом, применяя данную конструкцию для вычислений по схеме Yee, мы получим код следующего вида:
!ВЫЧИСЛЕНИЯ ПО СХЕМЕ YEE
call date_and_time(values = B) !отсчет времени
!dir$ offload target(mic)
!$omp parallel do
do t=1,Nt
!выполнение вычислений
end do
!$omp end parallel do
Для компиляции программы для центрального процессора будем использовать следующий код: ifort -O3 -xHost -parallel -parallel-source-info ./cylindr_time.f90 -o fdtd_cpu.out .
Аналогично и для компиляции программы для сопроцессора:
ifort -O3 -xCORE-AVX2 -qopenmp-offload=mic -qoffload=mandatory -qopenmp -parallel -qoffload-arch=mic -qoffload-attribute-target=mic -align array64byte -par-schedule-auto ./cylindr_time_mic.f90 -o fdtd_mic.out
Тестирование будем проводить на следующей программно-аппаратной базе:
- процессор: Intel(R) Xeon® CPU E5-2699 v4 @ 2,20 GHz (число физических ядер - 22, логических - 44);
- сопроцессор: Intel Xeon Phi coprocessor SE10/7120 series (rev 20) (Knights Corner generation) @1,238 GHz, 16 GB RAM (число физических ядер - 61, логических - 244);
- оперативная память: 0,94 TB;
- операционная система: Linux CentOS 64-bit, версия ядра 3.10.0-693.e17.x86-64;
- программное обеспечение для компиляции исходного кода для сопроцессора: Intel® Parallel Studio XE 2017 For Linux.
Вычислительные эксперименты будем выполнять в линейных размерах области от 50 до 500 при фиксированных значениях параметров Q=50, Qt=100, Qtime=10 сначала на центральном процессоре в одном потоке, затем на центральном процессоре параллельно на максимально доступном числе потоков для центрального процессора (44) и на сопроцессоре Intel Xeon Phi. Линейные размеры области ограничены доступной оперативной памятью для вычислений на сопроцессоре Intel Xeon Phi (16 GB). Результаты вычислительных экспериментов предложены в таблице 1.
Таблица 1.
Результаты вычислительных экспериментов по решению уравнений Максвелла с использованием сопроцессора Intel Xeon Phi и без
Параметры Ly, Lz |
Время на CPU (один поток) |
Время на CPU (все потоки) |
Время на Intel Xeon Phi |
Время CPU (один поток) / Время на Intel Xeon Phi |
Время на CPU (один поток) / Время на CPU (все потоки) |
Время CPU (все потоки) / Время на Intel Xeon Phi |
50 |
22,712 |
1,617 |
1,803 |
12,59678314 |
14,04576376 |
0,89684 |
100 |
99,127 |
13,56 |
3,14 |
31,56910828 |
7,310250737 |
4,31847 |
200 |
368,3 |
47,488 |
15,34 |
24,00912647 |
7,755643531 |
3,0957 |
300 |
822,211 |
104,641 |
43,4 |
18,94495392 |
7,857445934 |
2,41108 |
400 |
1451,907 |
181,66 |
100,46 |
14,45258809 |
7,992441924 |
1,80828 |
500 |
2429,179 |
282,15 |
168,874 |
14,38456482 |
8,609530392 |
1,67077 |
Графическое сравнение результатов запуска на центральном процессоре в одном потоке и на максимальном для CPU числе потоков представлено на рисунке 1.
Рисунок 1. Сравнение вычислительных экспериментов на центральном процессоре в одном потоке и во всех доступных потоках
По результатам, представленным на рисунке 1, можно сделать вывод, что максимальное ускорение при сравнении времени выполнения программы в одном потоке и на всех потоках на центральном процессоре равно 14 и получено при линейных размерах области равных 50. Это объяснимо хорошей разбиваемостью задачи на потоки. При дальнейших экспериментах с большим размером линейных областей такого высокого значения ускорения мы не получаем в силу ограниченного числа потоков на центральном процессоре равного 44.
Графическое сравнение результатов запуска на центральном процессоре в одном потоке и на сопроцессоре Intel Xeon Phi представлено на рисунке 2.
Рисунок 2. Сравнение вычислительных экспериментов на центральном процессоре и сопроцессоре Intel Xeon Phi
По результатам, представленным на рисунке 2, можно сделать вывод, что максимальное ускорение при сравнении времени выполнения программы в одном потоке и на сопроцессоре Intel Xeon Phi приближается к значению 32 и получено при линейных размерах области равных 100. При дальнейших экспериментах с большим размером линейных областей наблюдается постепенный спад ускорения, однако ниже значения 14 ускорение не снижается. Это обусловлено исчерпанием доступных ресурсов на сопроцессоре, но в то же время хорошей разбиваемостью задачи на потоки.
Графическое сравнение результатов параллельного запуска задачи на центральном процессоре и на сопроцессоре Intel Xeon Phi представлено на рисунке 3.
Рисунок 3. Сравнение вычислительных экспериментов на центральном процессоре и сопроцессоре Intel Xeon Phi
По результатам, представленным на рисунке 3, можно сделать вывод, что максимальное ускорение при сравнении времени параллельного выполнения программы на центральном процессоре и на сопроцессоре Intel Xeon Phi приближается к значению 4,5 и получено при линейных размерах области равных 100. При дальнейших экспериментах с большим размером линейных областей наблюдается постепенный спад ускорения.
Показатели ускорения, полученные в результате вычислительных экспериментов по решению уравнений Максвелла, можно объяснить отсутствием у используемого компилятора Intel® Parallel Studio XE 2017 For Linux удобной поддержки технологии AVX2/AVX512 для сопроцессора Intel Xeon Phi поколения Knights Corner. Поэтому использовать технологии векторизации на сопроцессоре в полной мере не представлялось возможным. Поддержка технологий AVX2/AVX512 на уровне компилятора была добавлена лишь в следующем поколении сопроцессора Intel Xeon Phi.
Аналогичные показатели можно наблюдать в научной статье ведущего математика Вычислительного центра им. А.А. Дородницина Федерального исследовательского центра «Информатика и управление» Российской академии наук Горчакова А.Ю [1], посвященной сравнению процессоров Intel Core-i7 поколения Haswell, Intel Xeon поколения Broadwell, Intel Xeon Phi поколения Knights Corner на примере задачи восстановления начальных данных. Используемые в научной статье модели процессоров являются полностью аналогичными используемым в вычислительной машине, на которой проводились вычислительные эксперименты.
Автор благодарит кафедру технической кибернетики за предоставленную программно-аппаратную базу для выполнения работы.
Список литературы:
- Горчаков, А.Ю. Сравнение процессоров Intel сore-i7, Intel Xeon, Intel Xeon Phi и IBM Power 8 на примере задачи восстановления начальных данных / А.Ю. Горчаков, В.У. Малкова // International Journal of Open Information Technologies. – 2018. – Vol. 6(4). – P. 12-17.
- Максвелл, Дж.К. Динамическая теория электромагнитного поля [Текст] / Дж.К. Максвелл. – М.: ГИТТЛ, 1952. – 687 с.
- Яблокова, Л.В. Моделирование распространения электромагнитного излучения методом совместного разностного решения волнового уравнения и уравнений Максвелла: дис. канд. техн. наук. / Л.В. Яблокова. – Сам., 2018. – 160 с.
- Developer Zone for Intel Xeon Phi Coprocessor [Электронный ресурс] // Developer Zone Intel Software. – Электрон. дан. – [Б. м.], 2019. – URL: https://software.intel.com/en-us/xeon-phi/mic/ (дата обращения: 08.04.2019).
- Gedney, S. Introduction to the Finite-Difference Time-Domain (FDTD) Method for Electromagnetics / S. Gedney. – California: Morgan & Claypool Publishers, 2011. – 250 p.
дипломов
Оставить комментарий