№ 3 2006
В. В. Мялицин, Б. Д. Шашков
Эффективность параллельной реализации алгоритмов помехоустойчивого кодирования Рида-Соломона
Осознание того факта, что компьютеры не в состоянии решить многие задачи за приемлемое время, привело в свое время к возникновению мысли о возможности объединения компьютеров в единую систему таким образом, чтобы множество вычислительных систем одновременно работали над различными частями общей задачи. Это послужило стимулом к развитию многопроцессорных вычислительных комплексов, созданию специальных численных методов и, в общем смысле, параллельных вычислений — совокупности средств, методов и технологий, относящихся к созданию ресурсов параллелизма в процессах решения задач и гибкому управлению реализацией этого параллелизма с целью достижения наибольшей эффективности использования вычислительной техники.
Исследования в области параллельных вычислений актуальны, так как их развитие н аправлено на реш ение наиболее важны х проблем науки и техники. Эта предметная область затрагивает изучение структурных свойств алгоритмов и создание новых языков программирования. Параллельные вычисления тесно связаны и с самим процессом конструирования вычислительной техники [1].
Одновременное решение фрагментов одной задачи с большим объемом вычислений, выполняемых разными вычислительными устройствами, часто позволяет значительно сократить время ее решения. Положительный эффект параллельных вычислений очевиден. Однако для систем кластерного типа, получивших в последнее время широкое распространение, время решения задачи при определенных услови-
ях может не сократиться, а наоборот значительно вырасти. Обмен информации между вычислительными устройствами может занимать значительное время в зависимости от характера решаемой задачи и влияния транспортной среды.
Многопроцессорную вычислительную систему кластерного типа можно создать объединением необходимого количества вычислительных узлов коммуникационной средой. Процессоры узла имеют непосредственный доступ только к локальной памяти своего узла, а доступ к данным, расположенным в памяти других узлов, выполняется дольше и с применением более сложных способов и занимает дополнительное время. Преимуществ у такой схемы организации параллельных компьютеров много: простота выбора узлов и коммуникационной среды, соотношение цены и производительности ниже, чем у компьютеров других классов. Сокращение времени вычислений достигается для алгоритмов, где требуется незначительный объем обмена информации при выполнении разными процессорами фрагментов задачи.
В системах передачи данных является актуальной задача снижения асимметричности вычислительной нагрузки на передающей и приемной сторонах при обработке информации. Например, при кодировании данных или сжатии речи на одной стороне и декодировании или распаковке — на другой.
Во многих системах при передаче данных в пакетном режиме используют помехоустойчивые коды, где время декодирования информации на приемной стороне значительно больше времени кодирования информации на передающем конце.
№ 3 2006
Кодирование в данном случае означает формирование избыточной информации с последующим добавлением ее в конец передаваемого сообщения. При приеме сообщение проверяют на наличие ошибок и в случае их обнаружения пытаются получить исходное сообщение (декодировать), используя избыточность, которую рассчитывают исходя из необходимого уровня гарантированной доставки сообщений. Использование сложных с математической точки зрения помехоустойчивых кодов позволяет при незначительном объеме избыточности добиться гарантированного приема информации, однако трудоемкость вычислений значительно возрастает [2].
Для подтверждения возможности получения эффекта от параллельных вычислений фрагментов задач, обладающих внутренним параллелизмом, на параллельных вычислительных системах кластерного типа был проведен ряд экспериментов на многопроцессорных вычислительных комплексах — кластерах, основанных на технологии Beowulf и интерфейсе передачи сообщений MPI. Для практических исследований была выбрана задача помехоустойчивого кодирования информации для систем передачи данных. Широкое распространение алгоритмов кодирования и декодирования кодовых блоков обусловливает интерес к исследованию в целях последующего использования полученных результатов в реальных технических системах.
Выбор многопроцессорных вычислительных комплексов кластерного типа в качестве параллельной вычислительной системы обусловлен их широким распространением и доступностью. Из теоретических соображений ясно, что эффект от параллельных вычислений значительно выше в системах с общей памятью. Однако данные системы слишком дороги, и лишь немногие учреждения могут позволить себе их использовать в целях научных экспериментов.
Из анализа алгоритма обработки кодовых блоков на передающем и принимающем конце системы передачи данных из-
вестно, что декодирование кодового блока заключается в решении нескольких систем линейных алгебраических уравнений, которое хорошо поддается распараллеливанию. Можно достичь значительного сокращения времени декодирования информации на принимающей стороне с целью уменьшения асимметричности в вычислениях на концах системы передачи данных. Алгоритм кодирования кодового блока имеет такую долю внутреннего параллелизма, что сокращение времени его выполнения возможно только при существенном размере информационного блока. Время кодирования небольших кодовых блоков в системе кластерного типа при использовании дополнительных процессоров будет увеличиваться из-за роста накладных расходов. Из практического интереса рассматривается время кодирования и декодирования кодовых блоков на нескольких вычислительных устройствах и анализируется эффект параллельной реализации алгоритмов.
С целью подтверждения эффективности использования параллельных вычислительных систем для выполнения параллельного алгоритма декодирования кодового блока, защищенного помехоустойчивым кодом Рида-Соломона, были проведены эксперименты и расчеты с целью анализа алгоритмов с точки зрения сложности и времени, затрачиваемого вычислительной системой на решение. Анализ времени выполнения операций кодирования и декодирования позволил сделать выводы о накладных и вычислительных расходах, оценить возможности применяемой вычислительной техники для решения задач данного класса.
Эффективность кластерной организации вычислений не поддается сомнению, поэтому первое практическое исследование комплекса специального тестового программного обеспечения было проведено на четырехпроцессорном кластере информационно-вычислительного центра Пензенского государственного университета. Кластер состоит из двух узлов, каждый из которых содержит два процессора Alpha 21264 (EV6)
В. В. Мялицин, Б.Д. Шашков
Эффективность параллельной реализации алгоритмов помехоустойчивого кодирования Рида-Соломона
№ 3 2006
60 ООО
50 000-
40 ООО-
СС CÛ О
^ 30 000-
CI
о сс
10 000
у = 0,0046х2+ 16,54х+22,02
у = 0,0133х2- 1,2504х + 98,608 ' , у = 0,0064х2 + 10,043х-34,765
Г/
7
/
у = 0,0082х2 + 3,6018х + 22,216
/
~Г
7
'*/// —0—1 процессор
/у/ / / / — А- ■ 3 процессора — - X- - -4 процессора ■ ■ ■ Полиномиальный (4 процессора) — ■ Полиномиальный (3 процессора)
//У — — Полиномиальный (2 процессора) Полиномиальный (1 процессор)
0 500 1000 1500 2000 2500
объем избыточности кодового блока
Рис. 1. Зависимость времени кодирования от объема избыточности (4 процессора)
с тактовой частотой 666 МГц и объемом кэшпамяти 4 Мбайт. Общий объем оперативной памяти на узле 1 Гбайт. Коммуникационной средой являются два канала ЕШегпе! со скоростью 1 Гбит/с на витой паре.
Оценивалось время выполнения одного прогона операций кодирования и декодирования информационного блока кодом Рида-Соломона в зависимости от размера кодового блока и соответственно вносимой в него избыточности (используя избыточность, составляющую 6,25 % размера кодового блока, код может восстановить 3 % символов блока). Время декодирования информации, защищенной помехоустойчивым кодом, значительно больше времени кодирования информации. Причем чем больше размер кодового блока, тем больше разница во времени его обработки на концах системы передачи данных (больший объем избыточности и большее количество неизвестных в системах линейных уравнений). При увеличении
размера блока информации в два раза теоретическое время его кодирования на однопроцессорной системе возрастает в 4 раза, а время декодирования — в 8 раз. Однако на практике время обработки данных может отличаться от теоретических прогнозов.
Из полученных экспериментальных значений времени для операций кодирования и декодирования кодового блока средствами пакета Microsoft Excel были подобраны примерные графики квадратичных и кубических зависимостей времени от объема избыточности для разного числа вычислительных устройств. Используя графики, представленные на рис. 1 и 2, можно спрогнозировать временные характеристики для задач большего размера. Полученные временные значения отражают динамику вычислительного процесса для конкретной вычислительной системы.
По графикам зависимостей можно определить примерные размеры кодовых
№ 3 2006
3 ООО ООО
2 500 ООО
2 ООО ООО
О
Л 1 500 ООО
& 1 ООО ООО
500 ООО
у = 0,0002х3 + 0,0228х2 - 1,5654* + 86,329
-О— 1 процессор 2процессора д- - 3 процессора ■ ■ X- ■ ■ 4 процессора
Полиномиальный (1 процессор) Полиномиальный (2 процессора) Полиномиальный (3 процессора) Полиномиальный (4 процессора)
у = 0,0001х3 + 0,005х2 + 0,5441х + 207,35
/ у= 8Е-05х3 + 0,0003х2 + 1,5865х + 179,94 ' _ ' * у =7Е-05х3-0,015х2+ 7,3815х-104,4
/ Л'
О 500 1000 1500 2000 2500
объем избыточности кодового блока
Рис. 2. Зависимости времени декодирования от объема избыточности (4 процессора)
блоков, при которых ощутим эффект от использования нескольких вычислительных устройств. На данной вычислительной платформе можно достичь сокращения времени декодирования кодовых блоков при решении систем из 256 и более уравнений. При малых размерах блоков накладные расходы значительно превышают вычислительные расходы.
Результаты эксперимента подтверждают эффективность использования параллельных вычислений: для задач значительного объема (блок от 8192 байт и 128 уравнений) вычислительные расходы превышают накладные расходы на обмен информацией. Для крупных задач (блок более 64 Кбайт и 2 тыс. уравнений) возможно уменьшение общего времени выполнения кодирования и декодирования в 1,9 раза для двух процессоров, в 2,7 — для трех, в 3,2 — для четырех процессоров относительно времени выполнения этих же операций на одном процессоре.
Из полученных результатов и технических характеристик кластера можно сделать вывод о том, что при высокой скорости обмена данными (несколько Гбит/с) основное время решения задачи было потрачено на вычисления. Кроме того, заметна явная нехватка оперативной памяти, для больших кодовых блоков время решения задачи на двух процессорах уменьшилось более чем в два раза относительно однопроцессорного варианта.
Второй эксперимент было решено провести на системе с более производительными вычислительными устройствами и медленной коммуникационной средой. Был выбран сетевой многомашинный комплекс одной из компьютерных лабораторий факультета вычислительной техники Пензенского государственного университета, состоящий из восьми персональных компьютеров с процессорами Intel Pentium Celeron (с тактовой частотой 1 ГГц) и коммуникационной средой Ethernet 100 Мбит/с
В. В. Мялицин, Б.Д. Шашков
Эффективность параллельной реализации алгоритмов помехоустойчивого кодирования Рида-Соломона
№ 3 2006
на витой паре. Из экспериментальных значений времени для операций кодирования и декодирования кодового блока средствами пакета Microsoft Excel были подобраны примерные графики квадратичных и кубических зависимостей времени кодирования и декодирования от объема избыточности, представленные на рис. 3 и 4.
Результаты эксперимента подтвердили уменьшение общего времени выполнения кодирования и декодирования в 1,7 раза для двух процессоров, в 2,9 — для трех, в 3,7 — для четырех процессоров относительно времени выполнения этих же операций на одном процессоре.
Полученные результаты подтвердили эффективность использования параллельных вычислений для задачи помехоустойчивого кодирования и декодирования информации на параллельных вычислительных системах кластерного типа. Причем эффект от использования внутреннего параллелизма алгоритма можно получить и при достаточно небольшой скорости обмена между вычислительными устройствами.
300 000-
Из полученных экспериментальных результатов можно сделать вывод о том, что существует возможность получения эффекта от параллельного выполнения фрагментов задачи, обладающей внутренним параллелизмом, на параллельной вычислительной системе кластерного типа.
Результатами практических исследований стало выявление зависимости времени выполнения кодирования и декодирования кодовых блоков, защищенных помехоустойчивым кодом Рида-Соломона, от объема избыточности этих блоков для различного числа используемых вычислительных устройств. Была подтверждена возможность значительного сокращения времени декодирования информационных блоков при увеличении числа процессорных элементов.
Экспериментально полученные зависимости позволяют также сделать вывод о возможности сокращения времени кодирования кодовых блоков, т. е. получения эффекта от параллельного решения задачи кодирования помехоустойчивым кодом,
250 000-
5 200 000
150 000
100 000
50 000
f у= 0,0151
----------------------------------------------
у=0,0157х2+1,5975х+333,51 ,t у = 0,0151
'/ /
х2+1,7745х+ 157,84 х2+1,4391х+118,78
—о—1 процессор -а-2 процессора
— -Д- - 3 процессора
— -X— 4 процессора
■ Ж - -5 процессоров
Полиномиальный (1 процессор) ------Полиномиальный (2 процессора)
— - Полиномиальный (3 процессора)
— - Полиномиальный (4 процессора)
— - - Полиномиальный (5 процессоров)
х+64,775
1000 2000 3000 4000 5000
объем избыточности кодового блока
Рис. 3. Зависимости времени кодирования от объема избыточности (5 процессоров)
№ 3 2006
ппп ппп у = 0,000155х3-0,120871х2 + +66,340820Х-10255,000000
в 1 процессор _а_ 2процессора _ _ 3 процессора
_ ^ _ 4 процессора 5 процессоров
Полиномиальный (1 процессор) __ _ Полиномиальный (2 процессора) __ _ Полиномиальный (3 процессора) __ _ Полиномиальный (4 процессора) Полиномиальный (5 процессоров)
у = 9Е-05х3—0,0631 х2 + 26,169х-2312,1
у = 5Е-05х3-0,0238х2 + 8,8697х-763,4 , у = 4Е-05х3-0,0167х2+5,7034х-395,98 у = ЗЕ-05х 3-0,02х2 + 8,4264х-921,62
1000 2000 3000 4000 5000
объем избыточности кодового блока
Рис. 4. Зависимости времени декодирования от объема избыточности (5 процессоров)
хотя теоретически имеется лишь незначительная доля внутреннего параллелизма в этом алгоритме.
В результате анализа использования параллельных систем можно предположить, что существует оптимальное, с точки зрения времени выполнения, число вычислительных устройств для решения задачи некоторого объема, так как накладные расходы с ростом числа процессорных элементов увеличиваются и в какой-то момент станут сопоставимы с вычислительными расходами. Таким образом, возникает проблема определения количества вычислительных устройств, необходимых для эффективной реализации.
С учетом того, что задачу можно разбить на произвольное число одновременно выполняемых фрагментов, процесс ее решения на параллельной системе кластерного типа состоит из подготовки и передачи исходных данных, выполне-
ния вычислений при решении фрагментов задачи, сбора и обработки результатов со всех узлов вычислительной системы. Граф распределения работ представлен на рис. 5.
Подготовка и рассылка исходных данных
Выполнение вычислений при решении фрагмента задачи
Рис. 5 Граф распределения работ
Время решения задачи в параллельной вычислительной системе кластерного типа складывается из нескольких составляющих:
• времени выполнения всех последовательных фрагментов задачи TSCALC;
В. В. Мялицин, Б. Д. Шашков
Эффективность параллельной реализации алгоритмов помехоустойчивого кодирования Рида-Соломона
№ 3 2006
• времени выполнения параллельных фрагментов задачи одним вычислительным устройством ТРСА1_С;
• времени передачи данных по сетевым соединениям, не зависящим от количества используемых для решения задачи ус-
тр°йств 7^ш;
• времени передачи данных по сетевым соединениям, зависящим от количества используемых устройств Тгеш.
При этом ТСМ_С и Т^ш не зависят от параллельной реализации алгоритма, то есть, рассматривая задачи со значительным внутренним параллелизмом, ими можно пренебречь.
Эффект параллельных вычислений — это сокращение времени ТРСА1_С пропорционально числу используемых вычислительных устройств, т. е. при использовании N устройств время выполнения параллельных фрагментов задачи будет равно ТРСА1_С/N, учитывая одинаковую трудоемкость выполнения фрагментов задачи в однородной среде. График изменения времени выполнения для параллельных фрагментов задачи при разном количестве вычислительных устройств представлен на рис. 6.
увеличением N значение времени передач возрастает (см. график на рис. 7).
Рис. 6. График времени выполнения параллельных фрагментов
Из графика видно, что эффект от добавления устройств снижается. Однако общее время решения задачи в параллельной системе теоретически не может сократиться в
N
Рис. 7. График времени передач данных по сетевым соединениям
Таким образом, время решения задачи определенной трудоемкости V при использовании N вычислительных устройств определяется по формуле:
Т N
_ (^САЬС + TSSND ) +
■ + ^ — 1) • TPSND
ТРСА1С (У )
где N > 1.
N
График данной функции представлен на рис. 8.
N
Рис. 8. График зависимости времени решения задачи от числа используемых вычислительных устройств
При достаточно большой трудоемкости задачи и малом количестве используемых вычислительных устройств ТРСА1_С (V) может
N раз, так как добавляется время N• ТР- с быть значительно больше N • ТРЧ.Г, однако
№ 3 2006
с увеличением числа устройств значение N • TPSND возрастает.
TPCALC (V) ^ PCALC (У) і N +(N — 1) • TPSND
TPCALC(V)- ТPCALC (У) N (N — 1) • TPsnd
І LC CAL (N — 1) • TpsnD
При делении задачи на произвольное число одинаковых по вычислительной сложности фрагментов N время выполнения фрагмента ТРСА1_С зависит от его трудоемкости V, которая в свою очередь зависит от N.
Допустим, что имеются две параллельные вычислительные системы с некоторым числом вычислительных устройств: п и т соответственно. Необходимо определить при использовании какой системы решение задачи можно получить быстрее.
Таким образом, будем рассматривать два случая: деление задачи на п и т фрагментов (для п и т вычислительных устройств системы соответственно). То есть трудоемкость фрагментов: V/n и V/m. При условии, что т>п, I = (т-п), где I — разница между количеством фрагментов, время выполнения фрагментов будет:
ТРСА1С (У) = ТРСА1С (Т) >
, где 1 < п < т .
Т V) Т (V)
> ' РСА1С ( п ) > ' РСА1С ( т )
Пусть W — объем исходных передаваемых данных задачи. При решении задачи на системах с разным количеством вычислительных устройств объем передаваемых данных не изменяется, но изменяется количество передаваемых элементарных блоков. Для решения задачи на п устройствах
объем делится на n частей и передается в n раз дольше.
Время передачи TPSND исходных данных (и/или сбора результатов) прямо пропорционально числу используемых вычислительных устройств N, т. е. с ростом числа процессорных элементов время увеличивается.
Для n и m фрагментов время передачи
будет: n • TPSND (Wn) и m • TPSND ( Wm).
В простом случае передача исходных данных фрагмента задачи осуществляется посылкой одного пакета по коммуникационной сети: TpsND W = Tpsnd (Wn ) = TPSND (Wm ) .
Если m>n, то
n ■ TPSND W ) < m • TPSND (Wm ) = (n + 1) '
TPSND(Wm ) = n • TPSND(Wn ) + 1 • TPSND (W).
То есть разница во времени Z = I • TPSND(W) — это I передач блоков данных. При увеличении I эффект от увеличения числа устройств снижается.
Общее время решения задачи складывается из времени выполнения фрагментов задачи (равного при одинаковой производительности вычислительных устройств) и времени передач данных:
T (V) T T (V) T =
' PCALC ( n ) + n ^ ' PSND и ' PCALC ( m ) + m ^ ' PSND =
= TPCALC ( n + |) + n ^ TPSND + 1 • TPSND,
где при увеличении I: lim TPCALC (-.-) ^ 0, и:
n +1
jim 1 • Tpsnd ^ <X‘.
Таким образом:
lim TpCALC ( . ,) + n • TPSND + 1 • TPSND ^ 1X1.
n +1 И соотношение:
T (V) T
' PCALC ( n ) + n ^ ' PSND >
> TPCALC ( n + |) + n ^ TPSND + 1 • TPSND,
изменит знак, т. е. существует точка перегиба, определяющая оптимальное число вычислительных устройств.
Время решения задачи одним вычислительным устройством
Время решения задачи при использовании N вычислителей
X 127
В. В. Мялицин, Б.Д. Шашков
Эффективность параллельной реализации алгоритмов помехоустойчивого кодирования Рида-Соломона
№ 3 2006
Для подтверждения гипотезы о существовании оптимального количества вычислительных устройств для задачи ограниченного объема было принято решение провести эксперимент, заключающийся в решении задачи помехоустойчивого кодирования данных кодом Рида-Соломона на параллельной вычислительной системе.
Практическое исследование было проведено в режиме удаленного доступа на тридцатидвухпроцес- Рис. 9. Зависимости времени выполнения операции декодирования сорном вычислительном от числа используемых вычислительных устройств
кластере Научно-исследовательского вычислительного центра Московского государственного университета (НИВЦ МГУ), организованном по технологии Beowulf с использованием интерфейса передачи сообщений MPI. Кластер состоит из 12 узлов, каждый из которых содержит 2 процессора Intel Xeon с тактовой частотой 2660 МГц и объемом кэш-памяти 512 Кбайт на каждом процессоре. Общий объем оперативной памяти на узле 1 Гбайт. Частота системной шины — 533 МГц. Коммуникационную среду обеспечивают адаптеры SCI D335 (на шине PCI-64/66 МГц). Топология сети SCI — 2D-тор 3x4.
Алгоритм декодирования кодовых блоков обладает значительным внутренним параллелизмом. Поэтому оценивалось время выполнения операции декодирования информационного блока кодом Рида-Соломона в зависимости от размера кодового блока и вносимой в него избыточности.
По полученным экспериментальным значениям были построены графики зависимостей времени выполнения для операции декодирования кодового блока от числа устройств. Графики представлены на рис. 9.
На графиках наблюдается уменьшение, а затем увеличение времени декодирования кодового блока. Снижение эффекта от па-
раллельных вычислений обусловлено увеличением накладных расходов на сбор результатов решения систем линейных уравнений ведущим вычислительным устройством. Эффект от работы дополнительных процессоров оказывается отрицательным.
Для проверки формулы вычисления Т(Щ произвели подстановку экспериментальных значений времени для блоков размером 32 768 и 65 536 байт с целью определения значений времени вычислений и времени сетевых обменов. Вычисленные значения с использованием пакета Ма^САО и графики функций представлены на рис. 10 и 11.
Рис. 10. Расчеты для блока из 32 768 байт
№ 3 2006
Рис. 11. Расчеты для блока из 65 536 байт
Для задачи с размером блока 32768 байт, используя пакет Microsoft Excel и компонент «Поиск решения», было произведено приближение к минимуму функции из нескольких первых экспериментальных результатов. Результат поиска числа процессоров, при котором время решения задачи (значение функции) минимально, представлен на рис. 12. При этом было поставлено условие, что рассчитанные теоретические значения могут отличаться от временных значений, полученных экспериментально, не более чем на 20 %.
Анализ экспериментальных данных подтверждает зависимость времени выполнения задачи от числа используемых вычислительных устройств: для задач большого объема увеличение количества процессорных элементов приводит к уменьшению времени решения задачи, однако при значительном количестве вычислителей эффект от параллельных вычислений становится отрицательным. Все это подтверждает правильность рассуждений о характере зависимости и ее представлении (см. рис. 8).
В практическом смысле важным является экспериментальное подтверждение гипотезы о достижении максимального эффекта параллельных вычислений при решении прикладной задачи ограниченного размера на конечном числе вычислительных устройств, т. е. необходимости конечного числа процессорных элементов для решения задачи заданного размера. Полученное заключение относится только к параллельным вычислительным системам кластерного типа, поскольку только в них для полного решения задачи необходимо собирать фрагменты результирующих данных с вычислительных устройств.
Результаты исследования могут быть использованы для оценки времени выполнения аналогичных задач на различных многопроцессорных кластерных установках.
Литература
1. Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб.: БХВ-Петербург, 2004.
2. Скляр Б. Цифровая связь. Теоретические основы и практическое применение. Изд. 2-е, испр.: Пер. с англ. М.: Издательский дом «Вильямс», 2003.
Графики зависимостей времени от числа процессоров
- Эскпериментальные данные -Аналитические расчеты
со
Количество процессоров
Рис. 12. Анализ числа необходимых процессоров
В. В. Мялицин, Б.Д. Шашков