Параллельно-конвейерное упорядочение неограниченного массива

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Gaiduk Anatoly Romanovich — Southern Federal University- e-mail: gaiduk_2003@mail. ru- 26, Slesamaya street, app. 2, Taganrog, 347 904, Russia- phone: +78 634 626 287- the department of automatic control systems- dr. of eng. sc.- professor.
Gelozhe Yuriy Andreevich — 44, Nekrasovskiy, GSP-17A, Taganrog, 347 928, Russia- the department of radio Engineering and telecommunication systems- cand. of eng. sc.- professor.
Semenova Alexandra Vladimirovna — Ltd. Co. «DATAMICRO». e-mail: alexaforum@rambler. ru- 12, Vishnevaya street, Taganrog, 347 900, Russia- phone: +78 634 310 990- systems engineer.
УДК 681.3. 06: 681. 323 (519. 6)
Я. Е. Ромм, И.И. Стаховская
ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНОЕ УПОРЯДОЧЕНИЕ НЕОГРАНИЧЕННОГО МАССИВА
Представлены параллельно-конвейерные алгоритмы слияния с неограниченным массивом, которые построены на основе матриц сравнения. Многопутевое слияние по матрицам сравнения максимально параллельно и выполняется с единичной временной сложностью. Параллельная сортировка на этой основе выполняется с длительностью logM N последовательных сравнений, где M — число путей слияния, N — длина последовательности. С применением многопутевого слияния синтезирован алгоритм параллельно-конвейерной сортировки массива неограниченной длины. Конвейер в каждом такте единичной длительности принимает на вход новый неупорядоченный массив из M х n элементов или новую часть такой же длины неограниченного входного массива. Время загрузки конвейера имеет единичную длительность, на выходе в такте той же длительности к упорядоченному массиву неограниченной длины добавляются новые M х n элементов с сохранением порядка всего выходного массива в целом. Даны оценки временной сложности, числа процессорных элементов, количества сегментов конвейера. Сегменты конвейера для неограниченного возрастания выходного массива образуют последовательность процессоров, количество которых на i -м шаге загрузки в сумме составитr =(2'-+1 -t^M2 И •
1=0
Параллельно-конвейерные алгоритмы- массив неограниченной длины- параллельная сортировка- многопутевое слияние- матрица сравнения- временная сложность.
Ya.E. Romm., I.I. Stakhovskaya PARALLEL-CONVEYOR ORDERING ARRAY OF UNLIMITED LENGTH
Presented parallel-conveyor algorithms merger with unlimited array that is built on the basis of the comparison matrix. Multipath synthesized by comparison matrix maximum parallel and performed with the unit time complexity. Parallel sorting on this basis performed duration logM N consecutive comparisons, where M — number of paths merger, N — consecution length. With the application of multipath synthesized fusion algorithm parallel-conveyor sorting an array of unlimited length. Conveyor unit in each cycle duration takes a new unlimited array mx n of items, or a new part of the same unlimited length of the input array. Time loading has unit length of conveyor, output in the same clock cycle continuation to an ordered array of unlimited length adding mx n new elements while the same order as a whole of the output array. Are given estimates for the time complexity, amount of processing elements, amount of conveyor seg-
ments. Conveyor segments for an unlimited increase in the output array form a consecutive of
processors, amount on i -th step load for a total of ^^ R ={l'-+l — i) m 2 n2.
1=0
Parallel-conveyor algorithm- an array of unlimited length- parallel sorting- multipath merger- matrix comparisons- time complexity.
1. Постановка вопроса. Ставится задача синтеза и анализа параллельно-конвейерных алгоритмов слияния с неограниченным массивом данных на основе матриц сравнения (МС). Актуальность этой задачи обусловлена необходимостью обработки и поиска растущих объемов информации в режиме реального времени. Понятие М С, исходные описания основанных на них параллельных алгоритмов слияния и сортировок заимствованы из [1−3]. Метод упорядочивания массива неограниченной длины строится на основе устойчивой сортировки многопутевым слиянием, выполняемой максимально параллельно с использованием МС. При этом метод состоит из двух частей. Первая — упорядочение входной информации (неупорядоченного массива) с помощью параллельной сортировки многопутевым слиянием, вторая — параллельно-конвейерное добавление к упорядоченной части массива нового упорядоченного массива путем слияния по МС. Описание составляют формализованные алгоритмы, для которых даны оценки временной сложности и числа процессоров на модели неветвящихся параллельных программ без учета обмена.
2. Параллельная сортировка многопутевым слиянием по МС. Традиционно сортировка многопутевым слиянием рассматривается как один из подходов к повышению эффективности сортировок посредством вовлечения в процесс дополнительных каналов обмена данными [4]. Ниже традиционное понятие видоизменяется следующим образом. Многопутевое слияние (M -слияние) будет применяться к M одномерным массивам, упорядоченным по отношению & lt- (по неубыванию, другой порядок не рассматривается), преобразуя их в единый упорядоченный массив, слияние при этом должно сохранять порядок равных элементов. Пусть рассматривается массив
{d}^, N & lt-«. (1)
Вводятся вспомогательные определения. Одномерный массив из m упорядоченных элементов будет называться отрезком длины m. Если два отрезка
{aj} -=ь {ьг} i=x (2)
сливаются в единый отрезок длины m + n
{-л-
,.1. (3)
то каждый из отрезков (2) называется сливаемым, отрезок (3) — слитым. При описании сортировки М -слиянием массива (1) будет предполагаться, если не оговорено иное, что N — целая степень постоянного числа М, М & gt- 2. МС для 2-слияния отрезков (2) составляется из элементов
1, Ь & lt- а,
а,. = sign (а. — bi) =& lt-
0, b = aj, i =1,2,…, m- j =1,2,…, n. (4)
-1, aj & lt- bi.
При этом сливаемые отрезки дополняются ограничителями: a0 = Ь0 = - & lt-
am+1 = bn+1 = ж и соответственными элементами МС.
Пример. Для 2-слияния отрезков (1, 2), (2, 5) (т = п) набор МС имеет вид:
-00 1 2 СС
-00
1
2
се
МС& lt-"->-
-00 2 5 00
-со 0 + + +
1 — + + +
2 — 0 + +
X — - - 0
МС & lt-12>-
-СС 1 2 СС
-СО 0 + + +
2 — - 0 +
5 — - - +
=0 — - - 0
мсш)
-СС 2 5 СС
-СО
2
5
СС
МС & lt-22>-
На основе данного набора МС определяется номер любого элемента в выходном массиве { с,}& quot- по следующему правилу вставки. Элемент 7 -й строки
МС получает в выходном массиве номер, равный / + ]'-, где 7 — номер столбца МС, в котором происходит смена знака в той же строке с неотрицательного на положительный, если МС расположена до пустой диагональной МС, и с отрицательного на неотрицательный, если МС расположена после пустой диагональной МС, в порядке слева направо. В данном примере для 2-слияния получим:
Ь1 = 1 ^ С1+0 = С1, Ь2 = 2 ^ С2+0 = С2, а 1 = 2 ^ С1+ 2 = С3, а 2 = 5 ^ С 2+2 = С 4.
В общем случае количество МС линейно & quot-по горизонтали& quot- повторяется столько раз, сколько сливаемых отрезков, и столько же раз такая линейка повторяется по вертикали, их количество равно М2, размер каждой МС — т х п. Ниже предполагается т = п. Правило вставки для общего случая имеет вид:
^ =С + А + Л +••• +7,-1 + М+1 + 7,+2 + • • • + л • (5)
где С — номер строки МС (собственный номер элемента в сливаемом отрезке), /,. — номер столбца МС, элемент I -й строки которого образует смену знака в паре с элементом (_/ +1)-го столбца. Смена знака в МС определяется как пара элементов строки вида
если j& gt-i, 1 & lt- 0, а, & gt- 0, если / & lt- /, ] где /, 7 — индексы строк и столбцов, состоящих из матриц, в наборе из М2 МС- к = у п + & gt-С>-0<-к<-п +, 1& lt-/ & lt-М>- j& gt-.
Разновидности правила даны в [3]. Выходной номер можно определять одновременно для всех элементов всех сливаемых отрезков, вставки взаимно независимы и могут выполняться параллельно, что всюду предполагается в дальнейшем. На основе (5), (6) в результате М-слияния сохраняется исходный взаимный порядок равных элементов, включая случай, когда они принадлежат различным отрезкам из (7). Таким образом, справедлива следующая лемма.
Лемма 1. В силу взаимной независимости всех сравнений М-слияние по МС максимально параллельно и выполняется с временной сложностью
t®, (7)
где число процессоров R = M2 х n2.
Алгоритм параллельной сортировки на основе М -слияния [3, 5]:
N
Шаг 1. Массив с сохранением порядка элементов разбивается на — групп по
М
М элементов. Внутри каждой группы по всем элементам выполняется М-слияние. Роль сливаемых отрезков длины n = 1 играют элементы группы. Результат шага —
N
— отрезков, каждый длины М х n=М, располагаемых слева направо в порядке
М
исходного взаимного расположения групп.
N
Шаг i & gt- 2. Пусть в результате (i -1) -го шага получены -- слитых отрезков, каждый длины n = М'--1. Эти отрезки в порядке их расположения слева напра-
N N
во делятся на -- групп. По -- группам и по всем элементам групп выполняется
М'- М'-
N
параллельное М-слияние отрезков в каждой группе. Результат шага--- слитых
М'-
отрезков длины М х n=М'-, располагаемых слева направо в порядке взаимного расположения на данном шаге групп сливаемых отрезков.
На шаге i = logМ N сортировка будет закончена. Количество процессоров
1 (М -1 I
на I -м шаге сортировки R = - I IN М'-.
Параллельная сортировка подсчетом на основе МС является частным случаем сортировки М-слиянием при М = N,'- = log nN = 1, n = N'--1 = 1. Отсюда вытекает
Теорема 1 [3]. Без учета длительности обмена параллельная сортировка М-слиянием массива из N элементов, N — целая степень числа М, М & gt- 2, на
R = (М-1 IN2 процессорах выполнима с длительностью log^^ N последователь-
выполняется
ных сравнений: T М-11N2 log^mN t = O{iogМN). Сортировка
по правилам вставки, инвариантным относительно М. Как частный случай при М = N получается максимально параллельная форма сортировки подсчетом:
T
(N 2 Л
N-)" — - о «¦
V /
3. Параллельное слияние с неограниченным массивом. В [5] изложен вариант слияния упорядоченного одномерного массива переменной длины с отрезком фиксированной длины, при котором одномерный массив преобразуется в матрицу, слияние с ним выполняется последовательно по строкам, но параллельно в каждой строке, на выходе получается упорядоченный массив переменной длины. Этот процесс допускает конвейеризацию по строкам исходной матрицы [5, 6]. Обоснование алгоритма параллельной сортировки на основе М-слияния и несколько его разновидностей изложены в [6]. Ниже излагается аналог такого подхода, основанный на М-слиянии. Будем рассматривать такую организацию слияний, при которой на вход конвейера поступает одновременно М уже упорядоченных отрезков длины п, каждый предназначен для слияния с исходной матрицей (упорядоченным массивом неограниченной длины), на выходе получается единый упорядоченный массив, который интерпретируется как матрица из упорядоченных строк. Более точно, над поступившими на вход отрезками выполняется М-слияние за время иг на М2 п2 процессоров согласно (9). Полученный отрезок длины Мп сливается по одной МС с первыми Мп элементами исходного массива, образуя в результате отрезок длины 2Мп. Для выполнения этой операции требуется также М2 п2 процессоров, время слияния иг = О (1). За время выполнения данного слияния на вход конвейера могут поступить новые М уже упорядоченных отрезков длины п и над ними также может быть выполнена операция М-слияния. Ее результат, в свою очередь, может передаваться по конвейеру для слияния с только что преобразованным исходным массивом, в то время как результат предыдущего преобразования продолжит слияние по одной МС со следующей частью исходного массива длины 2Мп, на выходе получится отрезок длины 4Мп и т. д.
Конвейер принимает на вход в каждом такте единичной длительности новые М отрезков длины п.
В результате, временную сложность конвейера характеризует теорема.
Теорема 2. На вход конвейера в каждом такте единичной длительности поступают новые М отрезков длины п, на выходе образуется упорядоченный массив неограниченной длины. После загрузки производительность конвейера измеряется слиянием Мп элементов в одном такте длительности иг=О (1). Число
процессоров для слияния входных отрезков составляет Я = М2п2. Сегменты конвейера для неограниченного возрастания выходного массива образуют последовательность из Я = 2'-М2п2 процессоров на I -м шаге загрузки, что в сумме составит ^ Я =(2г+1 -1^М2 п2 процессоров.
1=0
Следствие 4. Конвейер, представленный теоремой 2, в М раз производительней конвейера на основе слияния упорядоченного одномерного массива переменной длины с отрезком фиксированной длины [5, 6] за счет того, что с интервалом т на его вход поступают одновременно М новых отрезков длины п каждый.
4. Параллельная сортировка неограниченного массива. Если М новых отрезков длины п каждый, которые синхронно поступают на вход конвейера, не считать априори заданными, а каждый из них получать в результате сортировки, то дальнейшая организация конвейера не изменится. По длительности такта она также не изменится, если на входе упорядочение каждого отрезка производить за такт конвейера, причем синхронно по всем отрезкам. Требуемое упорядочение отрезка можно выполнить с помощью параллельной сортировки подсчетом, опи-
чае оценивается из соотношения Т
санной выше в качестве частного случая параллельной сортировки М-слиянием при М = п. Такая сортировка интерпретируется как максимально параллельная со свойством устойчивости [7] (сохраняет порядок равных элементов, кроме того, эта сортировка обладает свойством взаимно-однозначного соответствия входных и выходных индексов в явной форме [1, 8]), ее временная сложность в данном слу-
(2Л п (
— и т = О (11. Последняя оценка в точности 2
/
соответствует длительности такта рассматриваемого конвейера. Если таким образом синхронно сортировать все одновременно поступающие на вход конвейера М новых отрезков длины п, каждый из которых априори не упорядочен, то такт конвейера сохранится, равно как и его дальнейшая организация. Увеличится только оборудование для предварительного выполнения данной сортировки, оно составит
М х процессоров — по числу одновременно сортируемых отрезков. Таким образом, полное количество процессоров модифицированного конвейера с учетом оценки теоремы 2 на / -м шаге загрузки составит
Я = М х у + 2/+1 -1 ^ М2 п2. (10)
Замечание. Изложенная организация конвейера автоматически приводит к сортировке массива неограниченной длины: достаточно заметить, что входной неупорядоченный одномерный массив длины М х п можно разделить на М отдельных отрезков длины п, которые в дальнейшем обрабатываются только что изложенным выше образом.
Теорема 3. Параллельно-конвейерная сортировка массива неограниченной длины может выполняться путем поступления в каждом такте нового неупорядоченного одномерного массива длины Мп, который разделяется на М равных отрезков, синхронно сортируемых с помощью максимально параллельной сортировки подсчетом каждый. Число процессоров для сортировки М входных отрезков
длины п отрезков составит М х. Суммарная оценка временной сложности
данной предварительной сортировки имеет вид Т
f 2 M — 2
V /
:= O (i). На вход кон-
вейера в каждом такте единичной длительности поступают таким образом упорядоченные М отрезков длины п, на выходе конвейера образуется упорядоченный массив неограниченной длины. После загрузки производительность конвейера измеряется сортировкой Мп неупорядоченных элементов одномерного массива в одном такте длительности и г = О (1). Сегменты конвейера для неограниченного
возрастания выходного массива образуют последовательность из Я/ = 2'-М2п2 процессоров на / -м шаге загрузки, что в сумме с входными процессорами для предварительной сортировки составит количество К из (10).
Следствие 5. Конвейер, представленный теоремой 3, выполняет сортировку неограниченного входного массива, из которого на вход в каждом такте вырезается новая часть длины Мп.
Таким образом, в работе изложены параллельно-конвейерные схемы алгоритмов сортировки и слияния с интенсивной обработкой сверхбольших объёмов данных, что актуально в аспекте сверхбыстродействующей обработки информации [9−11].
Выводы. Представлено решение задачи синтеза и анализа параллельно -конвейерных алгоритмов слияния с неограниченным массивом данных на основе МС и аналогичных алгоритмов сортировки неограниченных массивов. Временная сложность предложенных алгоритмов оценивается на модели неветвящихся параллельных программ. Базовые алгоритмы опираются на параллельную сортировку и параллельно-конвейерное многопутевое слияние по МС. Принципиально, что конвейер в каждом такте единичной длительности принимает на вход новый неупорядоченный массив из М х п элементов или новую часть такой же длины неограниченного входного массива. Время загрузки конвейера имеет единичную длительность, при этом на выходе в каждом такте к упорядоченному массиву неограниченной длины добавляются новые тхп элементов с сохранением порядка всего
I 7+1 1 I 2 2
выходного массива в целом. На / -м шаге загрузки задействуются I 2 — IМ п
2,
процессоров по сегментам конвейера.
БИБЛИОГРАФИЧЕСКИМ СПИСОК
1. Ромм Я. Е. Параллельная сортировка слиянием по матрицам сравнений. I // Кибернетика и системный анализ. — 1994. — № 5. — С. 3−23.
2. Ромм Я. Е. Параллельная сортировка слиянием по матрицам сравнений. II // Кибернетика и системный анализ. — 1995. — № 4. — С. 13−37.
3. Ромм Л. Я. Целочисленная идентификация плоских изображений с учетом множества внутриконтурных точек на основе экстремальных признаков и алгоритмов сортировки: Автореф. дис. … канд. техн. наук. — Таганрог: ЮФУ. — 2013. — 21 с.
4. Царев Р. Ю. Структуры и алгоритмы обработки данных. — Красноярск: Сиб. федер. ун-т, 2013. — 160 с.
5. Ромм Я. Е. Бесконфликтные и устойчивые методы детерминированной параллельной обработки: Дис. … д-ра техн. наук. — Таганрог: ТРТУ. — 1998. — 546 с.
6. Ромм Я. Е. Стаховская И.И. Параллельно-конвейерное упорядочение массива неограниченной длины. — Таганрог. гос. пед. ин-т., 2013. — 27 с.
7. Вирт Н. Алгоритмы и структуры данных. — М.: Мир, 1989. — 360 с.
8. Ромм Я. Е. Локализация и устойчивое вычисление нулей многочлена на основе сортировки. I // Кибернетика и системный анализ. — 2007. — № 1. — С. 165−183.
9. Гречко В. О., Фальфушинский В. В. Параллельно-конвейерные схемы алгоритмов сортировки // Труды Международной конференции «Высокопродуктивные вычисления» HPC-UA'-2011. — С. 145−149.
10. Легалов А. И. Методы сортировки, полученные из анализа максимально параллельной программы // Распределенные и кластерные вычисления. Избранные материалы Третьей школы семинара. — Красноярск: Институт вычислительного моделирования СО РАН, 2004. — С. 119−134.
11. Мирошниченко С. Ю., Титов В. С. Параллельно-конвейерное устройство для векторизации аэрокосмических изображений земной поверхности // Приборостроение. — 2009. — № 2. — С. 45−52.
Статью рекомендовал к опубликованию д.т.н., профессор Л. П. Фельдман.
Ромм Яков Евсеевич — Таганрогский государственный педагогический институт- e-mail:
romm@list. ru- 347 926, г. Таганрог, ул. Инициативная, 48- тел.: 88 634 601 753, 88 634 601 812,
88 634 601 807- кафедра информатики- зав. кафедрой- д.т.н.- профессор- член Европейской
Академии Естествознания (EuANH).
Стаховская Ирина Илларионовна — e-mail: irihkast@gmail. ru- тел.: 89 034 604 006- студентка магистратуры.
Romm Yakov Evseevich — Taganrog State Pedagogical Institute- e-mail: romm@list. ru- 48, Initsiativnaya street, Taganrog, 347 926, Russia- phones: +78 634 601 753, +78 634 601 812, +78 634 601 807- the department of information science- head of the department- dr. of eng. sc.- professor.
Stakhovskaya Irina Illarionovna — e-mail: irihkast@gmail. ru- phone: +79 034 604 006- the student grade.
УДК 681.3. 06(075)
М.И. Ледовской
АЛГОРИТМ ВЫЧИСЛЕНИЯ ФУНКЦИЙ SIN (X) И COS (X) ДЛЯ 16-РАЗРЯДНЫХ МИКРОКОНТРОЛЛЕРОВ
При использовании микроконтроллеров во встраиваемых системах различного назначения возникает необходимость вычисления элементарных функций sin (x) и cos (x). Решение этой задачи с помощью стандартной библиотеки функций языка С приводит к существенному росту программного кода и времени вычислений для микроконтроллеров с ограниченными вычислительными возможностями. В этом случае альтернативой могут служить собственные подпрограммы на основе таблично-алгоритмического метода, реализуемого с помощью целочисленной арифметики микроконтроллера. Однако преимущества таблично-алгоритмического метода проявляются в том случае, если поправки к табличным значениям функций вычисляются с помощью простейших методов аппроксимации. Негативным следствием применения указанных методов является значительный объем табличных значений функций, которые требуется хранить в памяти микроконтроллера. По этой причине реализация таблично-алгоритмического метода затрудняется. В настоящей работе предлагается алгоритм таблично-алгоритмического метода, который по сравнению с аналогом обеспечивает требуемую точность и позволяет сократить в 8 раз объем табличных значений функций. Алгоритм может найти применение, например, при создании различных устройств со сверхнизким энергопотреблением на базе 16-разрядных микроконтроллеров MSP430 без аппаратного умножителя.
Функция sin (x) — cos (x) — таблично-алгоритмический метод- целочисленный алгоритм, микроконтроллер- погрешность- MATLAB- модель.
M.I. Ledovskoy
THE ALGORITHM OF CALCULATION OF THE FUNCTIONS SIN (X), COS (X) FOR 16-BIT MICROCONTROLLERS
When using microcontrollers and embedded systems for various purposes there is a necessity of calculation of elementary functions sin (x) and cos (x). The solution to this problem using standard С-library functions with leads to substantial growth of code and time of calculations for microcontrollers with limited computing power. In this case, the alternative can serve as your own routines based table-algorithmic method, which is implemented using integer arithmetic microcontroller. However, the advantages of table-algorithmic method appear in the case, if the amendments to the tabular values of the functions are computed using the simplest methods of approximation. A negative consequence of use of the mentioned methods is a significant amount of tabular values of the functions that you want to store in memory of the microcontroller. For this reason, the implementation of a table-algorithmic method difficult. In the present paper an algorithm is proposed table-algorithmic method, which in comparison with the similar provides the required accuracy and reduces to 8 times the amount of the tabular values offunctions. The algorithm can find application, for example, the creation of different devices with ultra low power consumption-based 16-bit MSP430 microcontrollers without hardware multiplier.
The function sin (x) — cos (x) — table-algorithmic method- integer algorithm- microcontroller- error- MATLAB- model.

ПоказатьСвернуть
Заполнить форму текущей работой