Different Parallel Processing Architecture
Different Parallel Processing Architecture
1
content
Introduction to associative memory
processors
Multithreaded architectures–principles of
multithreading
• Latency hiding
• Scalable coherent multiprocessor model with
distributed shared memory
2
Introduction
• Computers are basically designed for execution of instructions, which are
stored as programs in the memory.
• These instructions are executed sequentially and hence are slow as the
next instruction can be executed only after the output of pervious
instruction has been obtained.
3
Introduction
• The parallelism in multiprocessor can be
mainly implemented on principle in three
ways:
4
Instruction-Level Parallelism (ILP)
• The potential of overlap among instructions is
called instruction-level parallelism (ILP) since
the instructions can be evaluated in parallel.
• Instruction level parallelism is obtained
primarily in two ways in uniprocessors:
through pipelining and through keeping
multiple functional units busy executing
multiple instructions at the same time.
5
Data Level Parallelism
• The simplest and most common way to
increase the amount of parallelism available
among instructions is to exploit parallelism
among iterations of a loop.
• This type of parallelism is often called loop-
level parallelism as an example of it is vector
processor.
6
Thread Level Parallelism
• These types of applications are often found on machines that have a high
workload, such as web servers.
• TLP is a popular ground for current research due to the rising popularity of
multi-core and multiprocessor systems, which allow for different threads to
truly execute in parallel.
7
Introduction to Associative Memory Processors
9
Associative memory processors
• All the PEs control under the CU and each PEs is essentially
associated with ALU having local memory.
• The CU has its own main memory for storage of programs and
the OS and user program executed under it.
• Scalar and control type instruction executed by CU where
vector instruction through PEs to achieve parallelism by
duplicated arithmetic unit.
• An associative processor is normally interfaced to a host
computer through control unit. The host computer is a
general purpose machine which servers as a coordinator of
the entire system, consisting of the associative processor and
also handle the resource management and peripheral and I/O
supervision. 10
Principles of Multithreading
• In the multithreaded execution model, a
program is a collection of partially ordered
threads, and a thread consists of a sequence of
instructions which are executed in the
conventional von Neumann model.
• Multithreading is the process of executing
multiple threads concurrently on a processor.
11
Principles of multithreading
• Multithreading demands that the processor be
designed to handle multiple contexts
simultaneously on a context switching basis
12
Multithreaded
computation model
• Let us consider the system where memories are distributed to form
global address space. The machine parameter on which machine is
analyzed are
a. The latency (L) :this include network delay, cache miss penalty, and
delay.
b. The number of thread: the number of thread that can be interleaved
in each processor. A thread is represented by a context consisting a
program counter, register set and required context status word.
c. The context switching overhead: this refer to cycle lost in
performing context switching in processor. This depends on the
switching mechanism and the amount of processor state devoted to
maintaining the active thread.
d. The interval between switches: this refer to cycle between switches
triggered by remote reference. 13
Multiple context processor
• Multithreaded systems are constructed with multiple
context processors.
• For example the Horizon & Tera the compiler
detects such data dependencies and the hardware
enforces it by switching to another context if
dependency is being detected.
• This is implemented by inserting into each instruction
a field which indicates its minimum number of
independent successors over all possible control flows.
14
Context switching policies.
• Switching from one thread to another is
performed according to one of the following
policies :
Switching on every instruction: the processor
switches from one thread to another every cycle.
Switching on block of instructions: blocks of
instructions from different threads are
interleaved.
15
Context switching policies.
Switching on every load: whenever a thread
encounters a load instruction, the processor
switches to another thread after that load
instruction is issued. The context switch is
irrespective of whether the data is local or
remote.
Switch on cache miss: This policy correspond
the case where a context is preempted when it
causes a cache miss.
16
Data flow computers
• Data flow machines is an alternative of designing a
computer that can store program systems. The aim
of designing parallel architecture is to get high
performing machines.
• The designing of new computer is based on
following three principles:
To achieve high performance
To match technological progress
To offer better programmability in application areas
17
Data flow computers
• Before we study in detail about these data flow computers lets
revise the drawbacks of processors based on pipeline architecture.
The major hazards are
Structural hazards
Data hazards due to
• true dependences which happens in case of WAR or
• false dependences also called name dependencies : anti and
output dependences (RAW or WAW)
Control hazards
If data dependency can be removed the performance of the system
will definitely improve.
18
Data flow computers
• Data flow computers are based on the
principle of data driven computation which is
very much different from the von Neumann
architecture which is basically based on the
control flow while where the data flow
architecture is designed on availability of data
• hence also called data driven computers
19
Types of flow computer
• As a designers perspective there are various possible
ways in which one can design a system depending on
the way we execute the instructions. Two possible
ways are-:
• Control flow computers : The next instruction is
executed when the last instruction as stored in the
program has been executed.
• Data flow computers An instruction executed when
the data (operands) required for executing that
instruction is available.
20
Data driven computing and languages
• In order to understand how Dataflow is different from Control-
Flow, lets see the working of von Neumann architecture which
is based on the control flow computing model.
• Here each program is sequence of instructions which are
stored in memory.
• These series of addressable instructions store the information
about the operation along with the information about the
memory locations that store the operand or in case of interrupt
or some function call it store the address of the location where
control has to transferred or in case of conditional transfer it
specifies the status bits to be checked and location where the
control has to transferred.
21
Data driven computing and languages
24
Data Flow Computer architecture
• The Pure dataflow computers are further
classified as the :
• static
• dynamic
25
Data Flow Computer architecture
• The basic principle of any Dataflow computer is data
driven and hence it executes a program by receiving,
processing and sending out token.
27
Data Flow Computer architecture
• The type of operation to be performed by the
instruction has to be fetched from the
instruction store which is stored as the tag
information. This information contains details
about-:
• what operation has to be performed on the
data
• how to transform the tags.
28
Data Flow Computer architecture
• There are variety of static, dynamic and also
hybrid dataflow computing models.
• In static model, there is possibility to place only
one token on the edge at the same time.
• When firing an actor, no token is allowed on the
output edge of an actor.
• Control tokens must be used to acknowledge the
proper timing in the transferring data token from
one node to another.
29
Data Flow Computer architecture
• Dynamic model of dataflow computer architecture
allows placing of more than one token on the edge
at the same time.
• To allow implementation of this feature of the
architecture, the concept of tagging of tokens was
used. Each token is tagged and the tag identifies
conceptual position of token in the token flow i.e.,
the label attached in each tag uniquely identify the
context in which particular token is used.
30
Data Flow Computer architecture
• Static and dynamic data flow architecture have a
pipelined ring structure with ring having four resource
sections
The memories used for storing the instruction
The processors unit that form the task force for parallel
execution of enabled instruction
The routing network is used to pass the result data
token to their destined instruction
The input output unit serves as an interface between
data flow computer and outside world.
31
Static Data Flow architecture
• Data flow graph used in the Dennis machine must follow
the static execution rule that only one token is allowed to
exist on any arc at any given time,
• otherwise successive sets of tokens cannot be
distinguished thus instead of FIFO design of string token at
arc is replace by simple design where the arc can hold at
most one data token.
• This is called static because here tokens are not labeled and
control token are used for acknowledgement purpose so
that proper timing in the transferring data tokens from
node to node can take place.
32
Static Data Flow architecture
• Here the complete program is loaded into memory before
execution begins.
• Same storage space is used for storing both the instructions
as well as data.
• In order to implement this, acknowledge arcs are implicitly
added to the dataflow graph that go in the opposite
direction to each existing arc and carry an acknowledgment
token
• Some example of static data flow computers are MIT Static
Dataflow, DDM1 UtahData Driven, LAU System, TI
Distributed Data Processor, NEC Image Pipelined Processor.
33
Dynamic Dataflow Architecture
• In Dynamic machine data tokens are tagged
( labeled or colored) to allow multiple tokens to
appear simultaneously on any input arc of an
operator.
• No control tokens are needed to acknowledge
the transfer of data tokens among the
instructions.
34
Dynamic Dataflow Architecture
• The tagging is achieve by attaching a label with each token
which uniquely identifies the context of that particular token.
• This dynamically tagged data flow model suggests that
maximum parallelism is exploited from the program graph.
• While this is the conceptual view of the tagged token model,
in reality only one copy of the graph is kept in memory and
tags are used to distinguish between tokens that belong to
each invocation.
• A general format for instruction has opcode, the number of
constants stored in instruction and number of destination for
the result token.
35
Dynamic Dataflow Architecture
• Each destination is identified by four fields namely the
destination address, the input port at the destination instruction,
number of token needed to enable the destination and the
assignment function used in selecting processing element for the
execution of destination instruction.
• The dynamic architecture has following characteristic different
from static architecture.
• Here Program nodes can be instantiated at run time unlike in
static architecture where it is loaded in the beginning.
• Also in dynamic architecture several instances of an data packet
are enabled and also separate storage space is used for
instructions and data
36
Dynamic Dataflow Architecture
• The dynamic architecture requires storage space for the
unmatched tokens.
• First in first out token queue for storing the tokens is not
suitable.
• A tag contains a unique subgraph invocation ID, as well as an
iteration ID if the subgraph is a loop.
• These pieces of information, taken together, are commonly
known as the color of the token
• However no acknowledgement mechanism is required. The
term “coloring” is used for the token labeling operations and
tokens with the same color belong together.
37
Dynamic Data Flow architecture
38
CONTD..
• In dynamic machines, data tokens are tagged (labeled
or colored) to allow multiple tokens to appear
simultaneously on any input are of an operator node.
• No control tokens are needed to acknowledge the
transfer of data tokens among instructions.
• Instead, the matching of token tags (labes or colors) is
performed to merge them for instructions requiring
more than one operand token.
• Therefore, additional hardware is needed to attach
tags onto data tokens and to perform tag matching
39
LATENCY HIDING
• Massively parallel and scalable systems may typically use
distributed shared memory.
• The access of remote memory significantly increases
memory latency. Furthermore, the processor speed has
been increasing at a much faster rate than memory speeds.
• Thus any scalable multiprocessor or large-scale
multicomputer must rely on the use of latency-reducing, -
tolerating, or —hiding mechanisms.
• Four latency-hiding mechanisms are studied below
enhancing scalability and programmability.
40
LATENCY HIDING
Latency hiding can be accomplished through four
complementary approaches:
i. using prefetching technique which bring instructions or data
close to the processor before they are actually needed;
ii. Using cached coherent supported by hardware to reduce
cache misses;
iii. using relaxed memory consistency models by allowing
buffering and pipelining of memory references; and –
iv. using multiple context support to allow a processor to
switch from one contest to another when a long-latency
operation is encountered.
41