Аннотации:
Как правило, именно циклы являются участками кода, вычисление которых занимает много времени. Поэтому, именно на них направляются особые усилия при ускорении программ, в частности, через распараллеливание.
В статье описывается алгоритм распараллеливания циклов, вычисляющих элементы рекуррентно заданной последовательности. Рекуррентные циклы, рассматриваемые в статье, непосредственно распараллелены быть не могут. С помощью вспомогательных преобразований иногда их можно привести к циклам, допускающим параллельное выполнение. Ранее автором статьи был опубликован другой алгоритм распараллеливания циклов, вычисляющих элементы рекурсивно заданной последовательности. В современных процессорах время выполнения арифметических операций оказывается на порядок меньше, чем считывание аргументов этих операций из оперативной
памяти. В данной статье приводятся оценки сложности по обращению к памяти, для
описываемого алгоритма. Представленный в статье параллельный алгоритм оказывается более эффективным по обращениям к памяти, чем алгоритм, описанный автором
ранее. As a rule, sections of code that take a lot of time to compute are loops. Therefore, it is
precisely on them that special efforts are directed when accelerating programs, in particular,
through parallelization.
The article describes the parallelization algorithm for loops calculating the elements
of a recursively given sequence. The recurrent loops considered in the article cannot be
directly parallelized. With the help of auxiliary transformations, they can sometimes be
reduced to loops that allow parallel execution. Earlier, the author of the article published
another algorithm for parallelizing loops that calculate the elements of a recursively given
sequence.
In modern processors, the execution time of arithmetic operations is an order of
magnitude faster than reading the arguments of these operations from RAM. This article
provides estimates of the complexity of accessing memory for the described algorithm. The
parallel algorithm presented in the article is more efficient in accessing memory than the
algorithm described by the author earlier.
Описание:
Олег БорисовичШтейнберг, кандидат физико-математических наук, старший научный сотрудник, лаборатория ≪Вычислительная механика≫, Институт математики,
механики и компьютерных наук им. И.И. Воровича, Южный федеральный университет (г. Ростов-на-Дону, Российская Федерация), olegsteinb@gmail.com. O.B. Steinberg, South Federal University, Rostov-on-Don, Russian Federation,
olegsteinb@gmail.com