Эффективный расчет двумерного БПФ на однородном или гетерогенном вычислительном кластере

ISSN 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ №1(32), 2017, с. 47-62 УДК 519.68

Д. Ю. Князьков

Эффективный расчет двумерного БПФ на однородном или гетерогенном вычислительном кластере

Аннотация. Рассмотрена задача осуществления двумерного БПФ матрицы на суперкомпьютере. Исследована зависимость времени выполнения БПФ от размера матрицы для суперкомпьютеров МВС-100К, МВС-10П и HybriLIT. Описан метод балансировки вычислительной нагрузки между вычислениями на процессоре и видеокарте при использовании гетерогенного кластера. На примере видеокарты TESLA K40 показано, что время, необходимое для перемещения данных, близко времени, требуемому для осуществления двумерного БПФ на графическом вычислителе, а само время расчета в 48 раз меньше времени счета на двухпроцессорном узле.

Ключевые слова и фразы: HPC-вычисления, суперкомпьютерные вычисления, быстрое преобразование Фурье, вычисления на графических процессорах.

Введение

Алгоритм быстрого преобразования Фурье широко применяется в области обработки сигналов, различных вычислительных методах и приложениях — практически везде, где используется преобразование Фурье, по сравнению с которым он позволяет снизить количество требуемых арифметических операций с N2 до N log(N) [1,2]. В настоящей работе изучается вопрос быстродействия алгоритма двумерного быстрого преобразования Фурье (БПФ) при изменении размера матрицы от небольшого (по сравнению с доступной для вычислительного ядра памяти) до такого размера, когда эта матрица занимает оперативную память всех доступных для счета узлов суперкомпьютера. При этом считается, что в случае, если на узел помещается более одной матрицы интересующего нас размера, обработка таких матриц происходит одновременно, причем требуется оптимизировать эффективность расчета, а не время работы алгоритма. Выполнение последнего условия дает

Работа выполнена при поддержке РФФИ, проект №16-31-60096 мол-а-дк. © Д. Ю. Князьков, 2017

© Институт проблем механики им. А.Ю. Ишлинского РАН, 2017 © Программные системы: теория и приложения, 2017

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

N-1

I (i,j)= £ ф,1)Б(г - k,j - I), i,j = 0,...,Н - 1.

k,l=о

Если соответствующие матрицы не помещаются в ОЗУ вычислителя, область вычисления БПФ разделяется на отдельные блоки, осуществляется БПФ этих блоков, а затем результаты объединяются [3]. Для вычисления каждой отдельной свертки используется БПФ [2]:

(1) I = FFT-1[FFT(ф) <g> FFT(K)].

В качестве примера рассмотрим алгоритм большого пиксела расчета распространения электромагнитных полей [4, 5], с помощью которого вычисление поля I(х, у) от объекта г/) удается свести к расчету суммы

N —1

i(х,У) = <p(£,v)K(x,y,£,v)d£dv =^2 v(k,l) / К

о к,1=0 ¿1

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

(2) Тбпф = 30(1 + k)2102 ^ log2 10(1 + к)а

до

(3) Тбп = 30(1 + к)2 4 log2 ,

а2 а

где а — размер излучающего объекта, Л — длина волны излучения, к — отношение размера области, в которой излучение регистрируется к размеру излучающего объекта, а — размер расчетного «пиксела». Способ секционирования свертки (3), приводящий к вычислительной сложности

(4) Тбпз = (80к2 +40) 4 log2 -

был предложен и реализован в [4]. Метод сдвига расчетных сеток для случая, когда области задания и расчета поля имеют различный шаг, был предложен в [5] и исследован в [6].

Типовой расчет по алгоритму (4) занимал около 100 минут на 640 вычислительных ядрах (80 вычислительных узлах) суперкомпьютера МВС-100К МСЦ РАН [4]. При этом осуществлялось 201 двумерное БПФ распределенно хранящейся матрицы размером 79999 х 79999. Каждое такое БПФ занимало 29 секунд, а количество используемых вычислительных узлов было минимальным, чтобы в их ОЗУ могла бы разместиться такая матрица. Расчеты для таких и больших размеров расчетных сеток актуальны для нужд микролитографии [7].

