Explicitly Parallel Platforms
Explicitly Parallel Platforms
• In a linear array, each node has two neighbors, one to its left and one
to its right. If the nodes at either end are connected, we refer to it as
a 1-D torus or a ring.
• A generalization to 2 dimensions has nodes with 4 neighbors, to the
north, south, east, and west.
• A further generalization to d dimensions has nodes with 2d neighbors.
• A special case of a d-dimensional mesh is a hypercube. Here, d = log
p, where p is the total number of nodes.
Network Topologies: Linear Arrays
Complete binary tree networks: (a) a static tree network; and (b)
a dynamic tree network.
Network Topologies: Tree Properties
• The distance between any two nodes is no more than 2logp.
• Links higher up the tree potentially carry more traffic than those at
the lower levels.
• For this reason, a variant called a fat-tree, fattens the links as we go
up the tree.
• Trees can be laid out in 2D with no wire crossings. This is an attractive
property of trees.
Network Topologies: Fat Trees
Completely-connected
Star
Linear array
Hypercube
Crossbar
Omega Network
Dynamic Tree
Cache Coherence
in Multiprocessor Systems
• Interconnects provide basic mechanisms for data transfer.
• In the case of shared address space machines, additional hardware is
required to coordinate access to data that might have multiple copies
in the network.
• The underlying technique must provide some guarantees on the
semantics.
• This guarantee is generally one of serializability, i.e., there exists some
serial order of instruction execution that corresponds to the parallel
schedule.
Cache Coherence
in Multiprocessor Systems
When the value of a variable is changes, all its
copies must either be invalidated or updated.
0
Embedding a Linear Array
into a Hypercube
The function G is called the binary reflected Gray code (RGC).
Since adjoining entries (G(i, d) and G(i + 1, d)) differ from each
other at only one bit position, corresponding processors are mapped
to neighbors in a hypercube. Therefore, the congestion, dilation, and
expansion of the mapping are all 1.
Embedding a Linear Array
into a Hypercube: Example
(a) A three-bit reflected Gray code ring; and (b) its embedding into
a three-dimensional hypercube.
Embedding a Mesh
into a Hypercube
• A 2r × 2s wraparound mesh can be mapped to a 2r+s-node hypercube
by mapping node (i, j) of the mesh onto node G(i, r− 1) || G(j, s − 1) of
the hypercube (where || denotes concatenation of the two Gray
codes).
Embedding a Mesh into a Hypercube
(a) Embedding a 16 node linear array into a 2-D mesh; and (b) the
inverse of the mapping. Solid lines correspond to links in the linear
array and normal lines to links in the mesh.
Embedding a Hypercube into a 2-D Mesh
• Each node subcube of the hypercube is mapped
to a node row of the mesh.
• This is done by inverting the linear-array to
hypercube mapping.
• This can be shown to be an optimal mapping.
Embedding a Hypercube into a 2-D Mesh:
Example