Программа моделирования алгоритма параллельных...
TRANSCRIPT
ПРОГРАММА МОДЕЛИРОВАНИЯ АЛГОРИТМА ПАРАЛЛЕЛЬНЫХ ПОДСТАНОВОК И ПРИМЕР
ЕГО РЕАЛИЗАЦИИ НА ПЛИС
Баранов Е. Ю., РГАТА, СКБ ИТ
Введение
Вычислительные системы ориентированные на параллельное исполнение программ:
многоядерные процессоры; GPU-вычислители; системы на ПЛИС;
Описание алгоритма параллельных подстановок
A – конечный алфавит; M – множество имен; Клетка - пара (a, m), принадлежащая
множеству AM; Клеточный массив W (слово) –
конечная совокупность клеток, в которой нет ни одной пары клеток с одинаковыми именами.
(a, m) W
Пример задания АПП
)}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П
Параллельная подстановка
Алгоритм параллельных подстановок в действии
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:
DSL язык QuickPSA
Основная цель – упрощение написания и отладки систем параллельных подстановок.
Структура программы на QuickPSA:
psa <имя_проекта> { alpha: {<список_состояний>} // алфавит состояний talpha: {<список_переменных>} // алфавит переменных символов inputword: <клетка> | … // задание входного слова function: <имя_функции> (<аргументы>) {<тело_функции>} sub <имя_подстановки> { // подстановка S1: //конфигурация 1 S2: //конфигурация 2 S3: //конфигурация 3 }}
QPSA
GUI для QuickPSA
Реализация АПП сложения двоичных положительных чисел на ПЛИС
Геометрические образы конфигураций:
Принцип “центра подстановки”
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
Схема соединения клеточных автоматов
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
Спасибо за внимание!