SlideShare a Scribd company logo
Parallel Architecture
          &
Parallel Programming
     Submitted:
     Dr.Hesham El-Zouka


   By:Eng. Ismail Fathalla El-Gayar
Content:-
•   Introduction
     – Von-Neumann Architecture.
     – Serial ( Single ) Computational.
     – Concepts and Terminology
•   Parallel Architecture
     –   Definition
     –   Benefits & Advantages
     –   Distinguishing Parallel Processors
     –   Multiprocessor Architecture Classifications
     –   Parallel Computer Memory Architectures
•   Parallel Programming
     –   Definition
     –   Parallel Programming Model
     –   Designing Parallel Programs
     –   Parallel Algorithm Examples
     –   Conclusion
•   Case Study
Introduction:

• Von-Neumann Architecture
  Since then, virtually all computers
  have followed this basic design, which
  Comprised of four main components:
   –   Memory
   –   Control Unit
   –   Arithmetic Logic Unit
   –   Input/output
Introduction
Serial Computational :-
• Traditionally,
       software has been written for serial computation: To be run on
  a single computer having a single Central Processing Unit (CPU)

• Problem is broken into discrete SERIES of instructions.
• Instructions are EXECUTED one after another.
• One instruction may execute at any moment in TIME
Introduction
Serial Computational :-
Parallel Architecture
Definition:
• parallel computing: is the simultaneous use of
   multiple compute resources to solve a computational
   problem To be run using multiple CPUs.
In which:-
        - A problem is broken into discrete parts that can be
   solved concurrently
        - Each part is further broken down to a series of
   instructions
        - Instructions from each part execute simultaneously
   on different CPUs
Definition:
Concepts and Terminology:
General Terminology
• Task – A logically discrete section of
  computational work
• Parallel Task – Task that can be executed
  by multiple processors safely
• Communications – Data exchange
  between parallel tasks
• Synchronization – The coordination of
  parallel tasks in real time
Benefits & Advantages:


• Save Time & Money

• Solve Larger Problems
How To Distinguishing Parallel
processors:
  – Resource Allocation:
     • how large a collection?
     • how powerful are the elements?
     • how much memory?
  – Data access, Communication and Synchronization
     • how do the elements cooperate and communicate?
     • how are data transmitted between processors?
     • what are the abstractions and primitives for cooperation?
  – Performance and Scalability
     • how does it all translate into performance?
     • how does it scale?
Multiprocessor Architecture
Classification :
• Distinguishes multi-processor architecture by instruction and
  data:-

•   SISD – Single Instruction, Single Data



•   SIMD – Single Instruction, Multiple Data



•   MISD – Multiple Instruction, Single Data



•   MIMD – Multiple Instruction, Multiple Data
Flynn’s Classical Taxonomy:
            SISD
              • Serial
              • Only one instruction
                and data stream is
                acted on during any
                one clock cycle
Flynn’s Classical Taxonomy:
            SIMD
              • All processing units
                execute the same
                instruction at any
                given clock cycle.
              • Each processing unit
                operates on a
                different data
                element.
Flynn’s Classical Taxonomy:
            MISD
              • Different instructions
                operated on a single
                data element.
              • Very few practical uses
                for this type of
                classification.
              • Example: Multiple
                cryptography algorithms
                attempting to crack a
                single coded message.
Flynn’s Classical Taxonomy:
           MIMD
              • Can execute different
                instructions on
                different data
                elements.
              • Most common type of
                parallel computer.
Parallel Computer Memory Architectures:
Shared Memory Architecture


• All processors access
  all memory as a
  single global address
  space.
• Data sharing is fast.
• Lack of scalability
  between memory and
  CPUs
Parallel Computer Memory Architectures:
Distributed Memory

• Each processor has
  its own memory.
• Is scalable, no
  overhead for cache
  coherency.
• Programmer is
  responsible for many
  details of
  communication
  between processors.
Parallel Programming
Parallel Programming Models

• Exist as an abstraction above hardware and
  memory architectures

• Examples:
  – Shared Memory

  – Threads

  – Messaging Passing

  – Data Parallel
Parallel Programming Models:
Shared Memory Model
• Appears to the user as a single shared memory,
  despite hardware implementations

• Locks and semaphores may be used to control
  shared memory access.

• Program development can be simplified since there
  is no need to explicitly specify communication
  between tasks.
Parallel Programming Models:
Threads Model
• A single process may have
  multiple, concurrent
  execution paths.
• Typically used with a shared
  memory architecture.
• Programmer is responsible
  for determining all
  parallelism.
Parallel Programming Models:
Message Passing Model
• Tasks exchange data by sending
  and receiving messages. Typically
  used with distributed memory
  architectures.
