Научная статья на тему 'РЕШЕНИЕ ПРОБЛЕМ ПРОИЗВОДИТЕЛЬНОСТИ ПРИ СИМУЛЯЦИИ ПОЛЯРНЫХ КОДОВ'

РЕШЕНИЕ ПРОБЛЕМ ПРОИЗВОДИТЕЛЬНОСТИ ПРИ СИМУЛЯЦИИ ПОЛЯРНЫХ КОДОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
5
1
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
коды с коррекцией ошибок / полярные коды / симуляция полярных кодов / error correcting codes / polar codes / polar coding simulation

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Г.С. Тимофеев, С.Г. Колесников

Этап симуляции при разработке алгоритма помехоустойчивого кодирования информации полярными кодами играет важную роль. Он позволяет оценить эффективность алгоритма в различных условиях и принять решение о дальнейшем направлении работы. В работе описан опыт повышения производительности модели полярных кодов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOLVING THE PERFORMANCE ISSUES OF POLAR CODES SIMULATION

The simulation stage during the polar coding algorithm development has an important role. It gives an ability to evaluate the algorithm's effectiveness in various conditions and make a decision on the future work direction. The paper describes the experience of improving the performance of the polar coding model.

Текст научной работы на тему «РЕШЕНИЕ ПРОБЛЕМ ПРОИЗВОДИТЕЛЬНОСТИ ПРИ СИМУЛЯЦИИ ПОЛЯРНЫХ КОДОВ»

УДК 621.391

РЕШЕНИЕ ПРОБЛЕМ ПРОИЗВОДИТЕЛЬНОСТИ ПРИ СИМУЛЯЦИИ

ПОЛЯРНЫХ КОДОВ1

*

Г. С. Тимофеев Научный руководитель - С. Г. Колесников

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газеты «Красноярский рабочий», 31

E-mail: tlmOfeev.grigorij @gmail. com

Этап симуляции при разработке алгоритма помехоустойчивого кодирования информации полярными кодами играет важную роль. Он позволяет оценить эффективность алгоритма в различных условиях и принять решение о дальнейшем направлении работы. В работе описан опыт повышения производительности модели полярных кодов.

Ключевые слова: коды с коррекцией ошибок, полярные коды, симуляция полярных кодов SOLVING THE PERFORMANCE ISSUES OF POLAR CODES SIMULATION

G. S. Timofeev* Scientific supervisor - S. G. Kolesnikov

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation E-mail: t1m0feev.grigorij @gmail. com

The simulation stage during the polar coding algorithm development has an important role. It gives an ability to evaluate the algorithm's effectiveness in various conditions and make a decision on the future work direction. The paper describes the experience of improving the performance of the polar coding model.

Keywords: error correcting codes, polar codes, polar coding simulation.

Полярные коды занимают важное место в теории помехоустойчивого кодирования. Э. Арикан в работе [1] доказал, что полярные коды достигают пропускной способности канала, а так же отличаются простотой построения, кодирования и декодирования.

В процессе исследования полярных кодов был разработан симулятор полярных кодов в системах связи. Пакет разработан с использованием языка программирования Python 3 и получил название Python Polar coding. Основная цель разработки - изучение существующих распространенных алгоритмов полярных кодов, а также разработка новых алгоритмов декодирования полярных кодов и сравнение с существующими алгоритмами.

Основным недостатком первой версии пакета Python Polar coding оказалось высокое время симуляции. Было принято решение уделить большее внимание оптимизации при работе над второй версией.

На первом этапе был использован следующий подход: одна задача симуляции разбивается на несколько задач, выполняемых параллельно на нескольких ядрах процессора. Для решения этой задачи был использован модуль Concurrent.futures [2], входящий в состав

Работа выполнена при поддержке Фонда Содействия Инновациям, номер договора 13524ГУ/2018.

Актуальные проблемы авиации и космонавтики - 2020. Том 2

стандартной библиотеки языка Python 3. Это позволяет преобразовать одну задачу симуляции передачи X сообщений по каналу связи в T задач по симуляции передачи X/ T сообщений в каждой.

