[go: up one dir, main page]

RU2547618C2 - Method of setting up arithmetic accelerator for solving large systems of linear equations - Google Patents

Method of setting up arithmetic accelerator for solving large systems of linear equations Download PDF

Info

Publication number
RU2547618C2
RU2547618C2 RU2013123082/08A RU2013123082A RU2547618C2 RU 2547618 C2 RU2547618 C2 RU 2547618C2 RU 2013123082/08 A RU2013123082/08 A RU 2013123082/08A RU 2013123082 A RU2013123082 A RU 2013123082A RU 2547618 C2 RU2547618 C2 RU 2547618C2
Authority
RU
Russia
Prior art keywords
indices
shared memory
fourier transform
processor
quaternary
Prior art date
Application number
RU2013123082/08A
Other languages
Russian (ru)
Other versions
RU2013123082A (en
Inventor
Александр Борисович Самохин
Евгений Евгеньевич Тыртышников
Олег Валерьевич Михеев
Паулина Айкинсовна Габусу
Original Assignee
Закрытое акционерное общество Научно-внедренческая компания "Внедрение информационных систем и технологий"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество Научно-внедренческая компания "Внедрение информационных систем и технологий" filed Critical Закрытое акционерное общество Научно-внедренческая компания "Внедрение информационных систем и технологий"
Priority to RU2013123082/08A priority Critical patent/RU2547618C2/en
Publication of RU2013123082A publication Critical patent/RU2013123082A/en
Application granted granted Critical
Publication of RU2547618C2 publication Critical patent/RU2547618C2/en

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

FIELD: physics, computer engineering.
SUBSTANCE: invention relates to computer engineering and can be used to design an arithmetic accelerator for solving large systems of linear equations. The method comprises steps of: accessing the shared memory unit of one or more tertiary or quaternary processors selected from an arbitrary set of different processors; detecting a free primary processor; dividing an intermediate result into groups; performing indexing and recording values of the intermediate result in each group in the shared memory unit; detecting a free tertiary processor and ranking the indices and, based on one of three successive indices selected from the set of indices, performing discrete fast Fourier transform; recording the transformation results in the shared memory unit; detecting a free quaternary processor; considering values of matrix elements for the first index successively; performing discrete fast Fourier transform for two other indices; multiplying term by term the obtained values on said two indices with Fourier transforms of a Toeplitz matrix for said indices; performing inverse discrete fast Fourier transform for said two indices; recording the transformation results in the local memory of the quaternary processor; performing inverse discrete fast Fourier transform for the first index; recording the result in the shared memory.
EFFECT: fewer arithmetic operations.
1 dwg

Description

Изобретение относится к вычислительной технике, в частности к способу организации арифметического ускорителя для решения больших систем линейных уравнений, и может быть использовано для создания новой технологии инженерных расчетов, в том числе объемных интегральных уравнений, электродинамики, гидроакустики, медицинских исследований.The invention relates to computing, in particular to a method for organizing an arithmetic accelerator for solving large systems of linear equations, and can be used to create a new technology of engineering calculations, including volumetric integral equations, electrodynamics, hydroacoustics, medical research.

Известен способ организации многопроцессорной ЭВМ, заключающийся в параллельном исполнении нити вычислений по средствам хранимого в виртуальной памяти распределенного представления дескриптора нити, выполнение первичной выборки архитектурных команд по средствам мониторов нитей, формирование графоинформационных зависимостей транзакций, которые выдают через сеть в исполнительные кластеры, переводит активную нить в резидентную очередь ждущих завершения транзакций и выбирают следующую активную нить, принимают транзакции, переписывают их команды, осуществляют выборку и передачу готовых команд кластеру, корректируют граф, передают результат завершения транзакции монитору и переводят нить с коррекцией корня представления дескриптора нити (см., например, патент РФ 2312388, G06F 15/16, 2005 г.).A known method of organizing a multiprocessor computer, which consists in parallel execution of computational threads by means of the distributed representation of the thread descriptor stored in virtual memory, performing initial sampling of architectural commands by means of thread monitors, forming graph-information dependencies of transactions that are transmitted through the network to executive clusters, translates the active thread into a resident queue waiting for transactions to complete and select the next active thread, accept transactions, rewrite their teams compose, select and transmit ready-made commands to the cluster, adjust the graph, transmit the result of the transaction to the monitor and translate the thread with the correction of the presentation root of the thread descriptor (see, for example, RF patent 2312388, G06F 15/16, 2005).

Известный способ труден в отношении разработки.The known method is difficult in relation to development.

Наиболее близким к заявляемому способу является способ организации арифметического ускорителя для решения больших систем линейных уравнений, включающий способ организации арифметического ускорителя для решения больших систем линейных уравнений, включающий общую память, доступную для первичных и одного или более вторичных процессоров, прием множества коэффициентов, связанных с набором линейных уравнений в общую память и разделением их на блоки коэффициентов с использованием одного или более первичных процессоров, выявление доступного вторичного процессора для обработки выбранного блока коэффициентов, передачу его из общей памяти в блок локальной памяти вторичного процессора с последующей обработкой для получения промежуточного результата и передачей его в общую память (см., например, патент РФ №7236998, G06F 7/00).Closest to the claimed method is a method of organizing an arithmetic accelerator for solving large systems of linear equations, including a method of organizing an arithmetic accelerator for solving large systems of linear equations, including shared memory available for primary and one or more secondary processors, receiving a variety of coefficients associated with a set linear equations into shared memory and dividing them into blocks of coefficients using one or more primary processors, identifying available of the secondary processor for processing the selected block of coefficients, transferring it from the shared memory to the local memory of the secondary processor, followed by processing to obtain an intermediate result and transferring it to the shared memory (see, for example, RF patent No. 7236998, G06F 7/00).

Основным недостатком известного способа является квадратичный рост числа арифметических операций от числа неизвестных.The main disadvantage of this method is the quadratic increase in the number of arithmetic operations from the number of unknowns.

Технической задачей, на решение которой направлен заявляемый способ с указанием технического результата, является создание такого способа, который позволил бы уменьшить рост числа арифметических операций и сделать его пропорциональным числу неизвестных.The technical problem to which the claimed method is directed, indicating the technical result, is to create such a method that would reduce the growth in the number of arithmetic operations and make it proportional to the number of unknowns.

Технический результат связан с использованием метода быстрого умножения циркулянтных матриц на вектор, основанный на быстром дискретном преобразовании Фурье.The technical result is associated with the use of the method of fast multiplication of circulant matrices by a vector based on the fast discrete Fourier transform.

Технический результат достигается путем построения вычислительной среды, позволяющей производить наименьшее количество операций и реализовать рост числа арифметических операций пропорционально числу неизвестных.The technical result is achieved by constructing a computing environment that allows you to perform the least number of operations and realize the growth in the number of arithmetic operations in proportion to the number of unknowns.

Решение технической задачи достигается тем, что способ организации арифметического ускорителя для решения больших систем линейных уравнений, включающий общую память, доступную для первичных и одного или более вторичных процессоров, прием множества коэффициентов, связанных с набором линейных уравнений в общую память и разделением их на блоки коэффициентов с использованием одного или более первичных процессоров, выявление доступного вторичного процессора для обработки выбранного блока коэффициентов, передачу его из общей памяти в блок локальной памяти вторичного процессора с последующей обработкой для получения промежуточного результата и передачей его в общую память, согласно изобретению производят доступ к блоку общей памяти одного или более третичных или четвертичных процессоров, выбранных из произвольного множества разнородных процессоров, выявляют свободный первичный процессор и разделяют промежуточный результат на группы, производят индексирование и записывают значения промежуточного результата в каждой группе в блок общей памяти, выявляют свободный третичный процессор и производят ранжирование индексов и по одному из трех последовательных индексов, выбранных из множества индексов, производят быстрое дискретное преобразование Фурье, записывают результаты преобразования в блок общей памяти, выявляют свободный четвертичный процессор, рассматривают значения элементов матрицы для первого индекса последовательно и производят быстрые дискретные преобразования Фурье по двум другим индексам, затем умножают почленно получившиеся значения по этим двум индексам на Фурье преобразования теплицевой матрицы для этих индексов, затем производят обратное быстрое дискретное преобразование Фурье по этим двум индексам, результаты преобразований записывают в локальную память четвертичного процессора, по окончании процесса производят обратное быстрое дискретное преобразование Фурье по первому индексу, записывают результат в общую память.The solution to the technical problem is achieved by the fact that a method of organizing an arithmetic accelerator for solving large systems of linear equations, including shared memory available for primary and one or more secondary processors, receiving a set of coefficients associated with a set of linear equations in a common memory and dividing them into blocks of coefficients using one or more primary processors, identifying an available secondary processor for processing the selected block of coefficients, transferring it from the shared memory to the block according to the invention, access to the shared memory block of one or more tertiary or quaternary processors selected from an arbitrary set of heterogeneous processors, identify a free primary processor and share the intermediate result into groups, indexing and recording the values of the intermediate result in each group in the block of shared memory, reveal free processor and indexes are ranked and one of three consecutive indices selected from a plurality of indices performs a fast discrete Fourier transform, writes the results of the conversion to a shared memory block, reveals a free Quaternary processor, considers the values of the matrix elements for the first index sequentially and produces fast discrete Fourier transforms by two other indices, then multiply the term-by-term values obtained by these two indices by the Fourier transform of t plitsevoy matrix for these indices, then produce an inverse fast discrete Fourier transform on the two indices, the result is loaded into local memory quaternary processor at the end of the process producing discrete inverse fast Fourier transform on the first index, the result is written to shared memory.

На чертеже изображена общая блок-схема по изобретению, показывающая процессоры 1, 2, 3, 4, модуль 5 индексирования, модули 6, 7 Фурье преобразования, модуль 8 обратного Фурье преобразования, блок 9 общей памяти, блоки 10, 11, 12, 13 локальной памяти.The drawing shows a General block diagram according to the invention, showing the processors 1, 2, 3, 4, the indexing module 5, the Fourier transform modules 6, 7, the inverse Fourier transform module 8, the shared memory unit 9, blocks 10, 11, 12, 13 local memory.

На схеме представлена последовательность действий, отраженная в формуле изобретения, а именно:The diagram shows the sequence of actions reflected in the claims, namely:

Матрица системы линейных уравнений, получающаяся после дискретизации интегральных уравнений, описывающих задачи инженерных расчетов, в том числе объемных интегральных уравнений, электродинамики, гидроакустики, медицинских исследований, например, рассеяние электромагнитных волн на диэлектрических трехмерных структурах имеет форму блочно-теплицевой матрицы. При этом основные вычислительные затраты при умножении матрицы системы линейных уравнений (СЛАУ) на вектор, а это самая затратная вычислительная операция при использовании итерационных алгоритмов, связаны с вычислением сумм вида:The matrix of a system of linear equations obtained after discretization of integral equations describing the tasks of engineering calculations, including volumetric integral equations, electrodynamics, hydroacoustics, medical research, for example, the scattering of electromagnetic waves by dielectric three-dimensional structures has the form of a block-greenhouse matrix. In this case, the main computational costs when multiplying the matrix of a system of linear equations (SLAE) by a vector, and this is the most expensive computational operation when using iterative algorithms, are associated with the calculation of sums of the form:

Figure 00000001
,
Figure 00000001
,

где Q - область рассеивающего тела, находящегося внутри параллелепипеда П.where Q is the region of the scattering body located inside the parallelepiped P.

Для вычисления W(p) в узловых точках х(р)∈Q требуется выполнить ~N2 арифметических операций.To calculate W (p) at the nodal points x (p) ∈ Q, ~ N 2 arithmetic operations are required.

Для уменьшения числа арифметических операций будем применять технику быстрого умножения циркулянтных матриц на вектор, основанную на быстром дискретном преобразовании Фурье.To reduce the number of arithmetic operations, we will use the technique of fast multiplication of circulant matrices by a vector based on the fast discrete Fourier transform.

Доопределим величины V(q) нулем в точках x(q) параллелепипеда П, не принадлежащих области Q. Тогда (1) можно записать в виде:We define the quantities V (q) by zero at the points x (q) of the parallelepiped не that do not belong to the domain Q. Then (1) can be written in the form:

Figure 00000002
Figure 00000002

где матричная функция дискретного аргумента В{р) определена для значений:where the matrix function of the discrete argument B (p) is defined for the values:

-(N1-1)≤p1≤(N1-1); -(N2-1)≤p2≤(N2-1); -(N3-1)≤p3≤(N3-1).- (N 1 -1) ≤p 1 ≤ (N 1 -1); - (N 2 -1) ≤p 2 ≤ (N 2 -1); - (N 3 -1) ≤p 3 ≤ (N 3 -1).

Для электромагнитных задач имеем:For electromagnetic problems we have:

Figure 00000003
Figure 00000003

Здесь функция дискретного аргумента δ(k, n, m) определяется формулойHere the function of the discrete argument δ (k, n, m) is determined by the formula

Figure 00000004
Figure 00000004

где δkn - символ Кронекера.where δ kn is the Kronecker symbol.

Обозначим через П2 параллелепипед со сторонами 2N1h1, 2N2h2 и 2N3h3. Продолжим матричную функцию дискретного аргумента В(р1, р2, р3) на все целочисленные значения р1, р2, p3, полагая ее периодической по каждой переменной с периодами соответственно 2N1, 2N2, 2N3. При этом доопределим В(р1, р2, р3) нулем в точках (N1, p2, p3), (p1, N2, p3), (p1, p2, N3), где p1, p2, p3 - любые целые числа. Далее доопределим вектор функции дискретного аргумента V(p1, p2, p3) нулем во всех узловых точках П2, не принадлежащих П, и продолжим ее на все целочисленные значения р1, р2, р3, полагая ее периодической по каждой переменной с периодами соответственно 2N1, 2N2, 2N3, тогда:Denote by П 2 the box with the sides 2N 1 h 1 , 2N 2 h 2 and 2N 3 h 3 . We continue the matrix function of the discrete argument B (p 1 , p 2 , p 3 ) to all integer values p 1 , p 2 , p 3 , assuming it to be periodic in each variable with periods of 2N 1 , 2N 2 , 2N 3 , respectively. Moreover, we define B (p 1 , p 2 , p 3 ) zero at the points (N 1 , p 2 , p 3 ), (p 1 , N 2 , p 3 ), (p 1 , p 2 , N 3 ), wherein p 1, p 2, p 3 - arbitrary integers. Next, we define the vector of the function of the discrete argument V (p 1 , p 2 , p 3 ) as zero at all nodal points P 2 not belonging to P, and continue it to all integer values p 1 , p 2 , p 3 , assuming it to be periodic for each variable with periods respectively 2N 1 , 2N 2 , 2N 3 , then:

Figure 00000005
Figure 00000005

Учитывая изложенное при х(р)∈П функция W(p1, p2, p3) из (5) совпадает со значениями W(p1, p2, p3) из (2). Ниже через П и П2 будем обозначать целочисленные параллелепипеды с числом дискретных аргументов по каждой оси N1, N2, N3 и 2N1, 2N2, 2N3 соответственно. Теперь проводя дискретное преобразование Фурье по каждой переменной от обеих частей (5), получим следующее равенство:Considering the above, for x (p) ∈ П the function W (p 1 , p 2 , p 3 ) from (5) coincides with the values W (p 1 , p 2 , p 3 ) from (2). Below, by цел and 2 2 we denote integer parallelepipeds with the number of discrete arguments on each axis N 1 , N 2 , N 3 and 2N 1 , 2N 2 , 2N 3, respectively. Now, conducting a discrete Fourier transform for each variable of both sides of (5), we obtain the following equality:

Figure 00000006
Figure 00000006

Из (3) и периодичности функций следует, что элементы массива { B ˜ n m ( k 1 , k 2 , k 3 ) }

Figure 00000007
, k∈П2, удовлетворяют соотношениям:From (3) and the periodicity of functions it follows that the elements of the array { B ˜ n m ( k one , k 2 , k 3 ) }
Figure 00000007
, k∈P 2 , satisfy the relations:

Figure 00000008
Figure 00000008

Таким образом, учитывая, что B ˜ n m ( k 1 , k 2 , k 3 ) = B ˜ m n ( k 1 , k 2 , k 3 )

Figure 00000009
, ясно, что количество элементов массива, которые надлежит вычислить и хранить в памяти компьютера, определяется формулойThus, given that B ˜ n m ( k one , k 2 , k 3 ) = B ˜ m n ( k one , k 2 , k 3 )
Figure 00000009
, it is clear that the number of array elements to be calculated and stored in computer memory is determined by the formula

Figure 00000010
Figure 00000010

При вычислении W(p), p∈П, основные вычислительные затраты, без учета нахождения { B ˜ ( k ) }

Figure 00000011
, k∈П2 (этот массив вычисляется один раз и затем без изменения используется при вычислении итераций), связаны с прямым и обратным быстрым преобразованием Фурье функций дискретного аргумента. При прямом преобразовании Фурье функция V(p) отличается от нуля только при значениях р∈П. С другой стороны, при обратном преобразовании Фурье значение функции W(p) требуется определить только при значениях р∈П. Кроме того, алгоритмы прямого и обратного быстрого дискретного преобразования Фурье можно применять в любой последовательности переменных. Принимая вышесказанное во внимание, сначала изложим по шагам схему эффективного вычисления вектора функции W(p), р∈П.When calculating W (p), p∈P, the main computational costs, excluding finding { B ˜ ( k ) }
Figure 00000011
, k∈P 2 (this array is calculated once and then used without changes in calculating iterations), are associated with the direct and inverse fast Fourier transform of the functions of the discrete argument. Under the direct Fourier transform, the function V (p) differs from zero only for p ∈ P. On the other hand, in the inverse Fourier transform, the value of the function W (p) is required to be determined only for p ∈ P. In addition, the algorithms of direct and inverse fast discrete Fourier transform can be applied in any sequence of variables. Bearing in mind the above, we first outline the steps for efficiently computing the vector of the function W (p), p∈P.

Шаг 1. Проведем ранжирование и расположим N1, N2, N3 в порядке убывания, т.е. N1≥N2≥N3.Step 1. Let us rank and arrange N 1 , N 2 , N 3 in descending order, i.e. N 1 ≥N 2 ≥N 3 .

Шаг 2. Произведем быстрое дискретное преобразование Фурье по целочисленной переменной р1. Получаем массив чисел Vn(k1, p2, p3), 0≤k1≤2N1-1, 0≤p2≤N2-1, 0≤p3≤N3-1; n=1, 2, 3. Общее количество комплексных чисел в этом массиве равно 6 N1N2N3.Step 2. We perform a fast discrete Fourier transform with respect to the integer variable p 1 . We get an array of numbers V n (k 1 , p 2 , p 3 ), 0≤k 1 ≤2N 1 -1, 0≤p 2 ≤N 2 -1, 0≤p 3 ≤N 3 -1; n = 1, 2, 3. The total number of complex numbers in this array is 6 N 1 N 2 N 3 .

Шаг 3. Для каждого фиксированного k1, 0≤k1≤2N1-1 последовательно производим быстрое дискретное преобразование Фурье по переменным р2, р3. Затем при том же k1, используя формулу (6), получаем значения W ˜ n ( k 1 , k 2 , k 3 )

Figure 00000012
. Далее по переменным k2, k3 производим обратное быстрое дискретное преобразование Фурье. В результате для каждого k1, 0≤k1≤2N1-1, получаем значения Wn(k1, p2, p3), 0≤p2≤N2-1, 0≤р3≤N3-1. Для реализации этого шага требуется дополнительный массив для хранения 12 N2N3 комплексных чисел для проведения преобразований Фурье. Ясно, что, как правило, эта величина существенно меньше чем 6 N1N2N3.Step 3. For each fixed k 1 , 0≤k 1 ≤2N 1 -1 we sequentially produce a fast discrete Fourier transform with respect to the variables p 2 , p 3 . Then, with the same k 1 , using formula (6), we obtain the values W ˜ n ( k one , k 2 , k 3 )
Figure 00000012
. Further, with respect to the variables k 2 , k 3, we perform the inverse fast discrete Fourier transform. As a result, for each k 1 , 0≤k 1 ≤2N 1 -1, we obtain the values of W n (k 1 , p 2 , p 3 ), 0≤p 2 ≤N 2 -1, 0≤р 3 ≤N 3 - one. To implement this step, an additional array is required to store 12 N 2 N 3 complex numbers for Fourier transforms. It is clear that, as a rule, this value is substantially less than 6 N 1 N 2 N 3 .

Шаг 4. Произведем быстрое обратное дискретное преобразование Фурье по переменной k1. Получаем требуемые значения Wn(p1, p2, p3), 0≤p1≤N1-1, 0≤p2≤N2-1, 0≤p3≤N3-1.Step 4. We perform a fast inverse discrete Fourier transform with respect to the variable k 1 . We obtain the required values of W n (p 1 , p 2 , p 3 ), 0≤p 1 ≤N 1 -1, 0≤p 2 ≤N 2 -1, 0≤p 3 ≤N 3 -1.

Для реализации изложенной схемы необходим объем памяти для хранения массива, равного { B ˜ n m ( k 1 , k 2 , k 3 ) }

Figure 00000013
, k∈П2, число элементов которого определяется формулой (8), и двух вышеупомянутых массивов. Таким образом, для реализации вышеизложенной эффективной схемы умножения матрицы СЛАУ на вектор, общее количество комплексных чисел, которое надлежит одновременно хранить в памяти компьютера, определяется формулойTo implement the above scheme, the amount of memory required to store an array equal to { B ˜ n m ( k one , k 2 , k 3 ) }
Figure 00000013
, k∈P 2 , the number of elements of which is determined by formula (8), and the two above-mentioned arrays. Thus, to implement the above effective scheme for multiplying the SLAE matrix by a vector, the total number of complex numbers that must be simultaneously stored in computer memory is determined by the formula

Figure 00000014
Figure 00000014

Число арифметических операций, требуемое для вычисления Wn(p), p∈П, оценивается формулойThe number of arithmetic operations required to calculate W n (p), p∈P, is estimated by the formula

Figure 00000015
Figure 00000015

где LOG(N)=N определяется как сумма всех делителей целого числа N с учетом их кратности.where LOG (N) = N is defined as the sum of all divisors of the integer N, taking into account their multiplicity.

Действительно, при проведении преобразования Фурье вычисления можно проводить в любой последовательности переменных. Поэтому очевидно, что наименьшее количество операций потребуется для приведенной выше последовательности.Indeed, when carrying out the Fourier transform, calculations can be performed in any sequence of variables. Therefore, it is obvious that the least number of operations will be required for the above sequence.

Если числа N1, N2, N3 являются степенями числа 2, то можно воспользоваться известным быстрым преобразованием Фурье. Тогда число арифметических операций для вычисления функций дискретного аргумента W(p), p∈П, оценивается формулойIf the numbers N 1 , N 2 , N 3 are powers of 2, then we can use the well-known fast Fourier transform. Then the number of arithmetic operations for calculating the functions of the discrete argument W (p), p∈P, is estimated by the formula

Figure 00000016
Figure 00000016

Если для умножения матрицы СЛАУ на вектор использовать (6) без применения рассмотренной схемы, то количество арифметических операций и требуемый объем памяти будут в несколько раз больше.If, to multiply the SLAE matrix by a vector, use (6) without applying the considered scheme, the number of arithmetic operations and the required memory size will be several times larger.

Обычно при использовании быстрого дискретного преобразования Фурье выбираются значения N, кратные степени 2. Однако при дискретизации интегральных уравнений, это, во многих случаях, может привести к значительным дополнительным вычислительным затратам, поскольку скважность чисел степени 2 весьма велика. Поясним на примере. Пусть N1=N2=N3=N0, т.е. П-куб. Предположим, что для аппроксимации решения с требуемой точностью, достаточно взять значение N0=150. Ближайшие степени двойки - числа 128 и 256. Значение 128 не удовлетворяет требованию аппроксимации решения, поэтому, если мы хотим воспользоваться стандартным БПФ, то необходимо брать значение N0=256. Пусть Т(N0) - число арифметических операций, которое требуется для умножения матрицы СЛАУ на вектор, в зависимости от значений N0. Тогда имеем,Usually, when using the fast discrete Fourier transform, N values that are multiples of degrees 2 are selected. However, when discretizing integral equations, this, in many cases, can lead to significant additional computational costs, since the duty cycle of numbers of degree 2 is very large. Let us illustrate with an example. Let N 1 = N 2 = N 3 = N 0 , i.e. P-cube Suppose that to approximate the solution with the required accuracy, it is enough to take the value N 0 = 150. The nearest powers of two are the numbers 128 and 256. The value 128 does not satisfy the requirement of approximating the solution, therefore, if we want to use the standard FFT, then we need to take the value N 0 = 256. Let T (N 0 ) be the number of arithmetic operations that is required to multiply the SLAE matrix by a vector, depending on the values of N 0 . Then we have

Figure 00000017
Figure 00000017

Объем памяти для хранения матрицы СЛАУ при N0=256 в несколько раз больше, чем при N0=150. Значит, использование БПФ для значения N0=150 значительно более эффективно, чем использование БПФ со степенью 2.The memory capacity for storing the SLAE matrix at N 0 = 256 is several times larger than at N 0 = 150. Therefore, the use of an FFT for a value of N 0 = 150 is significantly more effective than the use of an FFT with a degree of 2.

Отметим, что использование БПФ дает для числа арифметических операций практически линейную зависимость от размерности СЛАУ по сравнению с квадратичной зависимостью, которая появляется при умножении матрицы на вектор без применения специальных быстрых алгоритмов. Это чрезвычайно важно при численном решении объемных интегральных уравнений, которые после дискретизации сводятся к СЛАУ огромной размерности (больше 106). При этом нужно отметить, что объем памяти также имеет практически линейную зависимость от размерности матрицы. Это обстоятельство очень важно, поскольку без использования эффективных методов дискретизации объем требуемой памяти имеет квадратичную зависимость от размерности.Note that the use of FFT gives for the number of arithmetic operations an almost linear dependence on the dimension of the SLAE compared with the quadratic dependence that appears when the matrix is multiplied by a vector without using special fast algorithms. This is extremely important for the numerical solution of volumetric integral equations, which after discretization are reduced to SLAEs of enormous dimension (more than 10 6 ). It should be noted that the amount of memory also has an almost linear dependence on the dimension of the matrix. This circumstance is very important, since without the use of effective discretization methods, the amount of required memory has a quadratic dependence on the dimension.

На этой основе предлагается реализовать способ организации арифметического ускорителя для решения больших систем линейных уравнений.On this basis, it is proposed to implement a method of organizing an arithmetic accelerator to solve large systems of linear equations.

Проведем ранжирование и расположим N1, N2, N3 в порядке убывания, т.е. N1≥N2≥N3.We will rank and arrange N 1 , N 2 , N 3 in descending order, i.e. N 1 ≥N 2 ≥N 3 .

Произведем быстрое дискретное преобразование Фурье по целочисленной переменной р1. Получаем массив чисел Vn(k1, p2, p3), 0≤k1≤2N1-1, 0≤p2≤N2-1, 0≤p3≤N3-1; n=1, 2, 3. Общее количество комплексных чисел в этом массиве равно 6 N1N2N3.We perform a fast discrete Fourier transform with respect to the integer variable p 1 . We get an array of numbers V n (k 1 , p 2 , p 3 ), 0≤k 1 ≤2N 1 -1, 0≤p 2 ≤N 2 -1, 0≤p 3 ≤N 3 -1; n = 1, 2, 3. The total number of complex numbers in this array is 6 N 1 N 2 N 3 .

Для каждого фиксированного k1, 0≤k1≤2N1-1, последовательно производим быстрое дискретное преобразование Фурье по переменным р2, р3. Затем при том же k1, используя формулу (6), получаем значения W ˜ n ( k 1 , k 2 , k 3 )

Figure 00000012
. Далее по переменным k2, k3 производим обратное быстрое дискретное преобразование Фурье. В результате для каждого k1, 0≤k1≤2N1-1, получаем значения Wn(k1, p2, p3), 0≤p2≤N2-1, 0≤p3≤N3-1. Для реализации этого шага требуется дополнительный массив для хранения 12 N2N3 комплексных чисел для проведения преобразований Фурье. Ясно, что, как правило, эта величина существенно меньше чем 6 N1N2N3.For each fixed k 1 , 0≤k 1 ≤2N 1 -1, we sequentially produce a fast discrete Fourier transform in the variables p 2 , p 3 . Then, with the same k 1 , using formula (6), we obtain the values W ˜ n ( k one , k 2 , k 3 )
Figure 00000012
. Further, with respect to the variables k 2 , k 3, we perform the inverse fast discrete Fourier transform. As a result, for each k 1 , 0≤k 1 ≤2N 1 -1, we obtain the values of W n (k 1 , p 2 , p 3 ), 0≤p 2 ≤N 2 -1, 0≤p 3 ≤N 3 - one. To implement this step, an additional array is required to store 12 N 2 N 3 complex numbers for Fourier transforms. It is clear that, as a rule, this value is substantially less than 6 N 1 N 2 N 3 .

Произведем быстрое обратное дискретное преобразование Фурье по переменной k1. Получаем требуемые значения Wn(p1, p2, p3), 0≤p1≤N1-1, 0≤p2≤N2-1, 0≤p3≤N3-1.We perform inverse fast discrete Fourier transform variable k by one. We obtain the required values of W n (p 1 , p 2 , p 3 ), 0≤p 1 ≤N 1 -1, 0≤p 2 ≤N 2 -1, 0≤p 3 ≤N 3 -1.

Предложенный способ реализуется следующим образом.The proposed method is implemented as follows.

Производят доступ к блоку общей памяти одного или более третичных или четвертичных процессоров, выбранных из произвольного множества разнородных процессоров, затем выявляют свободный первичный процессор и разделяют промежуточный результат на группы, производят индексирование и записывают значения промежуточного результата в каждой группе в блок общей памяти. Далее выявляют свободный третичный процессор и производят ранжирование индексов и по одному из трех последовательных индексов, выбранных из множества индексов, производят быстрое дискретное преобразование Фурье, записывают результаты преобразования в блок общей памяти, затем выявляют свободный четвертичный процессор, рассматривают значения элементов матрицы для первого индекса последовательно и производят быстрые дискретные преобразования Фурье по двум другим индексам, затем умножают почленно получившиеся значения по этим двум индексам на Фурье преобразования теплицевой матрицы для этих индексов, затем производят обратное быстрое дискретное преобразование Фурье по этим двум индексам, результаты преобразований записывают в локальную память четвертичного процессора, по окончании процесса производят обратное быстрое дискретное преобразование Фурье по первому индексу, записывают результат в общую память.The shared memory block of one or more tertiary or quaternary processors selected from an arbitrary set of heterogeneous processors is accessed, then a free primary processor is identified and the intermediate result is divided into groups, indexing is performed and the values of the intermediate result in each group are recorded in the shared memory block. Next, a free tertiary processor is identified and the indices are ranked, and one of three consecutive indices selected from a plurality of indices is performed, a fast discrete Fourier transform is performed, the results of the transformation are written to the shared memory block, then a free quaternary processor is identified, matrix element values for the first index are examined sequentially and produce fast discrete Fourier transforms for two other indices, then multiply the term-by-value values obtained for these two and Dex on Fourier transform Toeplitz matrix for these indexes, then produce an inverse fast discrete Fourier transform on the two indices, the result is loaded into local memory quaternary processor, upon completion of the process produces an inverse fast discrete Fourier transform on the first index, record the result in shared memory.

Технический результат заключается в уменьшении роста числа арифметических операций и реализации роста арифметических операций пропорционально числу неизвестных и связан с использованием метода быстрого умножения циркулянтных матриц на вектор, основанный на быстром дискретном преобразовании Фурье.The technical result consists in reducing the growth in the number of arithmetic operations and realizing the growth of arithmetic operations in proportion to the number of unknowns and is associated with the use of the method of fast multiplication of circulant matrices by a vector based on the fast discrete Fourier transform.

Claims (1)

Способ организации арифметического ускорителя для решения больших систем линейных уравнений, включающий общую память, доступную для первичных и одного или более вторичных процессоров, прием множества коэффициентов, связанных с набором линейных уравнений в общую память и разделением их на блоки коэффициентов с использованием одного или более первичных процессоров, выявление доступного вторичного процессора для обработки выбранного блока коэффициентов, передачу его из общей памяти в блок локальной памяти вторичного процессора с последующей обработкой для получения промежуточного результата и передачей его в общую память, отличающийся тем, что производят доступ к блоку общей памяти одного или более третичных или четвертичных процессоров, выбранных из произвольного множества разнородных процессоров, выявляют свободный первичный процессор и разделяют промежуточный результат на группы, производят индексирование и записывают значения промежуточного результата в каждой группе в блок общей памяти, выявляют свободный третичный процессор и производят ранжирование индексов и по одному из трех последовательных индексов, выбранных из множества индексов, производят быстрое дискретное преобразование Фурье, записывают результаты преобразования в блок общей памяти, выявляют свободный четвертичный процессор, рассматривают значения элементов матрицы для первого индекса последовательно и производят быстрые дискретные преобразования Фурье по двум другим индексам, затем умножают почленно получившиеся значения по этим двум индексам на Фурье преобразования теплицевой матрицы для этих индексов, затем производят обратное быстрое дискретное преобразование Фурье по этим двум индексам, результаты преобразований записывают в локальную память четвертичного процессора, по окончании процесса производят обратное быстрое дискретное преобразование Фурье по первому индексу, записывают результат в общую память. A method of organizing an arithmetic accelerator for solving large systems of linear equations, including shared memory available for primary and one or more secondary processors, receiving a plurality of coefficients associated with a set of linear equations in a common memory and dividing them into blocks of coefficients using one or more primary processors , identifying the available secondary processor for processing the selected block of coefficients, transferring it from the shared memory to the local memory block of the secondary processor from the last by further processing to obtain an intermediate result and transferring it to the shared memory, characterized in that they access the shared memory block of one or more tertiary or quaternary processors selected from an arbitrary set of heterogeneous processors, identify a free primary processor and divide the intermediate result into groups, produce indexing and record the values of the intermediate result in each group in the block of shared memory, identify the free tertiary processor and rank ind indexes and one of three consecutive indices selected from a plurality of indices, produce a fast discrete Fourier transform, write the results of the conversion to a shared memory block, identify a free Quaternary processor, examine the values of the matrix elements for the first index sequentially and perform fast discrete Fourier transforms on the other two indices, then multiply the term-by-term values obtained by these two indices by the Fourier transform of the greenhouse matrix for these indices, then produce odyat inverse fast discrete Fourier transform on the two indices, the result is loaded into local memory quaternary processor at the end of the process producing discrete inverse fast Fourier transform on the first index, the result is written to shared memory.
RU2013123082/08A 2013-05-21 2013-05-21 Method of setting up arithmetic accelerator for solving large systems of linear equations RU2547618C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2013123082/08A RU2547618C2 (en) 2013-05-21 2013-05-21 Method of setting up arithmetic accelerator for solving large systems of linear equations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013123082/08A RU2547618C2 (en) 2013-05-21 2013-05-21 Method of setting up arithmetic accelerator for solving large systems of linear equations

Publications (2)

Publication Number Publication Date
RU2013123082A RU2013123082A (en) 2014-11-27
RU2547618C2 true RU2547618C2 (en) 2015-04-10

Family

ID=53296740

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013123082/08A RU2547618C2 (en) 2013-05-21 2013-05-21 Method of setting up arithmetic accelerator for solving large systems of linear equations

Country Status (1)

Country Link
RU (1) RU2547618C2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1290347A1 (en) * 1985-06-28 1987-02-15 Вц Со Ан Ссср Device for solving differential equations by implicit variable directions scheme
SU1755295A2 (en) * 1990-11-05 1992-08-15 Военная инженерная радиотехническая академия противовоздушной обороны им.Маршала Советского Союза Говорова Л.А. Device for decomposing symmetric matrices
US7236998B2 (en) * 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
RU2312388C2 (en) * 2005-09-22 2007-12-10 Андрей Игоревич Ефимов Method for organization of multi-processor computer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1290347A1 (en) * 1985-06-28 1987-02-15 Вц Со Ан Ссср Device for solving differential equations by implicit variable directions scheme
SU1755295A2 (en) * 1990-11-05 1992-08-15 Военная инженерная радиотехническая академия противовоздушной обороны им.Маршала Советского Союза Говорова Л.А. Device for decomposing symmetric matrices
US7236998B2 (en) * 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
RU2312388C2 (en) * 2005-09-22 2007-12-10 Андрей Игоревич Ефимов Method for organization of multi-processor computer

Also Published As

Publication number Publication date
RU2013123082A (en) 2014-11-27

Similar Documents

Publication Publication Date Title
Wang et al. Statistical methods and computing for big data
Chen et al. H-PARAFAC: Hierarchical parallel factor analysis of multidimensional big data
Dang et al. CUDA-enabled Sparse Matrix–Vector Multiplication on GPUs using atomic operations
Yang et al. A pipeline computing method of SpTV for three-order tensors on CPU and GPU
Dang et al. The sliced coo format for sparse matrix-vector multiplication on cuda-enabled gpus
Ballard et al. Avoiding communication in successive band reduction
US20180373677A1 (en) Apparatus and Methods of Providing Efficient Data Parallelization for Multi-Dimensional FFTs
Moxey et al. Optimising the performance of the spectral/hp element method with collective linear algebra operations
Oyarzun et al. Portable implementation model for CFD simulations. Application to hybrid CPU/GPU supercomputers
Wu et al. An optimized FFT-based direct Poisson solver on CUDA GPUs
Magoulès et al. Auto-tuned Krylov methods on cluster of graphics processing unit
Liu et al. A multiscale semi-smooth Newton method for optimal transport
Takahashi Implementation of parallel 1-D FFT on GPU clusters
Cuomo et al. On GPU–CUDA as preprocessing of fuzzy-rough data reduction by means of singular value decomposition
Golovashkin et al. Solving finite-difference equations for diffractive optics problems using graphics processing units
Gu et al. Deflated and restarted Krylov subspace methods for Sylvester tensor equations
RU2547618C2 (en) Method of setting up arithmetic accelerator for solving large systems of linear equations
Tomczak et al. Acceleration of iterative Navier-Stokes solvers on graphics processing units
Arumugam et al. A memory efficient algorithm for adaptive multidimensional integration with multiple GPUs
Phipps et al. Exploring emerging manycore architectures for uncertainty quantification through embedded stochastic Galerkin methods
Wu et al. EITHOT: Efficient In-place Transposition of High Order Tensors on GPUs
You et al. Evaluating multi-core and many-core architectures through accelerating the three-dimensional Lax–Wendroff correction stencil
Godoy et al. Introduction of parallel GPGPU acceleration algorithms for the solution of radiative transfer
Carrillo-Cabada et al. An out of memory tsvd for big-data factorization
Kunis et al. Fast evaluation of real and complex exponential sums

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160522