0% found this document useful (0 votes)
6 views9 pages

Understanding Parallel Execution Models

The document discusses parallel execution models, including N-client N-server configurations and the classification of programming languages based on their execution models. It covers types and levels of parallelism, including available versus utilized parallelism, and different concurrent execution models such as multiprogramming and multi-threading. Additionally, it outlines Flynn's classification of parallel architectures and basic parallel techniques like pipelining and replication.

Uploaded by

Herlin L.T.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views9 pages

Understanding Parallel Execution Models

The document discusses parallel execution models, including N-client N-server configurations and the classification of programming languages based on their execution models. It covers types and levels of parallelism, including available versus utilized parallelism, and different concurrent execution models such as multiprogramming and multi-threading. Additionally, it outlines Flynn's classification of parallel architectures and basic parallel techniques like pipelining and replication.

Uploaded by

Herlin L.T.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Parallel execution

• N-client N-server model


• Synchronous or Asynchronous

Client Sever
Concurrent and parallel
programming languages
• Classification

Table 3.1 Classification of programming languages.

Languages 1_client N_client 1_client N_client


1-server 1-server N-server N-server
model mode model model
sequential + - - -

concurrent - + - -

Data-parallel - - + -

Parallel - + - +
3.2 Types and levels of parallelism
• 3.2.1 Available and utilized parallelism
 available: in program or in the problem solutions
 utilized: during execution
• 3.2.2 Types of available parallelism
 functional
 arises from the logic of a problem solution
 data
 arises from data structures
• Figure 3.11 Available and utilized levels of functional parallelism

Available levels Utilized levels

User (program) level User level


2
Procedure level Process level

Loop level Thread level 1

Instruction level
Instruction level

[Link] by architectures
[Link] by means of operating systems
3.2.4 Utilization of functional parallelism
• Available parallelism can be utilized by
 architecture,
 instruction-level parallel architectures
 compilers
 parallel optimizing compiler
 operating system
 multitasking
3.2.5 Concurrent execution models
• User level --- Multiprogramming, time sharing
• Process level --- Multitasking
• Thread level --- Multi-threading
3.3 Classification of parallel architectures
• 3.3.1 Flynn’s classification
 SISD
 SIMD
 MISD (Multiple Instruction Single Date)
 MIMD
Parallel
Parallel architectures //
architectures
PAs

Data-parallel architectures Function-parallel architectures

Instruction-level Thread-level Process-level


PAs
PAs PAs

DPs
ILPS MIMDs

Vector Associative SIMDs Systolic Pipelined VLIWs Superscalar Ditributed Shared


and neural architecture processors processors memory memory
architecture architecture MIMD (multi-
(multi-computer) Processors)

Part III Part II Part IV


3.4 Basic parallel technique
• 3.4.1 Pipelining (time)
 a number of functional units are employed in sequence
to perform a single computation
 a number of steps for each computation
• 3.4.2 Replication (space)
 a number of functional units perform multiply
computation simultaneously
 more processors
 more memory
 more I/O
 more computers

You might also like