Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

56
cpeg421-10-F/Topic-3-II-EARTH 1 Topic 2 -- II: Compilers and Runtime Technology: Optimization Under Fine-Grain Multithreading - The EARTH Model (in more details) Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor Electrical & Computer Engineering University of Delaware [email protected]

description

Topic 2 -- II: Compilers and Runtime Technology: Optimization Under Fine-Grain Multithreading - The EARTH Model (in more details). Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor Electrical & Computer Engineering University of Delaware [email protected]. Outline. - PowerPoint PPT Presentation

Transcript of Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Page 1: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 1

Topic 2 -- II: Compilers and Runtime Technology:

Optimization Under Fine-Grain Multithreading- The EARTH Model (in more details)

Guang R. Gao

ACM Fellow and IEEE FellowEndowed Distinguished ProfessorElectrical & Computer Engineering

University of [email protected]

Page 2: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 2

Outline• Overview• Fine-grain multithreading• Compiling for fine-grain multithreading• The power of fine-grain synchronization -

SSB• The percolation model and its applications• Summary

Page 3: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 3

Outline• Overview• Fine-grain multithreading• Compiling for fine-grain multithreading• The power of fine-grain synchronization -

SSB• The percolation model and its applications• Summary

Page 4: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

TheThe EARTH EARTH Multithreaded Execution Model

cpeg421-10-F/Topic-3-II-EARTH 4

fiber within a frame

Aync. function invocation

A sync operationInvoke a threaded func

Two Level of Fine-Grain Threads:- threaded procedures- fibers

2 2 1 2

1 2 2 4

Signal Token

Total # signals

Arrived # signals

Page 5: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

EARTH vs. CILK

cpeg421-10-F/Topic-3-II-EARTH 5

Fiber within a frameParallel function invocation framesfork a procedure

SYNC ops

Note: EARTH has it origin in static dataflow model

EARTH Model CILK Model

Page 6: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 6

0 2 0 2

0 1 0 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 7: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 7

1 2 0 2

0 1 0 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 8: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 8

2 2 0 2

0 1 0 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 9: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 9

2 2 0 2

1 1 0 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 10: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 10

2 2 0 2

1 1 1 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 11: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 11

2 2 1 2

1 1 1 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 12: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 12

2 2 2 2

1 1 1 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 13: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 13

2 2 2 2

1 1 2 2 0 4

Signal TokenTotal # signalsArrived # signals

Page 14: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 14

2 2 2 2

1 1 2 2 1 4

Signal TokenTotal # signalsArrived # signals

Page 15: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 15

2 2 2 2

1 1 2 2 2 4

Signal TokenTotal # signalsArrived # signals

Page 16: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 16

2 2 2 2

1 1 2 2 3 4

Signal TokenTotal # signalsArrived # signals

Page 17: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The “Fiber” Execution Model

cpeg421-10-F/Topic-3-II-EARTH 17

2 2 2 2

1 1 2 2 4 4

Signal TokenTotal # signalsArrived # signals

Page 18: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

A Loop Example

cpeg421-10-F/Topic-3-II-EARTH 18

for(i =1; i <= N; ++i){ S1: … S2: x[i] = … S3: y[i] = … + x[i-1] … . . . Sk: …}

S1:

S2:

S3:

Sk:

i= 1 i= 2 i= 3 i= N

Note:How loop carried dependencies are handled?And its implication on cross core software pipelining

T1 T2 T3

Page 19: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Main Features of EARTH

* Fast thread context switching• Efficient parallel function invocation• Good support of fine grain dynamic load

balancing* Efficient support split phase transactions

and fibers

cpeg421-10-F/Topic-3-II-EARTH 19

*Features unique to the EARTH model in comparison to the CILK model

Page 20: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 20

Outline• Overview• Fine-grain multithreading• Compiling for fine-grain multithreading• The power of fine-grain synchronization -

SSB• The percolation model and its applications• Summary

Page 21: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Compiling C for EARTHObjectives

• Design simple high-level extensions for C that allow programmers to write programs that will run efficiently on multi-threaded architectures. (EARTH-C)

• Develop compiler techniques to automatically translate programs written in EARTH-C to multi-threaded programs. (EARTH-C, Threaded-C)

• Determine if EARTH-C + compiler can compete with hand-coded Threaded-C programs.

cpeg421-10-F/Topic-3-II-EARTH 21

Page 22: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Summary of EARTH-C Extensions

• Explicit Parallelism– Parallel versus Sequential statement sequences– Forall loops

• Locality Annotation– Local versus Remote Memory references (global, local,

replicate, …)• Dynamic Load Balancing

– Basic versus remote function and invocation sites

