Научная статья на тему 'Стековый алгоритм для локально-параллельного бинарного клеточного автомата'

Стековый алгоритм для локально-параллельного бинарного клеточного автомата Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
70
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КЛЕТОЧНЫЕ АВТОМАТЫ / CELLULAR AUTOMATONS / ЛОКАЛЬНАЯ ПАРАЛЛЕЛЬНОСТЬ / LOCAL PARALLELISM / СТЕК / STACK

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Абдельлатиф Бенаддия, Михаль О.Ф

Применение принципов локально-параллельной обработки к клеточным автоматам позволяет существенно увеличить размеры моделей. Предложен и продемонстрирован на тестовых примерах локально-параллельный стековый алгоритм бинарного клеточного автомата

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

Stacking algorithm for local-parallel binary celluar automaton

Application of principle of local-parallel processing to cellular automaton allows greatly enlarge the sizes of models. Local-parallel stacking algorithm of the binary cellular automaton is offered and demonstrated on test examples

Текст научной работы на тему «Стековый алгоритм для локально-параллельного бинарного клеточного автомата»

Лиература

1. Jarke, M. Query Optimization in Database Systems [Текст] / М. Jarke, J. Koch // Computing Surveys. - 1984. - Vol. 16, № 2 - Р. 111-152.

2. Бшоусова, Л. I. Потенщал комп'ютерного тестування [Текст] / Л. I. Бшоусова // Вюник Т1МО. - 2008. - №10. - С. 40-44.

3. Фюун, М. Т. Розробка синтаксичного анашзатора мови програмування PL/I для решжешршгу блок-схем алгоритм1в [Текст] / М.Т. Фюун, О.В. Гнездьонова // Проблеми програмування. - 2006. - №2-3. - С. 617-625.

4. Моисеенко, С. SQL. Задачи и решения. Интерактивный учебник [Електроннш ресурс] - Режим доступу: http://www.sql-tuto-

rial.ru/ru/content.html.

5. Интерфейс Ltd. Internet&Software Company - Режим доступу: http://www.interface.ru/home.asp.

Застосування принцитв локально-пара-лельног обробки до клтинних uemoMumie дозволяв суттево тдвищити розмiри моделей. Запропоновано i продемонстровано на тестових прикладах локально-паралельний стековий алгоритм бтарного клтинного автомату

Ключовi слова: клтинт автомати,

локальна паралельтсть, стек

□-□

Применение принципов локально-параллельной обработки к клеточным автоматам позволяет существенно увеличить размеры моделей. Предложен и продемонстрирован на тестовых примерах локально-параллельный стековый алгоритм бинарного клеточного автомата

Ключевые слова: клеточные автоматы,

локальная параллельность, стек

□-□

Application of principle of local-parallel processing to cellular automaton allows greatly enlarge the sizes of models. Local-parallel stacking algorithm of the binary cellular automaton is offered and demonstrated on test examples

Keywords: cellular automatons, local parallelism, stack

УДК 519.87

стековый алгоритм

для локально-параллельного бинарного клеточного автомата

Бенаддия Абдельлатиф

Аспирант*

О.Ф.М ихал ь

Доктор технических наук, доцент, профессор* *Кафедра Электронно-вычислительных машин Харьковский национальный университет радиоэлектроники пр. Ленина, 14, г. Харьков, 61166 Контактный тел. (057) 40-93-54 Е-mail: fuzzy16@pisem.net

1. Введение

Моделирование крупномасштабных систем с распределённой обработкой информации актуально в связи с изучением динамики процессов, происходящих в человеческом окружении, на различных уровнях от глобальных климатических явлений до живой природы и социальных структур (экология, климатология, демография, социология). Общность подхода состоит в том, что система рассматривается как состоящая из большого числа дискретных элементов (ячеек), взаимодействующих друг с другом в соответствии с фиксированным наборами правил. Перспективным аппаратом компьютерного модели-

рования подобных систем являются клеточные автоматы (КА). Распространённость моделирования поведения систем на КА обусловлена простотой описания конфигурации и набора рабочих правил. Дополнительный выигрыш по эффективности работы КА может быть обеспечен локально-параллельными (ЛП) алгоритмами [1], которые разработаны [2, 3] для целочисленных неотрицательных значений операндов, что применимо к описанию ячеек КА. В частности, если ячейка принимает одно из значений (0, 1), это соответствует подвиду КА - бинарным клеточным автоматам (БКА) [4]. Для полноты оперирования данными, необходимо дополнить аппарат описания [2, 3] ЛП алгоритмами, реализующими

