1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can...

12
1 Interconnectio n Networks

Transcript of 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can...

Page 1: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

1

Interconnection

Networks

Page 2: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

2

Interconnection Networks

Interconnection Network (for SIMD/MIMD) can be used for internal connections among:

Processors, Memory Modules, I/O Disk Arrays

Topologies of INs can be either:1. Static networks (i.e., Mesh, Hypercube, ...) are formed of

point-to-point direct connections, which will not change during program execution

2. Dynamic networks (i.e., Bus, Multistage, ...) are implemented with switched channels, which are dynamically configured to match communication demand in user program

Page 3: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

3

Static Interconnects

Static networks use direct links which are fixed once built.

Suitable for building computers where communication patterns are predictable or implementable with static connections.

Example Interconnects: Linear array, Ring Mesh, Torus Hypercubes, ...

Page 4: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

4

Static Interconnects

Linear Array (1D Array)

. . .0 1 2 3 N-2 N-1

Nodes = N

Routing Function - “Self routing”Is a communication process

i j(S) (D)

Node i compare its ID with dest. ID

if dest.ID >, send if dest ID <, send

where every intermediate nodeknows where to send incoming message to destination

Page 5: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

5

Static Interconnects

Linear Array (cont.)is 1-D network in which N nodes are connected by N-1 links in a line

0 1 2 3

15 14 13 12

7 6 5 4

8 9 10 11

0 12

3

4

5

6789

10

11

12

13

14

15

Ring is obtained by connecting two terminal nodes of linear array with one extra link

Page 6: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

6

Static Interconnects

Mesh (2D Array)Node N = m x nDiameter = m-1+n-1Degree = 2 (corner nodes)

3 (side nodes)

Routing Function “Row-wise routing”Source compares row first (its row & Dest’s row)

if Dest row <, send

4 (middle nodes)

if Dest row >, send

It then compares columns (its col & Dest’s col) if Dest col >, send if Dest col <, send

0 1 2 m-2 m-1

. . .

. . .

. . .

0

1

n-1

. . .

Page 7: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

7

Static Interconnects

Mesh (cont.)

k-D Mesh with N = nk nodes

k = 2, n = 3

Torus (a variation of mesh) has

a ring connection along each row & each col

k = 2, n = 3

Page 8: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

8

Static Interconnects

Hypercube (Binary k-cubes)k-cube is special case of k-D array (2 nodes/D)Every node is labeled k bits (xk-1xk-2...x1x0)

Node N = 2k

Diameter = kDegree = k

Communication Rule

0 1

2-cube

0 1

1 1

0 0

3-cube

0 1

0 1

1 1

0 0

0 1

0 1

1 1

0 0

1 1

0 0

1 1

0 0

(xk-1xk-2...x1x0)

(yk-1yk-2...y1y0)2 nodes are adjacent if they differ in exactly 1 bit

n-cube can be formed by interconnecting corresponding nodes of two (n-1)-cubes

0 1

1-cube

Page 9: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

9

Static Interconnects

Hypercube (cont.)Point-to-point Routing

compare IDs of S & D, if S > Dlook at left most bit

0 1

0 1

1 1

0 0

0 1

0 1

1 1

0 0

1 1

0 0

1 1

0 0

S

DS 101 D 000

Broadcasting (suppose from 0)Step 1 0 1

Step 2 0 2 1 3

Step 3 0 4 1 5 2 6 3 7

2 3

0 1

6 7

4 5

S

Page 10: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

10

Static Interconnects

3-D Hypercube Routing Network

Routing by least significant bit (C0)

000 001 010 011 100 101 110 111000 001

010 011

100 101

110 111

000 001

010 011

100 101

110 111

Routing by middle bit (C1)

000 001 010 011 100 101 110 111

Page 11: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

11

Static Interconnects

Hypercube Routing Network (cont.)

000 001

010 011

100 101

110 111

Routing by most significant bit (C2)

000 001 010 011 100 101 110 111

In general, n-D hypercube has n fns.,Routing by least significant bit (C0)

Routing by middle bits (C1, C2, ..., Cn-2)

Routing by most significant bit (Cn-1)

Page 12: 1 Interconnection Networks. 2 Interconnection Networks Interconnection Network (for SIMD/MIMD) can be used for internal connections among: Processors,

12

Dynamic Interconnects

For general-purpose applications, we need to use dynamic connections(which can implement all communication patterns based on program demands)

Dynamic INs includeDigital Buses Multistage INs

Omega, Flip, BaselineCrossbar switch networksButterfly networks

Low cost

High cost