cpeg421-10-F/Topic-3-II-EARTH 22

Page 23: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

EARTH-C Compiler Environment

cpeg421-10-F/Topic-3-II-EARTH 23

McCAT

EARTH-C Compiler

Threaded-C Compiler

C EARTH-C

EARTH SIMPLE

Threaded-C

Program Dependence Analysis

Thread Generation

EARTH SIMPLE

Thread Partitioning

Threaded-CEARTH Compilation EnvironmentThe EARTH Compiler

Page 24: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The McCAT/EARTH Compiler

cpeg421-10-F/Topic-3-II-EARTH 24

EARTH-C

THREADED-C

EARTH-SIMPLE-C

EARTH-SIMPLE-C

Simplify goto eliminationLocal function inlining Points-to Analysis

Heap AnalysisR/W Set Analysis

Array Dependence Tester

Forall Loop DetectionLoop Partitioning

Build Hierarchical DDGThread Generation

Code Generation

Page 25: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

04/24/23 \Petaflop\Workshop98-7B.ppt 25

If n < 2 DATA_RSYNC (1, result, done)else { TOKEN (fib, n-1, & sum1, slot_1); TOKEN (fib, n-2, & sum2, slot_2); }END_THREAD( ) ;

THREAD-1; DATA_RSYNC (sum1 + sum2, result, done);END_THREAD ( ) ;END_FUNCTION

0 0

2 2

fibn result done

The Fibonacci Example

Page 26: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

04/24/23 \Petaflop\Workshop98-7B.ppt 26

void main ( ){ int i, j, k; float sum;

for (i=0; i < N; i++) for (j=0; j < N ; j++) { sum = 0; for (k=0; k < N; k++) sum = sum + a [i] [k] * b [k] [j] c [i] [j] = sum; }}

Sequential Version

Matrix Multiplication

Page 27: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

04/24/23 \Petaflop\Workshop98-7B.ppt 27

BLKMOV_SYNC (a, row_a, N, slot_1);BLKMOV_SYNC (b, column_b, N, slot_1);sum = 0;END_THREAD;

THREAD-1; for (i=0; i<N; i++ ); sum = sum + (row_a[i] * column_b[i]); DATA_RSYNC (sum, result, done); END_THREAD ( ) ;

0 0

2 2

innera result doneb

The Inner Product Example

END_FUNCTION

Page 28: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Summary of EARTH-C Extensions

• Explicit Parallelism– Parallel versus Sequential statement sequences– Forall loops

• Locality Annotation– Local versus Remote Memory references (global, local,

replicate, …)• Dynamic Load Balancing

– Basic versus remote function and invocation sites

cpeg421-10-F/Topic-3-II-EARTH 28

Page 29: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

EARTH C Threaded C(Thread Generation)

Given a sequence of statements, s1, s2, …sn, we wish to create threads such that:– Maximize thread length (minimize thread

switching overhead)– retain sufficient parallelism– Issue remote memory requests as early as

possible (prefetching)– Compile split-phase remote memory operations

and remote function calls correctly

cpeg421-10-F/Topic-3-II-EARTH 29

Page 30: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

An Example

cpeg421-10-F/Topic-3-II-EARTH 30

int f(int *x, int i, int j){ int a, b, sum, prod, fact; int r1, r2, r3; a = x[i]; fact = 1; fact = fact * a;

b = x[j]; sum = a + b; prod = a * b; r1 = g(sum); r2 = g(prod); r3 = g(fact); return(r1 + r2 + r3); }

Page 31: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

1

3

1

Example Partitioned into Four Fibers

cpeg421-10-F/Topic-3-II-EARTH 31

a = x[i];fact = 1; fact = fact * a;

b = x[j];

sum = a + b;prod = a * b;r1 = g(sum);r2 = g(prod);r3 = g(fact);

return (r1 + r2 + r3);

Fiber-0:

Fiber-1:

Fiber-2:

Fiber-3:

Page 32: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Better Strategy Using List Scheduling

• Put each instruction in the earliest possible thread.

• Within a thread, the remote operations are executed as early as possible.

Build a Data Dependence Graph (DDG), and use a list scheduling strategy, where the selection of instructions is guided by Earliest Thread Number and Statement Type.

cpeg421-10-F/Topic-3-II-EARTH 32

Page 33: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Instruction Types

• Schedule First– remote_read, remote_write– remote_fn_call– local_simple– remote_compound– local_compound– basic_fn_call

• Schedule Last

cpeg421-10-F/Topic-3-II-EARTH 33

Page 34: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

List Scheduling Previous Example

cpeg421-10-F/Topic-3-II-EARTH 34

(0,RR) (0,RR) (0,LS)

