Presentation is loading. Please wait.

Presentation is loading. Please wait.

Мелкозернистый параллелизм клеточно-автоматных моделей пространственной динамики Лекция 2 Руководитель: д.т.н., проф., Бандман О.Л. Лектор: к.ф.-м.н.,

Similar presentations


Presentation on theme: "Мелкозернистый параллелизм клеточно-автоматных моделей пространственной динамики Лекция 2 Руководитель: д.т.н., проф., Бандман О.Л. Лектор: к.ф.-м.н.,"— Presentation transcript:

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 Содержание курса Первая часть Экскурс в историю развития КА-моделирования Основные понятия и формальная модель клеточного автомата Параллельная реализация клеточно-автоматных алгоритмов Вторая часть Классификация клеточных автоматов –по поведенческим свойствам, –по свойствам процессов, которые они моделируют, –по способам построения КА моделей. Композиция КА-моделей с введением операций на множестве клеточных автоматов. Третья часть Рассмотрение конкретных КА-моделей в гидродинамике, поверхностной химии, биологии, кинетике и синтезе нано систем, и др. Вычислительные свойства клеточных автоматов


Download ppt "Мелкозернистый параллелизм клеточно-автоматных моделей пространственной динамики Лекция 2 Руководитель: д.т.н., проф., Бандман О.Л. Лектор: к.ф.-м.н.,"

Similar presentations


Ads by Google