• Data transfer requires cooperative
  operations to be performed by each
  process. Ex.- a send operation
  must have a receive operation.
• MPI (Message Passing Interface) is
  the interface standard for message
  passing.
Parallel Programming Models:
Data Parallel Model
• Tasks performing the
  same operations on a set
  of data. Each task
  working on a separate
  piece of the set.
• Works well with either
  shared memory or
  distributed memory
  architectures.
Designing Parallel Programs:
Automatic Parallelization
• Automatic
  – Compiler analyzes code and identifies
    opportunities for parallelism
  – Analysis includes attempting to compute
    whether or not the parallelism actually
    improves performance.
  – Loops are the most frequent target for
    automatic parallelism.
Designing Parallel Programs:
Manual Parallelization
• Understand the problem
  – A Parallelizable Problem:
    • Calculate the potential energy for each of several
      thousand independent conformations of a
      molecule. When done find the minimum energy
      conformation.
  – A Non-Parallelizable Problem:
    • The Fibonacci Series
       – All calculations are dependent
Designing Parallel Programs:
Domain Decomposition
   Each task handles a portion of the data set. •
Designing Parallel Programs:
Functional Decomposition
Each task performs a function of the overall work •
Conclusion
• Parallel computing is fast.
• There are many different approaches and
  models of parallel computing.
• Parallel computing is the future of
  computing.
References
• A Library of Parallel Algorithms, www-
  2.cs.cmu.edu/~scandal/nesl/algorithms.html

• Internet Parallel Computing Archive, wotug.ukc.ac.uk/parallel

• Introduction to Parallel Computing,
  www.llnl.gov/computing/tutorials/parallel_comp/#Whatis

• Parallel Programming in C with MPI and OpenMP, Michael J. Quinn,
  McGraw Hill Higher Education, 2003

• The New Turing Omnibus, A. K. Dewdney, Henry Holt and
  Company, 1993
Case Study

  Developing Parallel Applications
            On the Web
               using
Java mobile agents and Java threads
My References :

• Parallel Computing Using JAVA Mobile
  Agents
    By: Panayiotou Christoforos, George Samaras ,Evaggelia
    Pitoura, Paraskevas Evripidou

• An Environment for Parallel Computing
  on Internet Using JAVA

    By:P C Saxena, S Singh, K S Kahlon
Parallel architecture &programming

More Related Content

PPTX
Loop optimization
PPT
Introduction to System Calls
PPTX
Introduction to Parallel and Distributed Computing
PPT
Inter-Process communication in Operating System.ppt
PPTX
Introduction to distributed database
PPT
Unix.system.calls
PDF
Introduction to OpenCL
Loop optimization
Introduction to System Calls
Introduction to Parallel and Distributed Computing
Inter-Process communication in Operating System.ppt
Introduction to distributed database
Unix.system.calls
Introduction to OpenCL

What's hot (20)

PPTX
Access to non local names
PDF
Centralized shared memory architectures
PPTX
PDF
management of distributed transactions
PDF
Linux-Internals-and-Networking
PPTX
Multicore and shared multi processor
PPT
Congetion Control.pptx
DOCX
Parallel computing persentation
PPTX
Peephole optimization techniques in compiler design
PPT
PPT
Hardware and Software parallelism
PPT
Chapter 10 - File System Interface
PPT
heap sort in the design anad analysis of algorithms
PPT
Instruction Set Architecture (ISA)
PPTX
file system in operating system
PPTX
Multiprocessor system
PPT
Linux command ppt
PPTX
X86 Architecture
PDF
Lecture 4 principles of parallel algorithm design updated
Access to non local names
Centralized shared memory architectures
management of distributed transactions
Linux-Internals-and-Networking
Multicore and shared multi processor
Congetion Control.pptx
Parallel computing persentation
Peephole optimization techniques in compiler design
Hardware and Software parallelism
Chapter 10 - File System Interface
heap sort in the design anad analysis of algorithms
Instruction Set Architecture (ISA)
file system in operating system
Multiprocessor system
Linux command ppt
X86 Architecture
Lecture 4 principles of parallel algorithm design updated
Ad

Viewers also liked (15)

PPTX
Parallel Computing Application
PPT
Parallel Computing
PPTX
Parallel computing
PPTX
Extreme programming (xp) | David Tzemach
PPT
Parallel Computing
PPTX
Applications of paralleL processing
PPT
Parallel processing Concepts
PPTX
Introduction to parallel processing
PPT
Mobile computing
PPTX
Extreme programming (xp)
PPT
Parallel computing
PPTX
Parallel Algorithms Advantages and Disadvantages
PPTX
Introduction To Mobile Computing
PPTX
Eye gaze communication
PPT
Mobile Computing
Parallel Computing Application
Parallel Computing
Parallel computing
Extreme programming (xp) | David Tzemach
Parallel Computing
Applications of paralleL processing
Parallel processing Concepts
Introduction to parallel processing
Mobile computing
Extreme programming (xp)
Parallel computing
Parallel Algorithms Advantages and Disadvantages
Introduction To Mobile Computing
Eye gaze communication
Mobile Computing
Ad

