models and languages for parallel computation n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Models and Languages for Parallel Computation PowerPoint Presentation
Download Presentation
Models and Languages for Parallel Computation

Loading in 2 Seconds...

play fullscreen
1 / 17

Models and Languages for Parallel Computation - PowerPoint PPT Presentation


  • 97 Views
  • Uploaded on

Models and Languages for Parallel Computation. D. Skillicorn and D. Talia, ACM Computing Surveys, Vol. 30, No. 2, June 1998. Presented by Russell Zuck June 28, 2005. Overview. Motivation Difficulties of parallel programming Evaluation criteria Categories of parallel programming models

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Models and Languages for Parallel Computation' - illias


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
models and languages for parallel computation

Models and Languages for Parallel Computation

D. Skillicorn and D. Talia,

ACM Computing Surveys, Vol. 30, No. 2, June 1998

Presented by

Russell Zuck

June 28, 2005

overview
Overview
  • Motivation
  • Difficulties of parallel programming
  • Evaluation criteria
  • Categories of parallel programming models
  • Summary of trends in model development
  • A related perspective and observation
motivation
Motivation
  • What programming models are out there?
  • How well do they help solve some of the problems inherent with parallel programming?
  • How difficult are they to use?
  • What type of architecture is it used on?
difficulties of parallel programming
Difficulties of Parallel Programming
  • Many architectures
    • Most are special purpose
    • No standards
  • Many languages/tools
    • Optimizers don’t work well
    • Wide range of programming paradigms
  • Lack of skilled programmers
  • Parallel thinking
  • Lack of a substantial market
evaluation criteria
Evaluation Criteria
  • Easy to program
    • Decomposition
    • Mapping
    • Communication
    • Synchronization
  • Software Development Methodology
    • How do you determine correctness?
    • Sequential techniques of testing and debugging don’t extend well to parallel systems
      • Large state space to test due to extra degree of freedom
      • Testing limited to a couple of architectures
evaluation criteria1
Evaluation Criteria
  • Architecture independence
  • Easy to understand
    • Can a large number of people become proficient at it?
  • Guaranteed performance
    • How much will execution performance differ from one architecture to another?
  • Cost Measures
    • Execution time
    • Processor utilization
    • Development costs
parallel programming models
Parallel Programming Models
  • Differ in the degree of abstraction of concepts from the programmer
    • Parallelism
    • Decomposition
    • Mapping
    • Communication
    • Synchronization
  • The ideal model
    • The programmer is not required to be explicitly involved in any of the above operations
nothing explicit
Nothing Explicit
  • Complete abstraction from parallel operations
  • These exist only as “we are nearly there” types of languages
  • Examples
    • Optimizing compilers
    • Haskell: High order functional language
parallelism explicit
Parallelism Explicit
  • Techniques for identifying parallelism required
    • Library functions
    • Syntax extensions
  • Example
    • Fortran
decomposition explicit
Decomposition Explicit
  • Programmer must specify the division of the problem into parallelizable pieces
    • Library functions
  • Example
    • BSP (Bulk synchronous parallelism)
mapping explicit
Mapping Explicit
  • Programmer must specify the distribution of program pieces
  • Example
    • RPC
    • Paralf: An annotated functional language
communication explicit
Communication Explicit
  • Programmer responsible for interprocessor communication
  • Example
    • ABCL/1
everything explicit
Everything Explicit
  • Almost no abstraction from the programmer
  • Examples
    • Orca
    • PRAM
    • MPI
summary of trends
Summary of Trends
  • So which is the best compromise?
    • As with most things, the middle of the road seems to be the best
    • A model with a medium amount of programmer abstraction
  • Trends in model development
    • Work on models with little abstraction is diminishing
    • Concentration of effort on models with midrange abstraction. Conceal some aspects of parallelism while preserving expressiveness
    • Some hope still resides with highly abstract models…Don’t Hold Your Breath Too Long!!!
another perspective
Another Perspective
  • Speculation of the future
    • As parallel machines regain popularity, more manufactures will be willing to produce them
    • Eventually a handful of standard architectures will emerge to cover SIMD, MIMD (Shared Memory), and MIMD (Fixed Connection)
  • Alternate solution
    • Use a one or two development languages and develop virtual machines (middle-ware) for each type of architecture
    • Similar to the Java paradigm
slide17

Programming Language

VM1

VM2

VM3

MIMD (Shared)

MIMD (Fixed)

SIMD