(1,LS) (1,LS) (1,LC)

(1,RF) (1,RF) (1,RF)

(2,LS)

Page 35: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Resulting List Scheduled Threads

cpeg421-10-F/Topic-3-II-EARTH 35

a=x[i];b=x[j];fact=1;

sum=a+b;r1=g(sum);prod=a*b;r2=g(prod);fact=fact*i;r3=g(fact)

return (r1+r2+r3);

2

3

Page 36: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Generating Threaded-C Code

cpeg421-10-F/Topic-3-II-EARTH 36

THREADED f ( int *ret_parm, SLOT *rsync_parm, int *x, int i, int j){

SLOTS SYNC_SLOTS[2];int a, b, sum, prod, fact, r1, r2, r3;

/* THREAD_0:; */INIT_SYNC(0, 2, 2, 1); INIT_SYNC (1, 3, 3, 2);GET_SYNC_L (&x[i], &a, 0);GET_SYNC_L (&x[j], &b, 0);fact = 1;END_THREAD( );

THREAD_1:;sum = a + b;TOKEN (G, &r1, SLOT_ADR(1), sum);prod = a * b;TOKEN (g, &r2, SLOT_ADR(1), prod);fact = fact * a;TOKEN (g, &r3, SLOT_ADR(1), fact);END_THREAD( );

THREAD_2:;DATA_RSYNC_L(r1 + r2 + r3, ret_parm, rsync_parm);END_FUNCTION( );

}

Page 37: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 37

Outline• Overview• Fine-grain multithreading• Compiling for fine-grain multithreading• The power of fine-grain synchronization -

SSB• The percolation model and its applications• Summary

Page 38: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Fine-Grain Synchronization: Two Types

Sync Type Enforce Mutual Exclusion

Enforce Data Dependencies

Order No Specific Order required

Uni-directional

Fine Grain Sync. Solution

• Software Fine grained locks• Lock free concurrent data structures• Full / Empty bits

• I-structures• Full / Empty bits

cpeg421-10-F/Topic-3-II-EARTH 38

Page 39: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Enforce Data Dependencies

• A DoAcross loop with positive and constant dependence distance.

cpeg421-10-F/Topic-3-II-EARTH 39

for(i= D; i < N; ++i){ A[i] = … … … = A[i-D];}

In parallel iterations are assigned to different threads

T0 T1

(i = 2 + D){ A[2+D] = … … … = A[2]}

(i = 2){ A[2] = … … … = A[2-D]}

The data dependence needs to be enforced by synchronization

Page 40: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Memory Based Fine-Grain Synchronization:

• Full/Empty Bits (HEP, Tera MTA, etc) & I-Structures (dataflow based machines)

• Associate “state” to a memory location (fine-granularity). Fine-grain synchronization for the memory location is realized through “state transition” on such “state”.

cpeg421-10-F/Topic-3-II-EARTH 40

I-Structure state transition[ArvindEtAl89 @ TOPLAS]

Empty

Full Deferred

read

readwrite

resetwrite

read

Page 41: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

With Memory Based Fine-Grain Sync

• Using a single atomic operation complete synchronized write/read in memory directly

• No need to implement synchronization with other resources, e.g., shared memory.

• Low overhead: just one memory transaction

cpeg421-10-F/Topic-3-II-EARTH 41

for(i= D; i < N; ++i){ A[i] = … … … = A[i-D];}

for(i= D; i < N; ++i){ write_sync(&(A[i]),…) … … = read_sync(&(A[i-D]));}

Page 42: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

With Memory Based Fine-Grain Sync

• Using a single atomic operation complete synchronized write/read in memory directly

• No need to implement synchronization with other resources, e.g., shared memory.

• Low overhead: just one memory transaction

cpeg421-10-F/Topic-3-II-EARTH 42

T1

(i = 2 + D){ write_sync(&(A[2 + D]),…); … … = read_sync(&(A[2]));}

T0

(i = 2){ write_sync(&(A[2]),…); … … = read_sync(&(A[2-D]));}

Page 43: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

An Alternative: control-flow based synchronizations

cpeg421-10-F/Topic-3-II-EARTH 43

• The post/wait instructions needs to be implemented in shared memory in coordination with the underline memory (consistency) models

• You may need to worry about this:

A[i] = …;fence;post(i);

wait(i-D);fence;… = A[i-D];

for(i= D; i < N; ++i){ A[i] = … post(i); … wait(i-D); … = A[i-D];}

No data dependency

No data dependency

For computation with more complicated data dependencies, memory-based fine-grain synchronization is more effective and efficient. [ArvindEtAl89 @ TOPLAS]

Page 44: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

A Question!

cpeg421-10-F/Topic-3-II-EARTH 44