Similar to Parallel architecture &programming (20)

PPT
Lecture 2
PPTX
CSA unit5.pptx
PDF
Week # 1.pdf
PDF
Computer Architecture CSN221_Lec_37_SpecialTopics.pdf
PPTX
PPTX
PPTX
High performance computing
PPTX
Lec 2 (parallel design and programming)
PPTX
VTU 6th Sem Elective CSE - Module 3 cloud computing
PPTX
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
PDF
5_Parallel & Distributed , Computing.pdf
PDF
Unit 5 Advanced Computer Architecture
PPTX
CA UNIT IV.pptx
PDF
Lecture 1 introduction to parallel and distributed computing
PDF
archintro.pdf
PPTX
Parallel Programming
PPTX
Chapter04-OS.pptx........................
PPTX
parellelisum edited_jsdnsfnjdnjfnjdn.pptx
PPTX
Parallel Processors (SIMD)
PPTX
Parallel Processors (SIMD)
Lecture 2
CSA unit5.pptx
Week # 1.pdf
Computer Architecture CSN221_Lec_37_SpecialTopics.pdf
High performance computing
Lec 2 (parallel design and programming)
VTU 6th Sem Elective CSE - Module 3 cloud computing
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
5_Parallel & Distributed , Computing.pdf
Unit 5 Advanced Computer Architecture
CA UNIT IV.pptx
Lecture 1 introduction to parallel and distributed computing
archintro.pdf
Parallel Programming
Chapter04-OS.pptx........................
parellelisum edited_jsdnsfnjdnjfnjdn.pptx
Parallel Processors (SIMD)
Parallel Processors (SIMD)

More from Ismail El Gayar (7)

PPS
Neural Networks
PDF
Why computer engineering
PPTX
What is ETL?
PPTX
Geographic Information System for Egyptian Railway System(GIS)
PDF
System science documentation
PPTX
Prolog & lisp
PPTX
Object oriented methodology & unified modeling language
Neural Networks
Why computer engineering
What is ETL?
Geographic Information System for Egyptian Railway System(GIS)
System science documentation
Prolog & lisp
Object oriented methodology & unified modeling language

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Big Data Technologies - Introduction.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Encapsulation theory and applications.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Network Security Unit 5.pdf for BCA BBA.
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Electronic commerce courselecture one. Pdf
NewMind AI Weekly Chronicles - August'25 Week I
Encapsulation_ Review paper, used for researhc scholars
Big Data Technologies - Introduction.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Encapsulation theory and applications.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Empathic Computing: Creating Shared Understanding
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Spectroscopy.pptx food analysis technology
Network Security Unit 5.pdf for BCA BBA.
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
Programs and apps: productivity, graphics, security and other tools
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Electronic commerce courselecture one. Pdf