смену состояний ячеек КА для конкретных видов (вариантов) КА.

Цель настоящей работы - разработка и исследование ЛП варианта одной из процедур работы КА - стекового алгоритма определения степени соседства ячеек БКА.

требуется отдельный элемент хранения. Стандартные форматы хранения данных - расточительны в отношении использования ресурсов ВС. Существенный выигрыш обеспечивает ЛП представлении информации [2, 3].

2. Клеточные автоматы

В основе КА [4] лежат следующие представления. В регулярной решётке каждая ячейка может находится в одном из конечного множества состояний. Для ячейки определено её окружение: множество соседних ячеек. Задаются начальные состояние ячеек, и набор правил перехода из одного состояния в другое. На каждой итерации определяется новое состояние каждой ячейки. При этом весь КА последовательно сменяет состояния (поколения).

Работа КА необратима, как и процессы в живой природе. Текущее j -е состояние КА однозначно опре-деляетследующее ^ +1) -есостояние,нопредыдущее ^ -1) -е состояние не может быть однозначно восстановлено. Таким образом, КА «автоматически» воспроизводят важную особенность реального мира - однонаправленность времени.

В БКА для записи состояния ячейки используется один бит. Допустимы различные варианты соседства ячеек. Рис. 1 иллюстрирует некоторые из возможных топологий БКА: ситуации с 4, 6 и 8 ячейками-соседями. Центральная ячейка условно выделена чёрным цветом, её соседи - серым.

а) б) в)

Рис. 1. Бинарные КА с вариантами соседства: 4 (а), 6 (б) и 8 клеток (в)

Известен вариант БКА - «игра Жизнь» [4], структурно соответствующий рис. 1 в. Ячейка КА может находиться в одном из двух состояний: 0 или 1. При степени соседства 3 или 4 единичное состояние сохраняется или 0 переходит в 1. Иначе - 0 сохраняется или 1 переходит в 0. В компьютерной реализации, даже по таким простым правилам, «игра Жизнь» демонстрирует поведение «сообщества», аналогичное наблюдаемому у микроорганизмов.

Содержательность моделей растёт с их размерами. Применительно к воспроизведению поведения, характерного для живой природы, целесообразны модели объёмом 104 ячеек и более. В связи с этим при компьютерной реализации возникает проблема экономного расходования ресурсов вычислительной системы (ВС) - оперативной памяти, дискового пространства, времени работы программы и др. Информация о состоянии i -й ячейки должна храниться отдельно от информации о состоянии других ячеек. То есть, для каждой ячейки

3. Принцип локальной параллельности

Пусть имеется два п-компонентных вектора:

А:{а1,а2,а3,...,а!,...,ап}; В:{Ь1,Ь2,Ь3,...,Ь!,...,Ь„};

i е(1,2,3,...,п); а! < атах ; Ь < Ьтах ; атах = Ьтах .

Требуется найти покомпонентную сумму векторов: С: {с1,с2,с3,...,с!,...,сп} ; с = а! + Ь . Согласно последовательной схеме, для этого должен быть выполнен следующий набор операций.

Шаг 1. Начальная установка: i = 1.

Шаг 2. Извлечение значения операнда а! из регистра хранения.

Шаг 3. Извлечение значения операнда Ь из регистра хранения.

Шаг 4. Суммирование: с = а! + Ь .

Шаг 5. Помещение результата с в регистр хранения.

Шаг 6. i = i +1. Если i > п, завершение вычисления; иначе переход к Шагу 2.

Согласно ЛП схеме, для нахождения покомпонентной суммы необходимо:

Шаг 1. Конкатенация:

А: {а1,а2,а3,...,ап} ^а# = (а1 Ф а2 Ф а3 Ф...Ф ап) ;

В: {Ь1,Ь2,Ь3,...,Ьп} ^ Ь# = (Ь1 Ф Ь2 Ф Ь3 Ф... Ф Ьп).

Шаг 2. Извлечение операнда (конкатенанта) а# из регистра хранения.

Шаг 3. Извлечение операнда Ь# из регистра хранения.

Шаг 4. Суммирование конкатенантов: с# = а# + Ь# .

Шаг 5. Помещение результата с# в регистр хранения.

Шаг 6. Деконкатенация:

