Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLI Международной научно-практической конференции «Экспериментальные и теоретические исследования в современной науке» (Россия, г. Новосибирск, 10 июня 2019 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Шаркунов А.В. ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ РЕАЛИЗАЦИИ РАЗНОСТНОГО РЕШЕНИЯ УРАВНЕНИЙ МАКСВЕЛЛА НА ВЕКТОРНОМ ПРОЦЕССОРЕ // Экспериментальные и теоретические исследования в современной науке: сб. ст. по матер. XLI междунар. науч.-практ. конф. № 11(37). – Новосибирск: СибАК, 2019. – С. 17-22.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ РЕАЛИЗАЦИИ РАЗНОСТНОГО РЕШЕНИЯ УРАВНЕНИЙ МАКСВЕЛЛА НА ВЕКТОРНОМ ПРОЦЕССОРЕ

Шаркунов Александр Владимирович

студент, Самарский национальный исследовательский университет имени академика С.П. Королева,

РФ, г. Самара

Целью данной работы является реализация на векторном процессоре разностного решения уравнений Максвелла [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 на примере задачи восстановления начальных данных.  Используемые в научной статье модели процессоров являются полностью аналогичными используемым в вычислительной машине, на которой проводились вычислительные эксперименты.

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

 

Список литературы:

  1. Горчаков, А.Ю. Сравнение процессоров Intel сore-i7, Intel Xeon, Intel Xeon Phi и IBM Power 8 на примере задачи восстановления начальных данных / А.Ю. Горчаков, В.У. Малкова // International Journal of Open Information Technologies. – 2018. – Vol. 6(4). – P. 12-17.
  2. Максвелл, Дж.К. Динамическая теория электромагнитного поля [Текст] / Дж.К. Максвелл. – М.: ГИТТЛ, 1952. – 687 с.
  3. Яблокова, Л.В. Моделирование распространения электромагнитного излучения методом совместного разностного решения волнового уравнения и уравнений Максвелла: дис. канд. техн. наук. / Л.В. Яблокова. – Сам., 2018. – 160 с.
  4. 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).
  5. Gedney, S. Introduction to the Finite-Difference Time-Domain (FDTD) Method for Electromagnetics / S. Gedney. –  California: Morgan & Claypool Publishers, 2011. – 250 p.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.