Формулы для количества операций при вычислении секционированной свертки имеют сходную структуру и основной множитель, отвечающий за операцию двумерного БПФ, когда нужно сделать БПФ для всех N строк матрицы размером N х N, транспонировать матрицу и еще раз сделать БПФ для всех N строк, равен СМ2 log(N). Поскольку здесь необходимо транспонирование, время работы программы будет зависеть уже не столько от количества требуемых операций, сколько от скорости работы памяти и межузловой коммуникационной сети суперкомпьютера. В настоящей работе предлагается определить эмпирическую зависимость времени работы двумерного БПФ от размера обрабатываемой на суперкомпьютере матрицы для получения адекватных оценок времени работы алгоритмов, использующих двумерное БПФ, например, алгоритмов типа (2)—(4).

Следует отметить, что использование спецвычислителей, например, представляющих из себя специальные микросхемы [8, 9] или реконфигурируемые системы [10], позволяет существенно сократить время выполнения БПФ, однако такие устройства малодоступны и дороги. Все расчеты в настоящей работе ведутся на общедоступных системах кластерного типа. Не рассматриваются возможности, связанные с использованием жестких дисков и других запоминающих устройств — считается, что все данные находятся в оперативной памяти узлов кластера.

1. Двумерное распределенное БПФ на однородном вычислительном кластере

Целью настоящей работы является исследование времени работы алгоритма БПФ для различных размеров обрабатываемого массива:

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

Ранее была проанализирована зависимость эффективности расчета двумерного БПФ от количества используемых вычислительных ядер суперкомпьютера МВС-100К МСЦ РАН [4]. Было показано, что эффективность расчета сильно падает при увеличении количества используемых вычислительных ядер (ВЯ) от 1 до 8 в рамках одного вычислительного узла (ВУ), далее, при увеличении количества ВУ до 8, эффективность падает, но гораздо медленнее, а при дальнейшем увеличении количества используемых узлов скорость падения эффективности опять увеличивалась. При этом эффективность монотонно падает на всем исследованном участке.

Один из этапов двумерного БПФ — это транспонирование обрабатываемой матрицы — операция, требующая больших объемов межпроцессорной коммуникации. Поскольку, как правило, время обмена между ВУ гораздо больше времени осуществления вычислений, при увеличении размера задачи следует хранить вычислительный массив на одном ВУ до тех пор, пока он не займет всю доступную на узле память. Таким образом, суммируя вышесказанное, можно сформулировать два условия эффективного использования вычислительных ресурсов:

(1) матрица должна храниться на минимально возможном количестве ВУ;

(2) когда несколько матриц размещены в ОЗУ одного ВУ, для их обработки необходимо испрользовать минимально возможное количество ВЯ.

Обозначим Nn — количество ВУ, Жс — количество ВЯ на одном ВУ, Мо — емкость памяти вычислительного ядра (рассматривается случай хранения комплексных чисел двойной точности), Мр — общее количество вычислительных ядер, Ш — количество одновременно работающих групп процессов на одном ВУ, N х N — размер одной матрицы, для которой выполняется БПФ.

В соответствии с приведенными выше условиями эффективности, в зависимости от размера обрабатываемой матрицы, необходимо использовать один из трех сценариев выполнения БПФ:

(1) Размер матрицы таков, что количество матриц, помещающихся в оперативной памяти вычислительного узла, больше количества

вычислительных ядер этого узла:

»- * ^

В этом случае каждая матрица обрабатывается одним ВЯ: р = 1, W = Nc. Среднее время одного БПФ составит

= Т

1шеап = NcNn ,

где Т(N,p) — время осуществления одного двумерного БПФ матрицы размера N х N при использовании для вычислений р вычислительных ядер, а Ттеап — среднее время БПФ одной матрицы, то есть если необходимо сделать БПФ для L матриц, где L достаточно велико, общее время работы составит

Tall Тшеап • L.

(2) Размер матрицы таков, что количество матриц, находящихся в оперативной памяти одного ВУ, уже меньше количества ВЯ одного узла Nc, и некоторые (или все) матрицы обрабатываются двумя или более ВЯ:

yf <«< SM,

Пусть W — количество одновременно обрабатываемых двумерных матриц, или, что то же самое, количество одновременно выполняющих БПФ групп процессов:

" М0'

W =

N2

где [й] — округление до ближайшего целого, не превосходящего