с# = (с1 Фс2 Фс3 Ф...Фсп)^ С: {с1,с2,с3,...,сп}.

Операции конкатенации и деконкатенации выполняются над целыми положительными числами в двоичном представлении. При обработке числа располагаются в центральном процессоре в отдельных регистрах - линейках бинарных ячеек памяти. Отсюда применяемый далее термин - регистровое представление (РгП). В ЛП представлении результат конкатенации есть целое положительное число, помещаемое в едином регистре, - РгП, которое интерпретируется как состоящее из сегментов согласно длине конкате-нантов. При деконкатенации сегменты извлекаются из РгП. Таким образом, конкатенация есть операция уплотнения представления компонентов векторов (1) в виде сегментов в РгП а# и Ь# (2). Содержимые РгП а# и Ь# обрабатываются целиком, как числа. Декон-катенация (3) - обратная операция: содержимое i -го

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

В результате, согласно ЛП схеме, операция производится над РгП, а результат С: {с1,с2,с3,...,с!,...,сп} выглядит так, как если бы операции производились над парами операндов раздельно.

Вычислительные блоки операций Шаги 2 - 5 в последовательной и ЛП схемах совпадают, но в последовательной схеме блок выполняется п -кратно, в ЛП схеме - однократно. Этим обеспечивается выигрыш в производительности. Конкатенация и деконкатенация связаны с дополнительным расходованием ресурсов ВС.

Однако, если в системе реализуются сложные многошаговые вычисления, причём РгП составляются из исходных данных только в самом начале вычислительного блока, а результаты извлекаются в самом конце, - затраты ресурсов на конкатенацию-деконкатена-цию могут быть пренебрежимо малы по сравнению с общими затратами ресурсов ВС. Эффективность ЛП схемы растёт пропорционально числу конкатенантов п [2,3].

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

При проектировании ЛП систем должны приниматься компромиссные решения по соотношению производительности вычислений и точности результатов.

для представления всего массива - М№/32 индивидуально адресуемых элементов хранения информации.

Алгоритм функционирования КА предполагает рассмотрение окружения каждой клетки. Для БКА с 8-ю соседями рис. 1 в при ЛП вычислениях для j -й строки ( j -го РгП aj ) должны суммироваться 8 штук РгП:

(ан << Р) + (ан)+(ад >> р) + (^ << р)+ >> р) + (а]+1 << р) + (а]+1) + (а]+1 >> р)

где « << р» и « >> р >>» означают процедуры регистрового сдвига на р бит (длину сегмента) в сторону старших или младших разрядов, соответственно. Для БКА р = 1, а для представления результата по каждому сегменту требуется 4 бита, поскольку имеется 9 градаций возможных значений сегментной суммы: (0, 1, 2,..., 7, 8). Чтобы соседние сегменты не взаимодействовали, должно быть изначально зарезервировано достаточно места для размещения результата. Типовым подходом при подобных ЛП вычислениях является прореживание РгП [2, 3] с использованием битовых масок. Массив РгП преобразуется в 4 массива с непересекающимися наборами сегментов с номерами сегментов: (1, 5, 9, 13,...), (2, 6, 10, 14,.), (3, 7, 11, 15,.), (4, 8, 12, 16,.). После прореживания процедура выполняется последовательно для каждого из четырёх наборов с последующим сведением результатов в единый РгП. Эффективность ЛП алгоритма при этом снижается четырёхкратно. Прореживание системой масок и соответствующее кратное снижение эффективности ЛП обработки снимается полностью с применением стекового ЛП алгоритма.

4. Локально-параллельное представление КА

