ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
УДК 519.22
КЛЕТОЧНО-АВТОМАТНОЕ МОДЕЛИРОВАНИЕ ФИЗИКО-ХИМИЧЕСКИХ ПРОЦЕССОВ НАНОУРОВНЯ НА ГРАФИЧЕСКИХ УСКОРИТЕЛЯХ
© 2013 г. К.В. Калгин
Институт вычислительной математики и математической геофизики СО РАН, Новосибирск
Поступила в редакцию 23.08.2013
Моделирование каталитических физико-химических процессов на наноуровне кинетическим методом Монте-Карло требует достаточно больших вычислительных ресурсов. Создание «точных» параллельных алгоритмов моделирования таких процессов на графических ускорителях проблематично. Исследуются возможности применения блочно-синхронных режимов теории клеточных автоматов для моделирования кинетическим методом Монте-Карло. Предлагаются новые блочно-синхронные режимы, реализуемые на графическом ускорителе с достаточно высокой эффективностью, но имеющие большую точность воспроизведения динамики оригинальных моделей.
Ключевые слова: клеточный автомат, графический ускоритель, блочно-синхронный режим, асинхронный режим.
Введение
Большое число уже существующих моделей физико-химических процессов наноуровня, в основе которых лежит кинетический метод Монте-Карло (см., например, [1, 2]), и в которых обычно используются регулярные решетки и локальные правила изменения характеристик частиц материала, представляются в форме асинхронного клеточного автомата.
Асинхронное клеточно-автоматное (АКА) моделирование реальных процессов требует больших вычислительных мощностей, поскольку для выявления каких-либо свойств моделируемых процессов необходимо оперировать большими количествами частиц (1010—1012) в течение длительного времени (103—105 итераций). Естественно возникает потребность использовать параллельные вычислители для ускорения вычислений, к этому также располагают основные свойства клеточного автомата -естественная мелкозернистая параллельность и локальность взаимодействий при функционировании. Однако асинхронные клеточные автоматы не поддаются столь же легкому распараллеливанию, как обычные, синхронные, клеточные автоматы.
Это связано с тем, что при распараллеливании необходимо соблюдать следующие свойства: корректность и эффективность распаралле-
ливания, а также равноправие в выборе клеток. Первые два свойства типичны для большинства параллельных программ. Последнее свойство возникает из определения асинхронного режима работы клеточного автомата и заключается в следующем: вероятность выбора некоторой
клетки на некотором шаге должна быть равна вероятности выбора любой другой клетки на любом другом шаге.
Существующие параллельные алгоритмы можно разделить на два класса: не нарушающие свойства равноправия в выборе клеток [2, 3] (сохраняющие асинхронизм) и нарушающие его [4, 5] (нарушающие асинхронизм). Алгоритмы первого класса можно назвать «точными», они пригодны для исполнения только на мультипроцессорах и мультикомпьютерах, но не на графических ускорителях.
В работах [4-6] на трёх моделях показано, что применение алгоритмов, нарушающих асинхронизм, не вносит существенных изменений в моделируемый процесс. В основе этих алгоритмов лежат блочно-синхронные режимы работы клеточного автомата. В данной работе на примере модели ZGB (Ziff-Gulari-Barshad) [7] физико-химического процесса окисления углекислого газа на каталитической поверхности показывается, что использование блочносинхронных режимов может существенно изменить моделируемый процесс. Вопрос о том,
для каких моделей использование алгоритмов, нарушающих асинхронизм, допустимо, то есть не вносит изменений в моделируемый процесс, остаётся открытым.
Далее в разделе 1 даётся формальное определение клеточного автомата; в разделе 2 даются определения различных режимов, вводится новый расширенный блочно-синхронный режим; в разделе 3 описывается классическая модель ZGB [7] протекания химических реакций на поверхности катализатора; в разделе 4 исследуется статистическое отклонение эволюции при блочно-синхронных режимах от эволюции при асинхронном режиме для модели ZGB, показывается преимущество новых расширенных блочно-синхронных режимов; в разделе 5 описываются реализация и полученное ускорение на современных графических ускорителях.
1. Определение клеточного автомата
Асинхронная вероятностная КА модель описывается четвёркой
КА = {X, A, 0, Y).
Здесь:
- X - множество координат клеток. Наиболее употребимый вариант множества X - прямоугольная решётка
X = {{(/, j) \i е {0,1,2,..., Nr -1}},
j е {0,1,2,...,Nj -1}}; ()
- A - алфавит, множество состояний клеток. Клетка z есть пара z = (x, a) , где x е X называется координатой клетки и а е A - её состоянием. Клеточный массив Q есть множество клеток, Q = {(x, а)} с X х A , где ни одна пара клеток не имеет одинаковой координаты и {x | (х, а) е Q} = X. Поскольку между множеством координат клеток и множеством клеток в клеточном массиве существует взаимно-однозначное соответствие, далее мы будем отождествлять клетку и её координаты;
- 0 - локальный оператор перехода, далее просто оператор. Оператор 0 есть вероятностное отображение вида
0 : AT х A|T|--^ AT|, (2)
где шаблон T есть список именующих функций ф : X ^ X, T = {ф1,ф2,...,ф|Л}. Шаблон T определяет соседство клетки x: T(x) = ^(x),..., ф|Т| (x)}. В КА рассматриваемого класса следующие шаблоны наиболее используемы:
Tl3(x) = {x + v0, x + Vj,., x + v12}, (3)
T9(x) = {x + v0, x + v1,., x + v8}, (4)
где
V = {”^0, Уі2} =
= {(0,0), (0,1), (1,0), (0,-1), (-1,0), (1,1), (1,-1), (-1,1),(-1,-1), (0,2),(2,0), (0,-2),(-2,0)}. Применением рператрра 0 к клетке х называется обновление состояний клеток соседства Т(х) состояниями 0(Н(х)), где Н(х) есть список состояний клеток соседства Т(х);
- У - режим работы, который определяет порядок применения оператора к клеткам:
У є {ст,а, Р,у}, где ст означает синхронный режим, а - асинхронный, Р - блочно-синхронный, у - новый расширенный блочно-синхронный режим. Первые КА модели [8] формулировались в синхронном виде, то есть использовался синхронный режим. Основной режим работы рассматриваемого в данной работе класса КА моделей -асинхронный. Блочно-синхронные режимы используются в качестве вспомогательных в параллельных реализациях, в том числе на графических ускорителях. Далее подробно определяются режимы работы и эволюция клеточного автомата.
2. Эволюция клеточного автомата
В ходе моделирования происходит изменение клеточного массива О . Процесс моделирования разбивается на итерации. Эврлюция кле-трчнргр автрмата есть последовательность
О = {00,0;,02,...}, где 00 - начальный клеточный массив, а О, - клеточный массив после исполнения Ґ -й итерации.
Режим работы У задаёт порядок и количество применений оператора 0 к клеткам. Далее рассмотрим три режима наиболее часто используемых в КА моделях физико-химических процессов: синхронный (ст), асинхронный (а ) и блочно-синхронный (Р и у ).
Определение 1. В синхронном режиме ст итерация есть синхронное, одновременное применение оператора 0 ко всем клеткам клеточного массива.
Определение 2. В асинхронном режиме а итерация состоит из | X | последовательных шагов, на каждом шаге оператор 0 применяется к случайно выбранной клетке. На каждом шаге клетка выбирается независимо от номера итерации, номера шага, клеточного массива и предыдущих выбранных клеток. Разбиение процесса моделирования в асинхронном режиме на итерации, которые состоят из | X | шагов,
является условным и вводится по аналогии с синхронным режимом.
Определяемый далее блочно-синхронный режим содержит как синхронную компоненту, что позволяет эффективно исполнять его на параллельных вычислителях, так и асинхронную, что позволяет в некоторой степени имитировать работу асинхронного режима. Именно поэтому в работах [4, 5] он вводится исключительно как вспомогательный для эффективного и простого исполнения АКА моделей на параллельных вычислителях. В работах [4-6] на нескольких АКА моделях физико-химических процессов показано, что эволюции, полученные при асинхронном и блочно-синхронном режимах, не отличимы по анализируемым характеристикам. Полученные в этих статьях результаты не могут служить доказательством какой бы то ни было эквивалентности эволюции КА при асинхронном и блочно-синхронном режимах. Кроме того, автором были найдены «контрпримеры», показывающие, что для некоторых КА моделей использование блочно-синхронного режима
вместо асинхронного приводит к существенным изменениям в эволюции КА.
Определение 3 [4, 5]. В блочно-синхронном режиме Р итерация состоит из w стадий. На каждой стадии оператор 0 синхронно применяется ко всем клеткам случайно выбранного
подмножества ^^ с X, из семейства
£ = {51,S2,...Sв}, причем Ук | Sk |=| X |/м>. Для
обеспечения свойств корректности [4] синхронного применения, равноправности выбора клеток и эффективного параллельного исполнения [9] на семейство 5 накладываются следующие условия:
и 5- = X, (5)
і
У і ф j п Sj = 0, (6)
а также условия с участием дополнительного шаблона Т, покрывающего шаблон Т0 оператора 0, Т0 с Т:
У£ ит (х) = X, (7)
хєБ-
У£ Ух1,х2 є 5І : Т(х1) п Т(х2) = 0. (8)
Увеличивая размер шаблона Т, мы приближаемся к асинхронному режиму: при условии, что
Ух є X Т (х) = X, блочно-синхронный и асинхронный режимы эквивалентны, КА р = КА а .
Определение 4. В расширенном блочносинхронном режиме у итерация определяется так же, как и в блочно-синхронном режиме за следующим исключением. Условия (5) и (6),
которые говорят, что S есть одно из возможных разбиений X, заменяются на следующее: S есть объединение всех разбиений X, для которых выполняются условия (7) и (8).
Таким образом, расширенный блочносинхронный режим обладает свойствами корректности синхронного применения, за которое отвечает условие (8), а также эффективного параллельного исполнения, поскольку множество координат клеток покрывается шаблоном T в соответствии с (7) плотно. Кроме того, увеличивается размер семейства S , что делает расширенный блочно-синхронный режим более похожим на асинхронный по сравнению с блочно-синхронным. Тем не менее, условие равноправия при выборе клеток, как и в блочносинхронном режиме, нарушается, что может привести к статистическим смещениям в моделируемом процессе. Исследование вносимых статистических смещений проводится далее.
Перечислим элементы семейств S9 и S13 (см. также рис. 1 и 2), построенных с помощью шаблонов T9 и T13 соответственно:
^/3 = {(^ У):
y = i(mod3) x = r y/3j (mod3)},
S%..NZ/3 = {(x, У):
x = i(mod3) y = r^x/3j (mod 3)},
( \ (
S9 =
U SJ1.
-Пїу /З
^ i,ro,. ,rNy /З
Sf,1 = {( x,
s^2 = {( x,
u
Л
U S9
9,l
i,r0--JNX/З
yi,r0,---,rNX /З у
(9)
(10)
(11)
S13 = U (Sf,1 u S1^).
(14)
Таким образом, полностью определено семейство 5 расширенного блочно-синхронного КА для наиболее часто используемых шаблонов Ты, где N е {9,13}. Далее также используются блочно-синхронные режимы с семействами 5, построенными с помощью шаблонов Т25 (квадрат 5 х 5) и Т49 (квадрат 7 х 7). Семейства 525 и 549 устроены аналогично семейству 59, построенному с помощью шаблона Т9 (квадрат 3 х 3).
3. Модель ZGB
Для проведения вычислительных экспериментов используется известная АКА модель ZGB [7] физико-химического процесса окисления углекислого газа на каталитической поверхности. Множество координат есть прямо-
о о о о
о о о о
О о о о
о © © о
(а)
о
о
о о
о
о
о о
о
о
о о
о
о
© о
(б)
Рис. 1. Серыми кружками выделены клетки, координаты которых принадлежат множествам 5012 (а) и
(б)
Рис. 2. Серыми кружками выделены клетки, координаты которых принадлежат множествам 503’1 (а) и 503’2
(б)
угольная решётка (1). Алфавит А = {0, СО, О}, где состояние 0 означает пустой активный центр катализатора, а состояния СО и О - нахождение соответствующих молекул в активном центре катализатора.
Шаблон Т0 оператора 0 равен Т0 = Т13. Во время применения оператора 0 вначале случайным образом выбирается элементарный процесс с вероятностью, соответствующей его скорости протекания: процесс адсорбции СО, адсорбции О2 и реакции СО + О = СО2. Затем выполняются действия по изменению состояний клеток из соседства Т13 в соответствии с выбранным элементарным процессом. Эти действия подробно описаны в работе [7]. Стоит заметить лишь то, что большую часть кода, реализующего оператор перехода, составляют условные переходы, присваивания и целочисленные операции.
В данной работе в качестве дополнительного элементарного процесса вводится диффузия для определения её влияния на степень отличия эволюций при различных режимах работы.
Диффузия вводится таким же способом, как это делалось в более поздних работах по моделированию поверхностных каталитических реакций методом Монте-Карло (см., например, [1]).
4. Различия в поведении режимов
В работах [4-6] на трёх физико-химических моделях показывается, что изменение режима с асинхронного а на блочно-синхронный Р не вносит существенных изменений в общую картину эволюции КА. Как это будет показано далее, не для всех моделей изменение режима не изменяет эволюцию КА.
Для анализа степени подобия эволюций клеточных автоматов КА а , КА „ и КА как сто-
а ’ № У N
хастического объекта далее используется следующий подход: по эволюциям О*а, ОР^ и Оу^
вычисляются характеристики f (Оа ), f (ОР^ ) и f (О*), которые являются случайными величинами, после чего сравниваются их математические ожидания. Далее математическое ожидание
аэ 1 „мис*
Ьэ13
Ьв25
' Ьв49
еЬз13
еЬэ25
. еЬз49 г /
Ж
'У
'У ' ,/ /'
ж '' /V у? У
У/' ч \
О 50 100 150 200 250 300 350 400 450 500
Номер итерации
Рис. 3. Значение характеристики /1СО для модели ZGB без диффузии для первых 500 итераций, t < 500 . Графики as, bs13, bs25, bs49, ebs13, ebs25 и ebs49 соответствуют значению характеристики /1СО при режимах а, Р13, Р25, Р49, У13, У 25 и У 49
Таблица 1
Численные оценки математического ожидания среднеквадратичных отклонений gtY при ? = 100 и варьирующихся Y и коэффициенте kdif . Значение kdif = 0 соответствует оригинальной модели ZGB, значение kdif = 1 - модели ZGB с введённой диффузией (скорость протекания процесса диффузии в этом случае равна сумме скоростей остальных элементарных процессов)
Y = Plз У = Р 25 У = Р 49 у = У1з У = У 25 У = У 49
= 0 0.0067 0.0039 0.0026 0.0054 0.001 0.0008
= 1 0.0028 0.0021 0.0015 0.0019 0.0006 0.0004
характеристики для различных режимов будем обозначать через mY (f), где У є (а, РК, уК }. Численную оценку величины mY далее будем обозначать через mY . Для численной оценки mY генерируется такое количество эволюций ОУ , что mY є (т'У - 0.001, m'Y + 0.001) с вероятностью больше 0.99.
Наиболее часто употребима следующая характеристика:
| (х, a} є О, |
У,,. (о*) = ■
(15)
то есть /а (О ) равно доле клеток с состоянием а в клеточном массиве после исполнения 1 итераций. С помощью этой характеристики зачастую очень трудно отличить эволюции с различными режимами.
На рис. 3 представлено значение характеристики У1СО для модели ZGB без диффузии. Видно, что графики, соответствующие режимам
Р13 и Р25, существенно отклоняются от графика, соответствующего асинхронному режиму. При введении в модель диффузии отличить графики невозможно.
В данной работе предлагается использовать следующую более информативную характеристику эволюции клеточного автомата:
*) = | (х,а} є О, : (х + Ах,а) є О,| ^6)
1 ,Ах ( ) И1И1 ’
то есть У Ах (О*) равно доле пар клеток с координатами х их + Ах в одинаковых состояниях в клеточном массиве после исполнения 1 итераций. Предлагаемая характеристика /1Ах содержит в себе информацию не только о количестве, но и о пространственном расположении состояний в отличие от часто используемой характеристики /а . В табл. 1 представлены результаты численной оценки математического ожидания среднеквадратичных отклонений
Таблица 2
Параметры используемых графических ускорителей
GTX 28G GTX 68G
Тактовая частота (ГГц) 1.3 1.1
Мультипроцессоров (шт.) 3G 8
Потоковых процессоров (шт.) 24G 1536
Глобальная память (Мбайт) 768 4G96
Разделяемая память (Кбайт) 26 48
Текстурный кэш (байт) 8192 8192
Кэш (Кбайт) - 48
Регистры (шт.) 16384 32768
Планируемое число потоков На мультипроцессоре 1G24 l536
при kdiff е {0,1}. Для численной оценки gtY, обозначаемой как g' Y, генерируется такое количество эволюций Q* и QY , что gtY е (g'Y - 0.001, g'Y + 0.001) с вероятностью больше 0.99.
Перечислим основные результаты, которые можно наблюдать на представленном рис. 3 и в табл. 1:
1. Эволюции Qp3 и Q существенно отличаются от Qa по обеим характеристикам
f,,a (15) и f,M (16) При kiiff =0;
2. Эволюции Q*,QP ,QP ,Q* и Q* сла-
a ’ р25 ’ р49 ’ У 25 У49
бо различимы с точки зрения первой характеристики f, a(15) при кт = 0 ;
3. Эволюции Q„, QB , QB , QB , Q,, , Q,, и
a ? p13 ’ p25 ’ P49 ’ y13 ’ y25
Q практически неразличимы с точки зрения первой характеристики fta (15) при к diff = 1;
4. Эволюции Q и Q практически неотличимы от эволюции Qa по всем представленным характеристикам включая gtY (17) при всех значениях kdiff.
Перечисленные результаты, наблюдаемые автором и на многих других моделях, обобщаются в следующие два очень важных утверждения:
1. КА модели с диффузией существенно лучше поддаются моделированию блочносинхронными режимами.
2. Предложенные автором расширенные блочно-синхронные режимы расширяют возможности эффективного параллельного исполнения КА моделей.
5. Реализация на CUDA
CUDA [10] расшифровывается как Compute Unified Device Architecture (унифицированная
архитектура вычислительных устройств), описывает архитектуру аппаратной части и программного обеспечения. CUDA создана компанией Nvidia в 2007 году, позволяет разрабатывать программы общего назначения для графических ускорителей. Для тестирования использовались графические ускорители Nvidia GTX 280 и Nvidia GTX 680 (Kepler), их характеристики представлены в табл. 2.
Стадии итерации блочно-синхронных режимов на графическом ускорителе исполняются последовательно, поскольку информационно зависимы между собой. Применение оператора
0 к клеткам выбранного на текущей стадии подмножества St может быть выполнено параллельно, согласно условию (8) непересечения окрестностей различных клеток, входящих в St.
Параллельный алгоритм. Программа, исполняемая на центральном процессоре, используя генератор псевдослучайных чисел, выбирает St из семейства S, после чего запускает функцию на графическом ускорителе, исполняющую одну стадию. Номер подмножества i передаётся на графический ускоритель через аргумент запускаемой функции. Число порождаемых потоков на графическом ускорителе равно числу клеток, к которым применяется оператор 0 на текущей стадии, | St |. По номеру подмножества
1 и своему номеру каждый поток в соответствии с формулами (9)—(14) вычисляет координаты клетки, к которой этот поток будет применять оператор 0. После применения оператора к клетке поток завершает свою работу. После завершения всех порождённых потоков с центрального процессора запускается следующая стадия.
Согласно рекомендациям разработчиков CUDA [10], для достижения высокой производительности необходимо порождать потоков в несколько раз больше, чем имеется ядер на графическом ускорителе. Данное условие будет выполняться на современных графических ускорителях для размеров клеточной области
Таблица 3
Результаты тестирования при размерах клеточной области в 1000 х 1000, 2000 х 2000 и 8000 х 8000 клеток на графических ускорителях GTX 280 и GTX 680. Показано ускорение по отношению ко времени работы последовательной программы на одном ядре процессора Core i7
1000 х 1000 2000 х 2000 8000 х 8000
Ускорение GTX 280/Core i7 х25 х31 х35
Ускорение GTX 680/Core i7 х48 х60 х65
больше 700 х 700 . Именно для таких размеров и требуется распараллеливание.
В табл. 3 представлены результаты тестирования реализации описанного алгоритма на современных графических ускорителях при шаблоне T = T13. Использование других шаблонов T25 и T49 влияет на время исполнения незначительно.
По результатам, приведённым в табл. 3 и работе [11], можно сказать, что один рядовой графический ускоритель GTX 280 на тестируемой задаче по производительности заменяет мощную 32-ядерную вычислительную систему над общей памятью (4 процессора Intel Xeon X7560 2.2Ghz, была доступна автору в рамках проекта Intel Manycore Testing Lab), а новый графический ускоритель GTX 680 заменит мощную 64-ядерную вычислительную систему (8 процессоров Intel Xeon X7560 2.2 Ghz, один узел в кластере Новосибирского государственного университета [12]).
Заключение
В работе показана принципиальная возможность использования графических ускорителей для моделирования физико-химических процессов на наноуровне кинетическими методами Монте-Карло. Предложены новые расширенные блочно-синхронные режимы, обеспечивающие существенно меньшее статистическое отклонение от «эталонного» асинхронного режима и имеющие ту же, что и блочно-синхронный режим, эффективность параллельного исполнения.
Работу следует продолжить в направлении (а) теоретического обоснования возможности использования расширенных блочно-синхронных режимов и (б) накопления статистики для других физико-химических моделей, в основе которых лежит кинетический метод Монте-Карло.
Исследование выполнено по Программе фундаментальных исследований Президиума РАН, проект 15-9; поддержано Междисциплинарным Интеграционным проектом СО РАН 47 и РФФИ в рамках научныгх проектов 11-01-00567a и 12-01-31455.
Список литературы
1. Elokhin V.I., Latkin E.I., Matveev A.V., and Go-rodetskii V.V. Application of Statistical Lattice Models to the Analysis of Oscillatory and Autowave Processes on the Reaction of Carbon Monoxide Oxidation over Platinum and Palladium Surfaces // Kinetics and Catalysis. V. 14. Issue 5. P. 692-700.
2. Overeinder B.J., Sloot P.M.A. Extensions to Time-Warp Parallel Simulation for Spatial Decomposed Applications // Proc. of the 4th United Kingdom Simulation Society Conference (UKSim 99) / Ed. by D. Al-Dabass, R. Cheng. Cambridge, UK, 1999. P. 67-73.
3. Lubachevsky B. Efficient parallel simulation of asynchronous cellular arrays // Complex Systems. 1987. V. 1. P. 1099-1123.
4. Bandman O.L. Parallel Simulation of Asynchronous Cellular Automata Evolution. ACRI 2006, LNCS 4173. Р. 41-47.
5. Nedea S.V., Lukkien J.J., Hilbers P.A.J., Jansen A.P.J. Methods for Parallel Simulations of Surface Reactions // Proc. of the 17th International Symposium on Parallel and Distributed Processing, 2003.
6. Sharifulina A., Elokhin V. Simulation of Heterogeneous Catalytic Reaction by Asynchronous Cellular Automata on Multicomputer. PaCT 2011. Р. 204-209.
7. Ziff R.M., Gulari E., Barshad Y. Kinetic phase transitions in an irreversible surface-reaction model // Phys. Rev. Lett. 1986. V. 56. Issue 24. Р. 2553-2556.
8. von Neumann J. Theory of self reproducing automata // University of Illinois Urbana, USA, 1966.
9. Kalgin K.V. Comparative Study of Parallel Algorithms for Asynchronous Cellular Automata Simulation on Different Computer Architectures. ACRI-2010, LNCS-6350. 2010. Р. 399-408.
10. NVIDIA CUDA Programming Guide. http://www. nvidia .com/obj ect/cuda\_get.html
11. Калгин К.В. Параллельная реализация асинхронных клеточных автоматов на 32-ядерной вычислительной системе // Сиб. журн. вычисл. матем. 2012. Т. 15. № 1. Р. 55-65.
12. Вычислительный кластер Новосибирского государственного университета, http://www.nusc.ru.
CELLULAR AUTOMATA SIMULATION OF NANOSCALE PHYSICO-CHEMICAL PROCESSES
ON GRAPHICS PROCESSING UNITS
K. V. Kalgin
Simulation of nanoscale catalytic physico-chemical processes by the kinetic Monte-Carlo (KMC) method requires a sufficiently large computational power. Creation of «exact» parallel simulation algorithms for GPUs is quite problematic. In this paper, we study the possibility of applying cellular automata block-synchronous modes to KMC method simulation. New block-synchronous modes are proposed which are implemented on a GPU with high efficiency and with a higher fidelity of original model dynamics reproduction.
Keywords: cellular automaton, graphics processing unit (GPU), block-synchronous mode, asynchronous mode.