В случае, когда на одном вычислительном узле запущено несколько групп вычисляющих процессов (Ш > 1), время в настоящем исследовании замеряется по самой медленной группе1.

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

Когда Мс не делится нацело на Ш, на Ш — (Мс — Ж) матрицах БПФ осуществляется с помощью ] процессов, а на ^С — ^ матрицах БПФ осуществляется с помощью + 1 процессов.

При этом общий МР1-коммуникатор MPI_COMM_WORLD

разделяется на Ш коммуникаторов СОМ М¿, г = 0,... ,\¥ — 1 так, что процесс с номером г попадает в коммуникатор с номером

= J №, " < Сь

+ Мс — [ М г > СХ

и имеет внутри этого коммуникатора номер

^ = (г — V ([ М] + 1),г<Си

\г — С! — [М] (гг — (^ — [М] ™)), Г > С\. Среднее время одного БПФ составит

т = Т(М, [М]) 1теап = .

В рамках рассматриваемого случая можно отдельно выделить такие размеры матрицы N, при которых на каждом ВУ помещается уже не более одной матрицы размером N х N и все Мс вычислительных ядер ВУ осуществляют двумерное БПФ этой матрицы:

< N <

(3) Случай, когда матрица лежит в ОЗУ нескольких (точнее, 1Чп =

{С}) узлов:

N >у/М0.

Тогда БПФ каждой матрицы осуществляется всеми ВЯ всех 1Чп узлов, на которых размещена матрица. Среднее время одного БПФ составит

Т

1.1. Время выполнения двумерного БПФ на кластерах МВС-100К, МВС-10П и HybriLIT

Описанная выше методика применялась для определения времени выполнения двумерного БПФ на кластерах МВС-100К, МВС-10П и HybriLIT. Два первых суперкомпьютера установлены в МСЦ РАН, последний — в ЛИТ ОИЯИ, г. Дубна. Каждому из суперкомпьютеров в зависимости от его архитектуры соответствует свой набор значений параметров: Mo — общий объем доступной оперативной памяти на одном ВУ; Nc — количество вычислительных ядер на одном ВУ; N-1 = — в точности Nc матриц размера N—i х N—i помещается

на одном ВУ, и каждая такая матрица обрабатывается в точности одним вычислительным ядром (если N < N—i — на ВУ лежит более Nc матриц размера N х N, и каждый вычислительный процесс обрабатывает последовательно несколько таких матриц, а если N > N—i — уже несколько групп процессов, где по крайней мере одна из них состоит из более, чем одного процесса, обрабатывают один раз каждая свою матрицу); No = \JЦ0 — предельный размер, при котором в оперативной памяти узла помещается уже только одна матрица, и все вычислительные процессы совместно осуществляют ее БПФ; Ni = \fiMo, i = 1, 2,..., Nn — предельный размер, при котором матрица размера N х N еще помещается в оперативной памяти i узлов кластера.

Суперкомпьютер МВС-100К состоит из 1275 вычислительных узлов с несколько различающейся конфигурацией. Большая часть ВУ (990 узлов) состоит из 2 процессоров CPU Intel Xeon E5450 с тактовой частотой 3 ГГц и 8 ГБайт ОЗУ. 19 узлов этого кластера имеют в своем составе восемь GPU Nvidia Tesla M2090 и 192 ГБайт ОЗУ. Пиковая производительность суперкомпьютера составляет 227,94 TFlops, на всех ВУ установлены жёсткий диск объёмом не менее 36 ГБайт, используется коммуникационная сеть Infiniband DDR.

Суперкомпьютер МВС-10П имеет пиковую производительность 523.8 ТФЛОПС и состоит из 207 вычислительных узлов. Каждый вычислительный узел имеет в своем составе 2 процессора Xeon E5-2690, 64 ГБ оперативной памяти, два сопроцессора Intel Xeon Phi 7110Х. Коммуникационную и транспортную сеть кластера построена на базе FDR Infiniband.

Таблица 1. Параметры используемых кластеров

Название Mo Nc N—i No N N2

МВС-100К 5 • 108 8 7900 15800 22300 31600

МВС-10П 4 • 109 16 15800 44700 63200 89400

HybriLIT 8 • 109 24 18000 63200 89400 126400

Кластер HybriLIT состоит из 7 вычислительных узлов, на каждом из которых установлены два процессора Intel Xeon E5-2695 v2 2.4 ГГц, 128 Гб ОЗУ. Также узлы этого кластера имеют в своем составе видеовычислители Tesla K20X, Tesla K40 и сопроцессоры XeonPhi 5110P, XeonPhi 7120P. Всего на 168 процессорных вычислительных ядрах достигается 3.2 ТФлопс пиковой производительности, на 37248 GPU-ядрах производительность составляет 18.47 ТФлопс на двойной точности, а на 182 ядрах сопроцессоров — 3 ТФлопс на двойной точности.

Значения интересующих нас параметров Mo, Nc, N—i, No, N, N2 для этих, описанных выше кластеров приведены в таблице 1.

В соответствии с описанным выше подходом на языке программирования СН—Ъ была написана программа (ее исходный код доступен по адресу https://bitbucket.org/Jclash/fft), осуществляющая эффективное БПФ двумерных матриц размера N х N на кластерной системе и осуществляющая замеры времени выполнения БПФ. Для реализации БПФ использовалась библиотека FFTW [11] (сайт проекта www.fftw.org). Каждому N соответствует некоторое количество процессов p(N), при котором обработка большого количества матриц размера N х N будет наиболее эффективна. В случае, когда БПФ осуществляется группами с разным количеством вычислительных процессов, в качестве p(N) можно взять среднее количество ВЯ, приходящихся на одну матрицу. Таким образом, можно рассмотреть зависимость времени обработки одной матрицы Т(N,p(N)) от размера N. Эта зависимость была исследована для трех суперкомпьютеров: МВС-100К и МВС-10П МСЦ РАН, HybriLIT ЛИТ ОИЯИ. Результаты этого исследования приведены на рис. 1.

При вычислениях, показанных на рис. 1 на суперкомпьютере МВС-100К использовалось до 16 ВУ, на суперкомпьютере МВС-10П — до 2 ВУ, а все вычисления на кластере HybriLIT велись в рамках одного узла. Этим объясняется немонотонность роста времени счета

Рис. 1. Зависимость времени выполнения двумерного БПФ Т(М,р(М)) распределенно хранящейся матрицы размера N х N от ее линейного размера N на суперкомпьютерах МВС-100К, МВС-10П и ПуЬпЫТ

для кластеров HybriLIT и МВС-10Р при размере матрицы, лежащим в диапазоне от 20000 до 80000, так как при изменении размера матрицы изменялось и количество обрабатывающих матрицу процессов, а в случае, когда количество процессов в группах различалось, замер времени производился по самой медленной группе. При небольших размер матрицы (когда БПФ каждой матрицы осуществляется одним ВЯ) время выполнения одного БПФ на всех трех кластерах оказывается достаточно близким. Когда матрица лежит в ОЗУ нескольких ВУ и обрабатывается ими (график рис. 1 для кластера МВС-100К и размера матрицы большего 20000), рост времени осуществления БПФ становится монотонным. В целом же видно, что время на обработку матрицы растет, оно сравнимо для кластеров МВС-100К и HybriLIT и несколько меньше для кластера МВС-10П. Например, при максимальном (из рассмотренных) размере матрицы 85000 х 85000 быстрее всего (67 секунд) двумерное БПФ было выполнено на суперкомпьютере МВС-10П с использованием 2 ВУ, на МВС-100К этот расчет был

H2D D2H cuFFT äj

Ж

+ *

+ X -

ш

+ X

х

ж

+ *

ж + -

X + ж

äjf Х

X + ä -

*

, * . . * ?

О 2000 40G0 GOOO 0000 10G00 ±2000 1400В 16000 10000 20000

N

Рис. 2. Время выполнения операции копирования из ОЗУ ВУ на видеокарту (И2В), время копирования из памяти видеокарты в ОЗУ ВУ (В2И) и время выполнения двумерного БПФ для матрицы размера N х N на видеовычислителе TESLA Е40 (cuFFT), при изменении N от 1000 до 19000

сделан на 10 ВУ за 112 секунд и на одном ВУ кластера HybriLIT — за 124 секунды.

2. Двумерное БПФ на герерогенном кластере

Было проведено исследование возможности ускорения расчета за счет использования графических ускорителей NVIDIA TESLA. Также была исследована зависимость скорости выполнения БПФ и пересылки данных при использовании GPU (см. рис. 2). Размер матриц изменялся от 1000 х 1000 до 19000 х 19000 — максимально возможного размера для использовавшегося видеоадаптера. Для ускорения пересылок CPU-GPU, в ОЗУ ВУ для хранения матриц использовалась фиксированная память (pinned memory). Для осуществления двумерного БПФ использовалась библиотека NVIDIA cuFFT. Сравнение времени счета с результатами рис. 1 показало, что использование

видеоускорителя дает примерно 48-и кратное ускорение счета по сравнению с использованием CPU (точнее двух CPU, так как на ВУ всех рассмотренных кластеров установлено два процессора).

Из графика рис. 2 видно, что время вычисления двумерного БПФ матрицы практически совпадает со временем ее записи в память GPU или чтения результатов обратно из памяти GPU в ОЗУ ВУ. Таким образом, так как три процесса — перемещение исходных данных в память ускорителя, осуществление вычислений на ускорителе и перемещение результатов из памяти ускорителя в память узла — могут на современных графических ускорителях выполняться одновременно, можно считать, что время выполнения БПФ для Nqpu матриц размера N х N составит

TGpu(N) • (Ngpu + 2),

где Tqpu(N) — время выполнения двумерного БПФ матрицы размером N х N (или, что по времени практически одно и то же, время копирования матрицы в память устройства или обратно, в ОЗУ ВУ) графическим ускорителем.

Использование GPU оправдано в случае, если за время выполнения всего расчета на GPU можно успеть вычислить БПФ хотя бы одной матрицы:

Ттеап • (L — 1) > 3Tqpu (N).

Если последнее условие выполнено, рассмотрим подходы к балансировке нагрузки между CPU и GPU в двух случаях:

(1) Соотношение времен выполнения БПФ на CPU и GPU таково, что за время, пока делается БПФ для Nc матриц на CPU, GPU не успеет сделать БПФ для всех оставшихся матриц:

(

- Nc + 2^ tq pu (N) > T (N, 1).

В этом случае каждое из Nc ВЯ CPU осуществляет БПФ одной из матриц, всего Nr > 1 раз. Остальные — NcNr БПФ осуществляются на GPU. Оптимальное Nr можно вычислить следующим образом:

Nr = 1 +2 — T(N,1) ^

r

c

жд n2 tq pu (n)) '

(2) Соотношение времен выполнения БПФ на CPU и GPU таково, что за время, пока делалось бы одно БПФ для Nc матриц на CPU, на устройстве GPU было бы сделано БПФ для количества матриц, превышающее количество всех оставшихся (не обработанных CPU) матриц:

(^0 - Nc + 2) TGPU(Ю < т(N, 1).

В этом случае БПФ матриц размера N х N на CPU выполняются одновременно р вычислительными ядрами. Время работы в таком случае составит

Тhybr(р) = max { - ^ + 2) TGPU, Т(N, р)} .

Для балансировки вычислительной нагрузки между CPU и GPU следует сначала найти такое первое р, для которого выполнено

(- У) ^ ^(*„).

Обозначим такое р как р*. Если для р* выполняется точное равенство, в качестве искомого оптимального р следует взять р = р*. Если точного равенства не достигается, в качестве р возьмем

j> = argmin {Тhybr(Р*),Тhybr(р* - 1)}.

Тогда ^ БПФ будет выполнено на CPU и NGPU = §0 - ^ на GPU Р

3. Заключение

В настоящей работе получены времена выполнения двумерного распределенного БПФ для однородных вычислительных кластеров МВС-100К МСЦ РАН, МВС-10П МСЦ РАН, HybriLIT ЛИТ ОИЯИ. Эти результаты могут быть использованы для уточнения оценок времени работы алгоритмов, использующих двумерное БПФ, например, алгоритмов секционирования свертки.

Разработана программа, осуществляющая распределение вычислительной нагрузки между ВЯ суперкомпьютера и оценивающая время работы при выполнении двумерного БПФ на кластере однородной архитектуры. Исходный код программы доступен по адресу https://bitbucket.org/Jclash/fft.

На примере видеокарты TESLA K40 показано, что время, необходимое для перемещения данных из ОЗУ ВУ в память видеокарты либо обратно, близко времени, требуемому для осуществления двумерного БПФ на графическом вычислителе. При этом ускорение счета составило примерно 48 раз по сравнению с использованием двух процессоров CPU. Это дает основание заключить, что аппаратная структура современных видеовычислителей хорошо подходит для решения задачи осуществления большого количества однотипных двумерных БПФ на гетерогенном кластере. При этом следует использовать предложенный алгоритм балансировки вычислительной нагрузки между центральным процессором и видеокартой.

Благодарности. Автор выражает глубокую признательность руководству и сотрудникам ЛИТ ОИЯИ, предоставившим возможность и техническую поддержку расчетов на кластере HybriLIT.

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

[1] I. Muhammad, O. Khan. "Performance analysis of Fast Fourier Transform on Field Programmable Gate Arrays and graphic cards", Proc. of the 2016 International Conference on Computing, Electronic and Electrical Engineering, ICE Cube (Quetta, Pakistan, 11-12 April, 2016), IEEE, 2016, pp. 158-162. t 47

[2] Г. Нуссбаумер. Быстрое преобразование Фурье и алгоритмы вычисления сверток, Радио и связь, М., 1985, 248 с. t 47,48

[3] Д. Даджион, Г. Мерсеро. Цифровая обработка многомерных сигналов, Мир, М., 1988, 488 с. t 48

[4] Д.Ю. Князьков. «Эффективные методы расчета электромагнитных полей», Вычислительные методы и программирование, 13:1 (2012), с. 181-188. t 48,49,50

[5] A. Shamaev, D. Knyazkov. "An Effective Method of Electromagnetic Field Calculation", Numerical Analysis and Its Applications. V. II, 5th International Conference NAA 2012 (Lozenetz, Bulgaria, June 15-20, 2012), Lecture Notes in Computer Science, vol. 8236, Springer, Berlin-Heidelberg, 2013, pp. 487-494. t 48,49

[6] П. А. Михеев. «Применение быстрого преобразования фурье при расчете сегментированной свёртки», Доклады Академии наук, 464:2 (2015), с. 152-155. t 49

[7] М. В. Борисов, В. А. Боровиков, А. А. Гавриков, Д. . Князьков, В. И. Раховский, Д. А. Челюбеев, А. С. Шамаев. «Методы создания и коррекции качества голографических изображений геометрических объектов с элементами субволновых размеров», Доклады Академии Наук, 434:3 (2010), с. 332-336. t 49

[8] О. Ю. Сударева. Эффективная реализация алгоритмов быстрого преобразования Фурье и свертки на микропроцессоре КОМДИВ128-РИО, ред. В. Б. Бетелин, НИИСИ РАН, М., 2014, 266 с. t 49

[9] А. А. Бурцев. «Применение векторного сопроцессора для ускорения операции быстрого преобразования Фурье», Национальный Суперкомпьютерный Форум 2015 (Переславль-Залесский, Россия, 24-27 ноября 2015), URL: http://2015.nscf.ru/TesisAll/5_Prikladnoe_PO/05_459_ BurtsevAA.pdf t 49

[10] И. А. Каляев, И. И. Левин, Е. А. Семерников, В. И. Шмойлов. Реконфигурируемые мультмконвейерные вычислительные структуры, ЮНЦ РАН, Ростов-на-Дону, 2008, 320 с. t 49

[11] M. Frigo, S. G. Johnson. "The design and implementation of FFTW3", Proceedings of the IEEE, 93:2 (2005), pp. 216-231. t 54

Рекомендовал к публикации Программный комитет

Пятого национального суперкомпьютерного форума НСКФ-2016

Пример ссылки на эту публикацию:

Д. Ю. Князьков. «Эффективный расчет двумерного БПФ на однородном или гетерогенном вычислительном кластере», Программные системы: теория и приложения, 2017, 8:1(32), с. 47-62.

URL: http://psta.psiras .ru/read/psta2017_1_47-62.pdf

Об авторе:

Дмитрий Юрьевич Князьков К.ф.-м.н., н.с. ИПМех РАН. Область научных интересов: прямые и обратные задачи дифракции, математическая теория усреднений, суперкомпьютерные вычисления, алгоритмы быстрой свертки и БПФ, радиометрия океана, сейши, голография, тепломассообмен. Автор около 30 научных публикаций и 4 патентов.

e-mail: knyaz@ipmnet.ru

Dmitri Knyazkov. Effective computation of two-dimensional FFT on a homogeneous or heterogeneous cluster.

Abstract. The paper considers performing two-dimensional FFT on a supercomputer. It investigates a dependance of FFT computation time from a matrix size for MVS-100K, MVS-10P and HybriLIT supercomputers. A method of CPU-GPU load balance for a heterogeneous cluster is proposed. For a TESLA K40 card it is shown, that two-dimensional FFT computation time is almost equal to data transferring time. The computation itself is 48 times faster when using GPU comparing to two-processors node. (In Russian).

Key words and phrases: HPC, supercomputer computations, fast Fourier transform, FFT, GPU computations.

References

[1] I. Muhammad, O. Khan. "Performance analysis of Fast Fourier Transform on Field Programmable Gate Arrays and graphic cards", Proc. of the 2016 International Conference on Computing, Electronic and Electrical Engineering, ICE Cube (Quetta, Pakistan, 11-12 April, 2016), IEEE, 2016, pp. 158-162.

[2] H. J. Nussbaumer, Fast Fourier Transform and Convolution Algorithms, Springer Series in Information Sciences, vol. 2, 2nd edn., Springer, Berlin-Heidelberg, 1982, xii+276 p.

[3] D.E. Dudgeon, R. M. Mersereau, Multidimensional Digital Signal Processing, Prentice-Hall Signal Processing Series, 2nd edn., Prentice-Hall, Englewood Cliffs, 1984, xv+400 p.

[4] D. Yu. Knyazkov. "Efficient Numerical Methods for the Analysis of Electromagnetic Fields", Vychislitel'nyye metody i programmirovaniye, 13:1 (2012), pp. 181-188 (in Russian).

[5] A. Shamaev, D. Knyazkov. "An Effective Method of Electromagnetic Field Calculation", Numerical Analysis and Its Applications. V. II, 5th International Conference NAA 2012 (Lozenetz, Bulgaria, June 15-20, 2012), Lecture Notes in Computer Science, vol. 8236, Springer, Berlin-Heidelberg, 2013, pp. 487-494.

[6] P. A. Mikheyev. "Application of the Fast Fourier Transform to Calculating Pruned Convolution", Doklady Mathematics, 92:2 (2015), pp. 630-633.

[7] M. V. Borisov, V. A. Borovikov, A. A. Gavrikov, D.. Knyazkov, V. I. Rakhovskiy, D. A. Chelyubeyev, A. S. Shamayev. "Methods of the Development and Correction of the Quality of Holographic Images of Geometry Objects with Subwave-Size Elements", Doklady Physics, 55:9 (2010), pp. 436-440.

[8] O. Yu. Sudareva. Effective realization of fast Foureier transform and convolution algorithms on a COMD1V128-R1O microprocessor, ed. V. B. Betelin, NIISI RAN, M., 2014 (in Russian), 266 p.

[9] A. A. Burtsev. "Using a Vector Co-Processor for Fast Fourier Transform Operation Speed-Up", Natsional'nyy Superkomp'yuternyy Forum 2015 (Pereslavl'-Zalesskiy, Rossiya, 24-27 noyabrya 2015) (in Russian), URL: http://2015.nscf.ru/TesisAll/5_Prikladnoe_PO/05_459_BurtsevAA.pdf

© D. Y. Knyazkov, 2017

© A. Ishlinsky Institute for Problems in Mechanics RAS, 2017 © Program systems: Theory and Applications, 2017

[10] I. A. Kalyayev, I.I. Levin, Ye. A. Semernikov, V.I. Shmoylov. Reconfigurable multi-conveyer computational structures, YuNTs RAN, Rostov-na-Donu, 2008 (in Russian), 320 p.

[11] M. Frigo, S. G. Johnson. "The design and implementation of FFTW3", Proceedings of the IEEE, 93:2 (2005), pp. 216-231.

Sample citation of this publication:

Dmitri Knyazkov. "Effective computation of two-dimensional FFT on a homogeneous or heterogeneous cluster", Program systems: Theory and applications, 2017, 8:1(32), pp. 47-62. (In Russian).

URL: http://psta.psiras.ru/read/psta2017_1_47- 62.pdf