Рассматриваем 32-разрядный процессор Фон-Неймановского типа, реализующий стандартный набор арифметических и логических операций, включая поразрядную (побитовую) логику и регистровые сдвиги. При ЛП обработке предполагается хранение нескольких элементов информации в виде раздельных не пересекающихся сегментов РгП. В случае ЛП представления КА логично разместить ячейки КА в отдельных сегментах. В обычной записи для хранения матрицы ячеек КА требуется двумерный массив. При размере поля М строк на N столбцов требуется MN индивидуально адресуемых элементов хранения информации, что составляет 32MN бит. В ЛП представлении индивидуально адресуемыми элементами хранения становятся РгП. В случае БКА в РгП может быть до 32 однобитовых сегментов. Строка поля БКА может быть помещена в [М/32] +1 РгП (квадратные скобки обозначают целую часть от деления). В результате, для представления всего БКА необходим массив из ([М/32] + Щ = MN/32 РгП. Соответственно, если ячейка КА имеет п состояний, для её представления требуется к бит с соблюдением соотношения 2к > п, то есть к > ^2п , то есть к = [log2n] +1 бит.

Таким образом, в 32-разрядном ВУ для представления строки элементов КА требуется [Мк /32] +1, а

5. Стековый локально-параллельный алгоритм

Пусть имеются 8-битные числа

А1 = 18810 = 101111002,

А2 = 11310 = 011100012

А3 = 23510 = 111010112,

А4 = 2510 = 000110012 , случайным образом выбранные в интервале от 0 до 255. Нижний индекс обозначает основание системы счисления представления числа. В двоичном представлении для наглядности лидирующие нули сохранены. Интерпретируем двоичные позиции как сегменты в ЛП представлении. Таким образом, имеется четыре 8-сегментных РгП. Размер каждого сегмента - 1 бит. Стеками являются столбцы из сегментов.

После первоначального заполнения единичные сегменты «проваливаются» максимально вниз, а нулевые, соответственно, «всплывают» вверх согласно алгоритму сортировки «методом пузырька», который применяется к РгП посегментно, локально-параллельно ко всем сегментам.

С набором чисел А1 - А4это выглядит следующим образом:

10111100 10111100 } ^

01110001 01110001