На втором этапе была добавлена поддержка динамической компиляции участков кода, отвечающих за математические расчеты. К таким участкам кода относятся операции модуляции и демодуляции, наложения шума в канале связи, а также кодирования и декодирования. Для этого был использован модуль Numba [3]. При первом запуске программы, динамически компилируемые участки кода на Python компилируются в байт-код, который выполняется при втором и последующих запусках. Этот вариант хорошо подходит для многократно выполняемых симуляций передачи сообщения по каналу связи.

Перейдем к оценке результатов оптимизации работы пакета Python Polar coding. В табл. 1 представлены параметры системы, на которой осуществлялась оценка производительности. В табл. 2 представлены параметры модели канала связи, которая использовалась для оценки.

Таблица 1

Параметры системы

Наименование CPU Intel Core i7-3820 Sandy Bridge-E

Количество ядер 4

Тактовая частота, МГц 3600

Объем оперативной памяти, ГБ 16

Таблица 2

Параметры модели канала связи

Количество сообщений 1000

Количество повторений симуляции 100

Модуляция BPSK

Отношение Сигнал/Шум в канале, дБ 2,5

Канал AWGN

Длина кодового слова К, бит 1024

Длина информационного сообщения К, бит 512

Конструктивное отношение Сигнал/Шум, дБ 2,5

Для симуляции использованы алгоритмы декодирования полярных кодов Fast SSC [4] и Generalized Fast SSC с параметром AF = 3 [5]. Данные алгоритмы лежат в основе ряда используемых на сегодняшний день списочных и стековых алгоритмов декодирования.

749.0±0,010 Е

О

378.5±0.010 5

О

210.0±0.009 5

£ No. " Fasts С (1024, 512) <5 _ Т ras:SC (1024, с ' 2)

198.7±0.007 S

О

182.5+0.009 5

О

9.75^=0.007

О

5.02±0.010 S

О

4.32±0.006З

4.39±0.005 S

12 3 4 5 6 7

№ of Parallel processes

Рис. 1. Среднее время симуляции кодированного канала связи с Fast SSC декодером полярных кодов

1000

еоо.о±о.оо5 s

q No JIT G FastSC 3(1024, 512: О J TG FastSC 3(1024 512)

453.04:0.013 5

• 262.5i0.030 s О о

235. 54:0.007 s 210.04:0.006 s

Ш 18.40±0.091 s 10

О

9.434:0.011 s

О

5.15±0.012 s

1 2 3 4 5

№ of Parallel processes

Рис. 2. Среднее время симуляции кодированного канала связи с Generalized Fast SSC декодером полярных кодов

5.034:0.022 S

4.54±0.015 S

6 7 8

На рис. 1 и 2 представлены графики времени симуляции канала связи с заданными параметрами с использованием различного числа параллельных процессов и выключенной/включенной динамической компиляцией кода.

По результатам исследования можно сделать следующие выводы:

1. Разбиение задачи симуляции канала связи на X параллельных задач ведет к увеличению скорости симуляции, близкому к кратному в том случае, когда число параллельных задач T < C, где С - количество ядер CPU в системе. При дальнейшем увеличении T прирост является незначительным.

2. Применение динамической компиляции участков кода, отвечающих за математические расчеты, дает увеличение скорости работы в 50-55 раз при любом числе параллельных задач симуляции X.

Дальнейшим направлением в работе по увеличению производительности симуляции канала связи в пакете Python Polar Coding является использование GPU для вычислений.

Библиографические ссылки

1. Arikan E. Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels // IEEE Transactions on Information Theory, 2009, Vol. 55, No. 7, P. 3051-3073.

2. Python 3 documentation [Электронный ресурс]: Concurrent.futures — Launching parallel tasks. URL: https://docs.python.org/3/library/concurrent.futures.html (дата обращение: 24.04.2020).

3. Numba documentation [Электронный ресурс]: A High Performance Python Compiler. Anaconda, 2020. URL: http://numba.pydata.org/ (дата обращение: 21.04.2020).

4. G. Sarkis, P. Giard, A. Vardy. Fast polar decoders: Algorithm and implementation // IEEE J. Sel. Areas Commun., 2014, Vol. 32, No. 5, P. 946-957.

5. C. Condo, V. Bioglio, I. Land. Generalized Fast Decoding of Polar Codes // IEEE Global Communications Conference (GLOBECOM), 2018, P 885-896.

© Тимофеев Г. С., 2020

i Надоели баннеры? Вы всегда можете отключить рекламу.