Page 45: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 45

Key ObservationKey Observation:

Solution:

Page 46: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

What is SSB?

• A small hardware buffer attached to the memory controller of each memory bank.

• Record and manage states of actively synchronized data units.

• Hardware Cost– Each SSB is a small look-up table: Easy-to-implement– Independence of each SSB: hardware cost increases

only linearly proportional to # of memory banks

cpeg421-10-F/Topic-3-II-EARTH 46

Page 47: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 47

SSB on Many-Core (IBM C64)

IBM Cyclops-64, Designed by Monty Denneau.

Page 48: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

SSB Synchronization Functionalities

Data Synchronization: Enforce RAW data dependencies• Support word-level

– Two single-writer-single-reader (SWSR) modes– One single-writer-multiple-reader (SWMR) mode

Fine-Grain Locking: Enforce mutual exclusion• Support word-level

– write lock (exclusive lock)– read lock (shared lock)– recursive lock

SSB is capable of supporting more functionality

cpeg421-10-F/Topic-3-II-EARTH 48

Page 49: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Experimental Infrastructure

cpeg421-10-F/Topic-3-II-EARTH 49

IBM Cyclops-64 Chip Architecture• 160 thread units (500MHz)• Three-level explicit-addressable memory hierarchy • Efficient thread-level execution support• SSB for on-chip SRAM bank: 16-entry, 8-way associative

Cyclops-64 Micro KernelSimulation Testbed: FAST Simulator (Software) Ms. Clops Hardware Emulator

CCompiler

(GCC/Open64)

OpenMP Compiler

Binutils:

assembler

linkerLibraries:

OpenMP RTS

TiNy Threads Library/RTS

Std C/Math lib

Page 50: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

SSB Fine-Grain Sync. is Efficient

• For all the benchmarks, the SSB-based version shows significant performance improvement over the versions based on other synchronization mechanisms.

• For example, with up to 128 threads– Livermore loop 6 (linear recurrence): a 312%

improvement over the barrier based version– Ordered integer set (hash table): outperform the

software-based fine-grain methods by up to 84%

cpeg421-10-F/Topic-3-II-EARTH 50

Page 51: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 51

Outline• Overview• Fine-grain multithreading• Compiling for fine-grain multithreading• The power of fine-grain synchronization -

SSB• The percolation model and its applications• Summary

Page 52: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Research LayoutFuture Programming Models

cpeg421-10-F/Topic-3-II-EARTH 52

Advanced Execution / Programming Model

Percolation Location Consistency

Base Execution Model Fine Grain Multi

threading (e.g. EARTH, CARE)

Infrastructure & Tools•System Software•Simulation / Emulation•Analytical Modeling

HTMT like Architecture

Cellular Multithreaded Architecture(e.g. BG/c)

High End PIM Architecture

Page 53: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Percolation Model

cpeg421-10-F/Topic-3-II-EARTH 53

Hig

h Sp

eed

CPU

sSR

AM

PI

MD

RA

M

PIM

Primary Execution Engine

Prepare and percolate “parceled threads”

Perform intelligent memory operations

Global Memory Management

A User’s Perspective

Page 54: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

The Percolation Model

cpeg421-10-F/Topic-3-II-EARTH 54

• What is percolation?dynamic, adaptive computation/data movement, migration, transformation in-place or on-the fly to keep system resource usefully busy

• Features of percolation– both data and thread

may percolate– computation

reorganization and data layout reorganization

– asynchronous invocation

An Example of percolation—Cannon’s Algorithm

Level 0

Level 1

Level 2

Level 3

Level 0: fast cpu

Level 1 PIM

Level 2 PIM

Level 3

percolation

HTML-like Architectures

Cannon’s nearest neighbor data transferData layout reorganization during percolation

Page 55: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

Performance of SCCA2Kernel 4

cpeg421-10-F/Topic-3-II-EARTH 55

#threads C64 SMPs MTA2

4 2917082 5369740 752256

8 5513257 2141457 619357

16 9799661 915617 488894

32 17349325 362390 482681

• Reasonable scalability–Scale well with # threads–Linear speedup for #threads < 32

• Commodity SMPs has poor performance• Competitive vs. MTA-2

Metric:TEPS -- Traversed Edges per second

SMPs: 4-way Xeon dual-core, 2MB L2 Cache

Page 56: Guang R. Gao ACM Fellow and IEEE Fellow Endowed Distinguished Professor

cpeg421-10-F/Topic-3-II-EARTH 56

Outline• Overview• Fine-grain multithreading• Compiling for fine-grain multithreading• The power of fine-grain synchronization -

SSB• The percolation model and its applications• Summary