11101011 } ^ { 00001001

00011001 11111011

10111100 } ^ { 00000000

^ { 00000001 10111101

01111001 01111001 } ^

11111011 11111011

00000000 00000000

10111101 } ^ { 00111001

^ { 01111001 11111101 } ^

11111011 11111011

00000000

00111001

^ { 11111001

11111111

Данное выражение изображает в совокупности последовательную смену 7 состояний набора РгП A1 - A4. Первое состояние соответствует исходному, последнее -полную отсортированность: все единицы максимально смещены вниз. Фигурные скобки и стрелки переходов показывают, какие из РгП сопоставляются на каждом шаге алгоритма сортировки. Процесс включает два вложенных цикла. Внешний цикл обеспечивает (n -1)-кратное (n - число РгП, в примере n = 4) повторение внутреннего цикла с сокращением его объёма от (n -1) (три первые смены состояний) до 1 (последняя смена состояний). Первый (соответствующий младшим разрядам чисел A1 - A4 ) стек не претерпевал изменений: расстановка единиц в нём не требует сортировки. 4-е и 5-е состояния - тождественны: в этом цикле не происходит вертикального перемещения единиц. Показателен 3-й справа разряд: тремя последовательными обменами единица спускается из A1 в A4.

Бинарная процедура сопоставления, обозначенная значком « ^ », включает арифметические операции «-» и «+», а так же поразрядные логические операции «END» и «XOR».

Local_Parallel_Stack( )

1 M ^ A "END" ( B "XOR" E0 )

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

2 A ^ A - M

3 B ^ B + M

Входными данными являются А и В , выходными

- изменённые значения А и В .

В процедуре используются константа Е0 = 11111...11 («ЛП единица») и промежуточная переменная М. После завершения ЛП сортировки стеков, имеется исходный материал для формирования результата

- нового набора значений соответствующего фрагмента КА.

Так, если интерпретировать пример (1) как работу БКА с четырьмя соседями (рис. 1 а), разность

(А2 - А1) = (00111001)2 - (00000000)2 = (00111001)2

будет соответствовать правилу наличия трёх «живых» ячеек-соседей. Единицами отмечены те позиции (ячейки КА), которые «выжили» в новом поколении КА, поскольку в текущем поколении они были окружены тремя единичными соседями.

6. Обсуждение результатов

Работа БКА с применением предложенного стекового алгоритма смоделирована в варианте с 8 соседями (рис. 1 а) на 32-разрядном процессоре, на языке Python. Размер поля модели 32 х 32 ячейки. Моделированием подтверждена работоспособность стекового алгоритма. В процессе разработки выявлены следующие особенности алгоритма. Позитивной стороной является универсальность подхода применительно к различным вариантам правил поведения КА: независимость от объёма и конфигурации окружения (соседства), простота выбора порогового уровня при определении «выживающих» ячеек. Имеется существенное (в 3 - 4 раза) сокращение времени обработки по сравнению с альтернативным ЛП вариантом - с прореживанием РгП. Ограничением является представление строки КА в виде одно РгП.

Перспективным развитием стекового алгоритма явится представление строки КА несколькими РгП, а так же распространение на более широкий класс КА, в частности с введением нечёткого описания для учёта случайных влияющих факторов в моделируемой системе.

Выводы

Локально-параллельное представление информации повышает эффективность работы программы клеточного автомата и существенно увеличивает размеры модели. Предложен и продемонстрирован на тестовых примерах локально-параллельный стековый алгоритм бинарного клеточного автомата, инвариантный относительно выбора уровней «выживающих» ячеек.

Литература

1. Бенаддия Абдельлатиф. Перспективы реализации келлюлярных авторматов на локально-параллельных алгоритмах // Материалы международной научно-практической конференции студентов и аспирантов "Информационные технологии в экономике и образовании". - М.: Российский университет кооперации, 2008. - С. 45 - 48.

2. Михаль О.Ф. Моделирование распределенных информационно-управляющих систем средствами локально-параллельных

алгоритмов обработки нечеткой информации / / Проблемы бионики. Всеукраинский межведомственный научно-технический сборник. Харьков: ХНУРЭ. 2001. Вып. 54. С. 28-34.

3. Михаль О.Ф., Руденко О.Г. Принципы организации систем нечеткого регулирования на однородных локально-параллель-

ных алгоритмах // Управляющие системы и машины. 2001. № 3. С. 3-10.

4. Люггер Д.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем М.: Изд. дом «Вильямс», 2005.

- 864 с.

-□ □-

Процедуру сортування проаналiзовано на комбi-наторному рiвнi для 4-елементних послидовностей. Подано алгоритмiчне забезпечення локально-пара-лельного сортування. В ходi моделювання мовою Python з'ясовано, що локально-паралельний алгоритм максимально эфективний щодо сортування виборок в межах розрядностi процесора

Ключовi слова: локальна паралельтсть, сорту-

вання даних

□-□

Процедура сортировки проанализирована на комбинаторном уровне на примере 4-элементных числовых последовательностей. Описана работа алгоритма локально-параллельной сортировки. Моделированием на языке Python показано, что алгоритм эффективен применительно к малым выборкам

Ключевые слова: локальная параллельность,

сортировка данных

□-□

The Procedures of the sorting is analysed on combinatorial level for 4-element sequences. Algorithmic provision of local-parallel sorting is presented. In the course of modeling in language Python is revealled that local-parallel algorithm is greatly efficient with reference to sorting the samples within processor register size

Key words: localparallelity, data sorting -□ □-

УДК 519.87

локально-параллельная сортировка малых наборов данных

Мохамад Али

Аспирант*

О.Ф. М ихал ь

Доктор технических наук, доцент, профессор*

*Кафедра Электронно-вычислительных

машин

Харьковский национальный университет радиоэлектроники пр. Ленина, 14, г. Харьков, 61166 Контактный тел. (057) 40-93-54 Е-mail: fuzzy16@pisem.net

1. Введение

Сортировка данных - классическая задача, сочетающая в себе прозрачность общей концепции и многовариантность решений. Алгоритмы сортировки подробно изучены для вычислительных систем (ВС) последовательного действия. Параллельные ВС до недавнего времени были исключительно многопроцессорными и разрабатывались для специальных приложений. Задачи параллельной сортировки рассматривалась в них преимущественно в контексте общих принципов распараллеливания алгоритмов. С распространением многоядерных процессоров и сетевых вычислительных структур [1]: приобрела актуальность сортировка ограниченных малых наборов данных [2, 3]. Эта задача эффективно решается с использованием, локально-параллельных (ЛП) алгоритмов обработки информации [4, 5].

В настоящей работе развиваются рассмотренные ранее [1-3] принципы сортировки на ЛП алгоритмах, проводится детальное сравнение с последовательными алгоритмическими процедурами и формулируются направления использования выявленных закономерностей в прикладных задачах.

2. Основные определения

Будем рассматривать набор данных А - множество, состоящее из элементов: А: {а1,а2,а3,...,а!,...,ап}, где а1 еА; 1 е(1,2,...,п) , - объект произвольной природы: число, фрагмент текста, запись в БД и др. Элементы множества А могут быть самими объектами набора данных, либо указателями на них, позволяющими взаимно-однозначно соотносить а1 еА и соответствующий объект. Термин «ограниченный» предполагает конечное число п элементов, неизменное в

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