Download presentation
Presentation is loading. Please wait.
1
Мелкозернистый параллелизм клеточно-автоматных моделей пространственной динамики Лекция 2 Руководитель: д.т.н., проф., Бандман О.Л. Лектор: к.ф.-м.н., Нечаева О. И. Ассистент: Бессмельцев М.В.
2
Два подхода при моделировании Классический подход – дифференциальные уравнения Альтернативный подход – дискретное моделирование Клеточный автомат
3
Основные определения А – алфавит состояний –Например, А B ={0,1}, A R =[0,1], A C ={a,b,c,…} М – множество имен клеток –Например, M={(i,j): i=1,…,N 1, j=1,…,N 2 } Клетка – это пара (а,m), где а A и m M Клеточный массив – это множество клеток ={(а,m): а A, m M}
4
Подстановка Подстановка – это замена одной или нескольких клеток в клеточном массиве на одну или несколько других клеток по заданному правилу. a, m 2 a, m 4 b, m 3 b, m 7 a, m 5 b, m 9 d, m 6 d, m 10 a, m 8 a, m 1 a, m 3 (m 3 ) : {(b,m 3 )} {(a,m 1 ), (a,m 4 ), (b,m 7 )} {(a,m 3 )} база контекст база на следующем такте Подстановка должна быть определена для каждой клетки в клеточном массиве
5
Шаблон соседства Шаблон соседства для клетки (a,m) – это множество имен клеток текущего такта, участвующих в подстановке (m), т.е. имен клеток базы и контекста: T={m, m 1, m 2, …, m n } Например, T={m 3, m 1, m 4, m 7 } Чтобы не задавать шаблон перебором, вводятся именующие функции. Каждая именующая функция клетки (a,m) указывает на имя одного из соседа этой клетки: Тогда шаблон задается так: T={m, 1 (m), 2 (m), …, n (m)} a, m 2 a, m 4 b, m 3 b, m 7 a, m 5 b, m 9 d, m 6 d, m 10 a, m 8 a, m 1 a, m 3 m 1 = 1 (m), m 2 = 2 (m), … m n = n (m)
6
Пример шаблона соседства M={(i,j): i=1,…,N 1, j=1,…,N 2 } 1 (i,j) = (i,j+1) 2 (i,j) = (i,j-1) 3 (i,j) = (i+1,j) 4 (i,j) = (i+1,j+1) 5 (i,j) = (i+1,j-1) 6 (i,j) = (i-1,j) 7 (i,j) = (i-1,j+1) 8 (i,j) = (i-1,j-1) Шаблон : T={m, 1 (m), 2 (m), …, 8 (m)} - применяется ко всем внутренним клеткам.
7
Примеры шаблонов соседства u ij
8
Алгоритм параллельных подстановок Пусть дан шаблон T={m, 1 (m), 2 (m), …, n (m)} { (a, m), (a 1, 1 (m)), (a 2, 2 (m)), …, (a n, n (m)) } = S(m) K(m), где –S(m) – база (клетки, которые будут заменены на следующем такте) –K(m) – контекст (клетки, которые учитываются при замене клеток из базы) Подстановка (m) : S(m) K(m) S’(m) Состояние каждой клетки базы S’(m) есть функция от состояний всех клеток с именами из шаблона Т. Эта функция обычно называется правилом перехода клеточного автомата. Алгоритм параллельных подстановок – это параллельное выполнение подстановок для каждой клетки клеточного массива в каком-либо режиме (синхронный, асинхронный, блочно- синхронный и др.).
9
Алгоритм параллельных подстановок – это формальная система, позволяющая моделировать процессы в дискретном пространстве и дискретном времени. S. Achasova, O.Bandman, V.Markova, S Piskunov. Parallel Substitution Algorithm. Theory and Applications. World Scientific, 1994.
10
Игра жизнь u0’=u0’= 1, если (u 0 =0 ) & ( u k = 3) 0, если (u 0 =1) & ( u k 3) M={(i,j): i=1,…,N 1, j=1,…,N 2 } 1 (i,j) = (i,j+1) 2 (i,j) = (i,j-1) 3 (i,j) = (i+1,j) 4 (i,j) = (i+1,j+1) 5 (i,j) = (i+1,j-1) 6 (i,j) = (i-1,j) 7 (i,j) = (i-1,j+1) 8 (i,j) = (i-1,j-1) База S(m) = {(a,m)} Контекст K(m) = { (a 1, 1 (m)), (a 2, 2 (m)), …, (a 8, 8 (m)) }
11
Обобщенная формальная модель : Алгоритм параллельных подстановок Замечательный пример: Параллельный сумматор многих чисел 1 1 1 00 0 0 0 0 0 1 01 j i 0 1 0 0 1 9 0 1 1 1 1 + 15 0 0 1 0 1 + 5 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 = 29 0 0 1 0 0 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12
Эволюция клеточного автомата Глобальный оператор Ф( ) – это применение локальных операторов подстановки ко всем клеткам клеточного массива. Одно применение глобального оператора Ф( ) – это итерация. (t) – это клеточный массив на итерации t. Эволюция клеточного автомата: (0), (1),..., (t),..., (Т) Естественное завершение процесса моделирования: Если (t) = (t+1) =…= (t+n) для некоторого n, то t = T.
13
Управляющий контекст (контекст 2 рода) Контекст 2 рода – это множество клеток, которое не содержится в , но влияет на результаты работы локального оператора подстановки. K=3 : (rand,(i,j)’) (k,(i,j)’ ) k= 1, if 0 < rand 1/4 2, if ¼ <rand 1/2 3, if ½ <rand 3/4 4, if ¾ <rand 1 Вероятностный контекст : (t,m) (t’,m) t’ = 1, if t(mod2)=1 0, if t(mod2)=0 Тактирующий контекст : ((i,j),m) ( ,m) = 1, if (i,j) M’ 0, if (i,j) M’ Маскирующий контекст : (u 0,u 1,u 2,u 3,u 4 ) (u 3,u 1,u 2,u 0,u 4 ) u1u0u1u0 u2u2 u3u3 u4u4 k u0u0 u3u3 u4u4 u1u1 u2u2 (i,j) M
14
Режимы функционирования КА Синхронный t= Асинхронный t= |M| Блочно-синхронный (n синхр.стадий) t= k Упорядоченный асинхронный t= |M| Режим Виртуальный параллелизм t - номер итерации t = n - время применения одного локального оператора) Реальный параллелизм Для всех режимов t |M| / P P – число процессоров
15
Блочно-синхронная диффузия (Марголус) A={0,1}, M = { (i,j) : 200x200 } 0 1234 0 1 2 3 4 i,j=even t=even i,j=odd t=odd 111 1 11 1 P=1/2 p=1/2 1 (ij): u t = d(u xx + u yy ) C=d / h 2 <1/4 C= 3/2
16
Солитон - одинокая волна, которая - распространяется с постоянной скоростью - сохраняет форму - при столкновении с другим солитоном не меняет ни скорости и ни формы - возникает благодаря нелинейным свойствам среды Уравнение Кортиега-де Фриза (Korteweg-de Vries) u(t;x) [u(t;x)] 2 3 u(t;x) t x x 3 = -3-
17
Солитон t= 0: 0000000000 ….000000000010001001000000000000000001101100 t= 6: 000000000…00001000100100000000110110000000000000000000 t=30: 000000000000000000000011011000010001001…00000000000000 t=36: 01101100000000000001000100100000…000000000000000000000 d=12, p=6 d=7,p=2 A 1 ={0,1}, M 1 = {0,1,2,…,i,..,N} 1 : (u,i) {(u -5,i-5),…(u 5,i+5)} (u’,i) 1, если u i-5 +,…u i + u i+5 =0(mod2 ), но u i-5 +,…u i + u i+5 0 0 в остальных случаях u’= Режим: упорядоченный асинхронный A 2 =[0,1], M 2 = {0,1,2,..,i’,…,N} 2 : (v,i’) {(u -r,i-r),…(u r,i+r)} (v’,i) u’ = r -r u i 1 2r+1 Режим: синхронный
18
1000 10 1 0 101 0 1000 11 ? 0 Противоречие ! Поведенческая корректность = {(u,(i,j),(v(i,j+1)} {(v,(i,j),(u(i,j+1)} Пример некорректного поведения: A={0,1}, M={(i,j)}, синхронный режим j i 0 1 2 3 4 5 0123401234 (2,2): S’(2,2)={( 1,(2,2))(1(2,3))} (2,3): S’(2,3)={( 0, (2,3))(1(2,4))} T(2,2) T(2,3) = (2,3)
19
Условия корректности КА-алгоритма 1. Непротиворечивость (safeness): На каждом такте к каждой клетке базовой конфигурации может быть применен только один локальный оператор Достаточное условие: 2. Равноправие клеток (fairness) На каждой итерации локальный оператор должен быть применен к каждой клетке и только один раз T(i,j) T(k,l) = (i,j),(k,l) M Классический синхронный - корректный, |S(i,j)| =1 Асинхронный - корректный, применяется только к одной клетке Синхронный с |S(i,j)| >1 - некорректный и должен быть приведен к блочно-синхронному
20
Обобщенная формальная модель : Алгоритм параллельных подстановок Замечательный пример: Параллельный сумматор многих чисел 1 1 1 00 0 0 0 0 0 1 01 j i 0 1 0 0 1 9 0 1 1 1 1 + 15 0 0 1 0 1 + 5 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 = 29 0 0 1 0 0 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21
КА «разделение фаз» A={0,1) M={(i,j): i,j=0,…,200} Synchronous mode of operation 8 1,if u0u0 u1u1 u2u2 u3u3 u4u4 u5u5 u6u6 u7u7 u8u8 u’ 0 1, if u k >5 or u k =4 0, otherwise u’= u t =0.2(u xx +u yy ) -0.2(u-0.1)(u-0.5)(u-0.9); Asynchronous mode of operation R Крит. d(0) = 0.5, T=400, d(T)=0.7 t итер = 0, 18сек Крит. D(0)=0.22452157, T=220, d(T)=1 t итер = 0.19 сек
22
Содержание курса Первая часть Экскурс в историю развития КА-моделирования Основные понятия и формальная модель клеточного автомата Параллельная реализация клеточно-автоматных алгоритмов Вторая часть Классификация клеточных автоматов –по поведенческим свойствам, –по свойствам процессов, которые они моделируют, –по способам построения КА моделей. Композиция КА-моделей с введением операций на множестве клеточных автоматов. Третья часть Рассмотрение конкретных КА-моделей в гидродинамике, поверхностной химии, биологии, кинетике и синтезе нано систем, и др. Вычислительные свойства клеточных автоматов
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.