Parallel architecture &programming

  • 1. Parallel Architecture & Parallel Programming Submitted: Dr.Hesham El-Zouka By:Eng. Ismail Fathalla El-Gayar
  • 2. Content:- • Introduction – Von-Neumann Architecture. – Serial ( Single ) Computational. – Concepts and Terminology • Parallel Architecture – Definition – Benefits & Advantages – Distinguishing Parallel Processors – Multiprocessor Architecture Classifications – Parallel Computer Memory Architectures • Parallel Programming – Definition – Parallel Programming Model – Designing Parallel Programs – Parallel Algorithm Examples – Conclusion • Case Study
  • 3. Introduction: • Von-Neumann Architecture Since then, virtually all computers have followed this basic design, which Comprised of four main components: – Memory – Control Unit – Arithmetic Logic Unit – Input/output
  • 4. Introduction Serial Computational :- • Traditionally, software has been written for serial computation: To be run on a single computer having a single Central Processing Unit (CPU) • Problem is broken into discrete SERIES of instructions. • Instructions are EXECUTED one after another. • One instruction may execute at any moment in TIME
  • 7. Definition: • parallel computing: is the simultaneous use of multiple compute resources to solve a computational problem To be run using multiple CPUs. In which:- - A problem is broken into discrete parts that can be solved concurrently - Each part is further broken down to a series of instructions - Instructions from each part execute simultaneously on different CPUs
  • 9. Concepts and Terminology: General Terminology • Task – A logically discrete section of computational work • Parallel Task – Task that can be executed by multiple processors safely • Communications – Data exchange between parallel tasks • Synchronization – The coordination of parallel tasks in real time
  • 10. Benefits & Advantages: • Save Time & Money • Solve Larger Problems
  • 11. How To Distinguishing Parallel processors: – Resource Allocation: • how large a collection? • how powerful are the elements? • how much memory? – Data access, Communication and Synchronization • how do the elements cooperate and communicate? • how are data transmitted between processors? • what are the abstractions and primitives for cooperation? – Performance and Scalability • how does it all translate into performance? • how does it scale?
  • 12. Multiprocessor Architecture Classification : • Distinguishes multi-processor architecture by instruction and data:- • SISD – Single Instruction, Single Data • SIMD – Single Instruction, Multiple Data • MISD – Multiple Instruction, Single Data • MIMD – Multiple Instruction, Multiple Data
  • 13. Flynn’s Classical Taxonomy: SISD • Serial • Only one instruction and data stream is acted on during any one clock cycle
  • 14. Flynn’s Classical Taxonomy: SIMD • All processing units execute the same instruction at any given clock cycle. • Each processing unit operates on a different data element.
  • 15. Flynn’s Classical Taxonomy: MISD • Different instructions operated on a single data element. • Very few practical uses for this type of classification. • Example: Multiple cryptography algorithms attempting to crack a single coded message.
  • 16. Flynn’s Classical Taxonomy: MIMD • Can execute different instructions on different data elements. • Most common type of parallel computer.
  • 17. Parallel Computer Memory Architectures: Shared Memory Architecture • All processors access all memory as a single global address space. • Data sharing is fast. • Lack of scalability between memory and CPUs
  • 18. Parallel Computer Memory Architectures: Distributed Memory • Each processor has its own memory. • Is scalable, no overhead for cache coherency. • Programmer is responsible for many details of communication between processors.
  • 20. Parallel Programming Models • Exist as an abstraction above hardware and memory architectures • Examples: – Shared Memory – Threads – Messaging Passing – Data Parallel
  • 21. Parallel Programming Models: Shared Memory Model • Appears to the user as a single shared memory, despite hardware implementations • Locks and semaphores may be used to control shared memory access. • Program development can be simplified since there is no need to explicitly specify communication between tasks.
  • 22. Parallel Programming Models: Threads Model • A single process may have multiple, concurrent execution paths. • Typically used with a shared memory architecture. • Programmer is responsible for determining all parallelism.
  • 23. Parallel Programming Models: Message Passing Model • Tasks exchange data by sending and receiving messages. Typically used with distributed memory architectures. • Data transfer requires cooperative operations to be performed by each process. Ex.- a send operation must have a receive operation. • MPI (Message Passing Interface) is the interface standard for message passing.
  • 24. Parallel Programming Models: Data Parallel Model • Tasks performing the same operations on a set of data. Each task working on a separate piece of the set. • Works well with either shared memory or distributed memory architectures.
  • 25. Designing Parallel Programs: Automatic Parallelization • Automatic – Compiler analyzes code and identifies opportunities for parallelism – Analysis includes attempting to compute whether or not the parallelism actually improves performance. – Loops are the most frequent target for automatic parallelism.
  • 26. Designing Parallel Programs: Manual Parallelization • Understand the problem – A Parallelizable Problem: • Calculate the potential energy for each of several thousand independent conformations of a molecule. When done find the minimum energy conformation. – A Non-Parallelizable Problem: • The Fibonacci Series – All calculations are dependent
  • 27. Designing Parallel Programs: Domain Decomposition Each task handles a portion of the data set. •
  • 28. Designing Parallel Programs: Functional Decomposition Each task performs a function of the overall work •
  • 29. Conclusion • Parallel computing is fast. • There are many different approaches and models of parallel computing. • Parallel computing is the future of computing.
  • 30. References • A Library of Parallel Algorithms, www- 2.cs.cmu.edu/~scandal/nesl/algorithms.html • Internet Parallel Computing Archive, wotug.ukc.ac.uk/parallel • Introduction to Parallel Computing, www.llnl.gov/computing/tutorials/parallel_comp/#Whatis • Parallel Programming in C with MPI and OpenMP, Michael J. Quinn, McGraw Hill Higher Education, 2003 • The New Turing Omnibus, A. K. Dewdney, Henry Holt and Company, 1993
  • 31. Case Study Developing Parallel Applications On the Web using Java mobile agents and Java threads
  • 32. My References : • Parallel Computing Using JAVA Mobile Agents By: Panayiotou Christoforos, George Samaras ,Evaggelia Pitoura, Paraskevas Evripidou • An Environment for Parallel Computing on Internet Using JAVA By:P C Saxena, S Singh, K S Kahlon