Программа моделирования алгоритма параллельных...

10
ПРОГРАММА МОДЕЛИРОВАНИЯ АЛГОРИТМА ПАРАЛЛЕЛЬНЫХ ПОДСТАНОВОК И ПРИМЕР ЕГО РЕАЛИЗАЦИИ НА ПЛИС Баранов Е. Ю., РГАТА, СКБ ИТ

Upload: alexander-petrov

Post on 27-Jul-2015

178 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

ПРОГРАММА МОДЕЛИРОВАНИЯ АЛГОРИТМА ПАРАЛЛЕЛЬНЫХ ПОДСТАНОВОК И ПРИМЕР

ЕГО РЕАЛИЗАЦИИ НА ПЛИС

Баранов Е. Ю., РГАТА, СКБ ИТ

Page 2: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Введение

Вычислительные системы ориентированные на параллельное исполнение программ:

многоядерные процессоры; GPU-вычислители; системы на ПЛИС;

Page 3: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Описание алгоритма параллельных подстановок

A – конечный алфавит; M – множество имен; Клетка - пара (a, m), принадлежащая

множеству AM; Клеточный массив W (слово) –

конечная совокупность клеток, в которой нет ни одной пары клеток с одинаковыми именами.

(a, m) W

Page 4: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Пример задания АПП

)}1,,1)(,,0{()}1,,0{()}1,,0)(,,1{(:1 jijijijijiПКонфигурация S1 – левая

частьКонфигурация S2 –

контекстКонфигурация S3 – правая

часть

Система параллельных подстановок (СПП)

)};1,,0)(,,0{()},1,0{()}1,,1)(,,1{(:2

)};1,,1)(,,0{()}1,,0{()}1,,0)(,,1{(:1

jijijijijiП

jijijijijiП

Параллельная подстановка

Page 5: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Алгоритм параллельных подстановок в действии

0 1 0 00 0 1 10 0 1 00 0 1 0

0 1 0 10 0 1 00 0 0 00 0 0 0

0 1 1 10 0 0 00 0 0 00 0 0 0

010

10

011

00

j

i

Геометрические образы конфигураций подстановок

П1: П2:

Page 6: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

DSL язык QuickPSA

Основная цель – упрощение написания и отладки систем параллельных подстановок.

Структура программы на QuickPSA:

psa <имя_проекта> { alpha: {<список_состояний>} // алфавит состояний talpha: {<список_переменных>} // алфавит переменных символов inputword: <клетка> | … // задание входного слова function: <имя_функции> (<аргументы>) {<тело_функции>} sub <имя_подстановки> { // подстановка S1: //конфигурация 1 S2: //конфигурация 2 S3: //конфигурация 3 }}

QPSA

Page 7: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

GUI для QuickPSA

Page 8: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Реализация АПП сложения двоичных положительных чисел на ПЛИС

Геометрические образы конфигураций:

Принцип “центра подстановки”

1

П1: 1

i

0

0 0

1 0

0

1

10

0

0П2:

j

1

0

0

0

1

1

0

0

1

Page 9: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Схема соединения клеточных автоматов

1 2 3

4 5 6

7 8 9

force_init_ininit_state_in

in

force_init_outinit_state_out

out

enable_sub

enable_2sub

Page 10: Программа моделирования алгоритма параллельных подстановок и пример его реализации на ПЛИС

Спасибо за внимание!