SlideShare a Scribd company logo
1 of 86
Principles of Parallel Algorithm Design Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar To accompany the text “Introduction to Parallel Computing”, Addison Wesley, 2003.
Chapter Overview: Algorithms and Concurrency  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter Overview: Concurrency and Mapping ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Preliminaries: Decomposition, Tasks, and  Dependency Graphs ,[object Object],[object Object],[object Object],[object Object]
Example: Multiplying a Dense Matrix with a Vector Computation of each element of output vector  y  is independent of other elements. Based on this, a dense matrix-vector product can be decomposed into  n  tasks. The figure highlights the portion of the matrix and vector accessed by Task 1.  Observations:  While tasks share data (namely, the vector  b  ), they do not have any control dependencies - i.e., no task needs to wait for the (partial) completion of any other. All tasks are of the same size in terms of number of operations.  Is this the maximum number of tasks we could decompose this problem into?
Example: Database Query Processing  ,[object Object],[object Object],[object Object],[object Object],$18,000  WA  Red  2002  Civic  7352  $17,000  CA  Red  2001  Civic  4395  $18,000  VT  Green  2000  Accord  8354  $22,000  NY  Blue  2001  Maxima  3845  $19,000  FL  Green  2001  Altima  5342  $17,000  OR  White  2001  Civic  6734  $18,000  CA  Green  2001  Prius  9834  $21,000  NY  Green  2001  Camry  7623  $15,000  IL  White  1999  Corolla  3476  $18,000  MN  Blue  2002  Civic  4523  Price  Dealer  Color  Year  Model  ID#
Example: Database Query Processing ,[object Object],[object Object],[object Object],Decomposing the given query into a number of tasks. Edges in this graph denote that the output of one task is needed to accomplish the next.
Example: Database Query Processing  ,[object Object],[object Object],An alternate decomposition of the given problem into subtasks, along with their data dependencies. Different task decompositions may lead to significant differences with respect to their eventual parallel performance.
Granularity of Task Decompositions  ,[object Object],[object Object],A coarse grained counterpart to the dense matrix-vector product example. Each task in this example corresponds to the computation of three elements of the result vector.
Degree of Concurrency  ,[object Object],[object Object],[object Object],[object Object]
Critical Path Length  ,[object Object],[object Object],[object Object]
Critical Path Length  ,[object Object],[object Object],What are the critical path lengths for the two task dependency graphs? If each task takes 10 time units, what is the shortest parallel execution time for each decomposition? How many processors are needed in each case to achieve this minimum parallel execution time? What is the maximum degree of concurrency?
Limits on Parallel Performance  ,[object Object],[object Object],[object Object]
Task Interaction Graphs  ,[object Object],[object Object],[object Object]
Task Interaction Graphs: An Example  ,[object Object],[object Object],[object Object],[object Object]
Task Interaction Graphs, Granularity, and Communication  ,[object Object],[object Object],[object Object],[object Object]
Processes and Mapping  ,[object Object],[object Object],[object Object]
Processes and Mapping  ,[object Object],[object Object],[object Object],[object Object]
Processes and Mapping  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Processes and Mapping: Example  ,[object Object]
Decomposition Techniques  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recursive Decomposition  ,[object Object],[object Object],[object Object]
Recursive Decomposition: Example  ,[object Object],[object Object],[object Object]
Recursive Decomposition: Example  ,[object Object],[object Object],1.  procedure   SERIAL_MIN ( A, n ) 2.  begin 3.  min  =  A [0] ; 4.  for   i   := 1  to   n  −  1  do 5.  if   ( A [ i ]  <  min )  min  :=  A [ i ] ; 6.  endfor ; 7.  return   min ; 8.  end   SERIAL_MIN
Recursive Decomposition: Example ,[object Object],1.  procedure  RECURSIVE_MIN ( A, n )  2.  begin   3.  if  (  n  =   1 )  then   4.  min  :=  A  [0]  ;  5.  else   6.  lmin  := RECURSIVE_MIN (  A ,  n/2  );  7.  rmin  := RECURSIVE_MIN (  &( A [ n/2 ]),  n - n/2   );  8.  if  ( lmin   <  rmin )  then   9.  min  :=  lmin ;  10.  else   11.  min  :=  rmin ;  12.  endelse ;  13.  endelse ;  14.  return   min ;  15.  end  RECURSIVE_MIN
Recursive Decomposition: Example ,[object Object]
Data Decomposition  ,[object Object],[object Object],[object Object],[object Object]
Data Decomposition: Output Data Decomposition  ,[object Object],[object Object]
Output Data Decomposition: Example  ,[object Object],Task 1:   Task 2: Task 3: Task 4:
Output Data Decomposition: Example  ,[object Object],Task 1:  C 1,1   =   A 1,1  B 1,1   Task 2:  C 1,1   =   C 1,1   +   A 1,2  B 2,1   Task 3:  C 1,2   =   A 1,2  B 2,2   Task 4:  C 1,2   =   C 1,2   +   A 1,1  B 1,2   Task 5:  C 2,1   =   A 2,2  B 2,1   Task 6:  C 2,1   =   C 2,1   +   A 2,1  B 1,1   Task 7:  C 2,2   =   A 2,1  B 1,2   Task 8:  C 2,2   =   C 2,2   +   A 2,2  B 2,2   Task 1:  C 1,1   =   A 1,1  B 1,1   Task 2:  C 1,1   =   C 1,1   +   A 1,2  B 2,1   Task 3:  C 1,2   =   A 1,1  B 1,2   Task 4:  C 1,2   =   C 1,2   +   A 1,2  B 2,2   Task 5:  C 2,1   =   A 2,1  B 1,1   Task 6:  C 2,1   =   C 2,1   +   A 2,2  B 2,1   Task 7:  C 2,2   =   A 2,1  B 1,2   Task 8:  C 2,2   =   C 2,2   +   A 2,2  B 2,2   Decomposition II Decomposition I
Output Data Decomposition: Example  ,[object Object]
Output Data Decomposition: Example  ,[object Object],[object Object],[object Object]
Input Data Partitioning  ,[object Object],[object Object],[object Object]
Input Data Partitioning: Example  ,[object Object]
Partitioning Input  and  Output Data  ,[object Object]
Intermediate Data Partitioning  ,[object Object],[object Object]
Intermediate Data Partitioning: Example  ,[object Object]
Intermediate Data Partitioning: Example  ,[object Object],[object Object],Stage II Task 12:  C 2,,2  =  D 1,2,2  +  D 2,2,2 Task 11:  C 2,1  =  D 1,2,1  +  D 2,2,1 Task 10:  C 1,2   =  D 1,1,2  +  D 2,1,2 Task 09:  C 1,1  =  D 1,1,1  +  D 2,1,1 Task 08:  D 2,2,2 =  A 2,2  B 2,2 Task 07:  D 1,2,2 =  A 2,1  B 1,2 Task 06:  D 2,2,1 =  A 2,2  B 2,1 Task 05:  D 1,2,1 =  A 2,1  B 1,1 Task 04:  D 2,1,2 =  A 1,2  B 2,2 Task 03:  D 1,1,2 =  A 1,1  B 1,2 Task 02:  D 2,1,1 =  A 1,2  B 2,1 Task 01:  D 1,1,1 =  A 1,1  B 1,1
Intermediate Data Partitioning: Example  ,[object Object]
The Owner Computes Rule  ,[object Object],[object Object],[object Object]
Exploratory Decomposition  ,[object Object],[object Object],[object Object]
Exploratory Decomposition: Example  ,[object Object],Of-course, the problem of computing the solution, in general, is much more difficult than in this simple example.
Exploratory Decomposition: Example  ,[object Object]
Exploratory Decomposition: Anomalous Computations  ,[object Object],[object Object]
Speculative Decomposition  ,[object Object],[object Object],[object Object],[object Object]
Speculative Decomposition: Example  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Speculative Decomposition: Example  ,[object Object]
Hybrid Decompositions  ,[object Object],[object Object],[object Object],[object Object]
Characteristics of Tasks  ,[object Object],[object Object],[object Object],[object Object]
Task Generation  ,[object Object],[object Object]
Task Sizes  ,[object Object],[object Object],[object Object]
Size of Data Associated with Tasks  ,[object Object],[object Object],[object Object]
Characteristics of Task Interactions  ,[object Object],[object Object],[object Object]
Characteristics of Task Interactions  ,[object Object],[object Object]
Characteristics of Task Interactions: Example  A simple example of a regular static interaction pattern is in image dithering. The underlying communication pattern is a structured (2-D mesh) one as shown here:
Characteristics of Task Interactions: Example  The multiplication of a sparse matrix with a vector is a good example of a static irregular interaction pattern. Here is an example of a sparse matrix and its associated interaction pattern.
Characteristics of Task Interactions  ,[object Object],[object Object],[object Object],[object Object]
Characteristics of Task Interactions  ,[object Object],[object Object],[object Object],[object Object]
Mapping Techniques  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Mapping Techniques for Minimum Idling  Mapping must simultaneously minimize idling and load balance. Merely balancing load does not minimize idling.
Mapping Techniques for Minimum Idling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Schemes for Static Mapping  ,[object Object],[object Object],[object Object]
Mappings Based on Data Partitioning  We can combine data partitioning with the ``owner-computes'' rule to partition the computation into subtasks. The simplest data decomposition schemes for dense matrices are 1-D block distribution schemes.
Block Array Distribution Schemes  ,[object Object]
Block Array Distribution Schemes: Examples  ,[object Object],[object Object],[object Object],[object Object]
Data Sharing in Dense Matrix Multiplication
Cyclic and Block Cyclic Distributions  ,[object Object],[object Object]
LU Factorization of a Dense Matrix  A decomposition of LU factorization into 14 tasks - notice the  significant load imbalance.  11: 12: 13: 14: 6: 7: 8: 9: 10: 1: 2: 3: 4: 5:
Block Cyclic Distributions  ,[object Object],[object Object],[object Object]
Block-Cyclic Distribution for Gaussian Elimination  The active part of the matrix in Gaussian Elimination changes. By assigning blocks in a block-cyclic fashion, each processor receives blocks from different parts of the matrix.
Block-Cyclic Distribution: Examples  One- and two-dimensional block-cyclic distributions among 4 processes.
Block-Cyclic Distribution  ,[object Object],[object Object]
Graph Partitioning Dased Data Decomposition  ,[object Object],[object Object],[object Object],[object Object]
Partitioning the Graph of Lake Superior  Random Partitioning Partitioning for minimum edge-cut.
Mappings Based on Task Paritioning  ,[object Object],[object Object],[object Object]
Task Paritioning: Mapping a Binary Tree Dependency Graph Example illustrates the dependency graph of one view of quick-sort and how it can be assigned to processes in a hypercube.
Task Paritioning: Mapping a Sparse Graph  Sparse graph for computing a sparse matrix-vector product and its mapping.
Hierarchical Mappings  ,[object Object],[object Object],[object Object]
An example of task partitioning at top level with data partitioning at the lower level.
Schemes for Dynamic Mapping  ,[object Object],[object Object]
Centralized Dynamic Mapping  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Distributed Dynamic Mapping  ,[object Object],[object Object],[object Object],[object Object]
Minimizing Interaction Overheads  ,[object Object],[object Object],[object Object],[object Object]
Minimizing Interaction Overheads (continued)  ,[object Object],[object Object],[object Object],[object Object]
Parallel Algorithm Models  ,[object Object],[object Object],[object Object]
Parallel Algorithm Models (continued)  ,[object Object],[object Object],[object Object]

More Related Content

What's hot

Parallel algorithms
Parallel algorithmsParallel algorithms
Parallel algorithmsDanish Javed
 
Parallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationParallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationGeoffrey Fox
 
Parallel Machine Learning
Parallel Machine LearningParallel Machine Learning
Parallel Machine LearningJanani C
 
GRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEM
GRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEMGRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEM
GRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEMIJCSEA Journal
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelJenny Liu
 
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...ijgca
 
An Algorithm for Optimized Cost in a Distributed Computing System
An Algorithm for Optimized Cost in a Distributed Computing SystemAn Algorithm for Optimized Cost in a Distributed Computing System
An Algorithm for Optimized Cost in a Distributed Computing SystemIRJET Journal
 
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTINGDYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTINGcscpconf
 
PAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph ComputationPAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph Computation1crore projects
 

What's hot (20)

Parallel algorithms
Parallel algorithmsParallel algorithms
Parallel algorithms
 
Parallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationParallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel application
 
Chap4 slides
Chap4 slidesChap4 slides
Chap4 slides
 
Chap5 slides
Chap5 slidesChap5 slides
Chap5 slides
 
Parallel Machine Learning
Parallel Machine LearningParallel Machine Learning
Parallel Machine Learning
 
Chapter 4 pc
Chapter 4 pcChapter 4 pc
Chapter 4 pc
 
Chapter 1 pc
Chapter 1 pcChapter 1 pc
Chapter 1 pc
 
GRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEM
GRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEMGRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEM
GRAPH MATCHING ALGORITHM FOR TASK ASSIGNMENT PROBLEM
 
Chap8 slides
Chap8 slidesChap8 slides
Chap8 slides
 
Chap1 slides
Chap1 slidesChap1 slides
Chap1 slides
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in Parallel
 
Chap9 slides
Chap9 slidesChap9 slides
Chap9 slides
 
Chap7 slides
Chap7 slidesChap7 slides
Chap7 slides
 
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDMOD...
 
An Algorithm for Optimized Cost in a Distributed Computing System
An Algorithm for Optimized Cost in a Distributed Computing SystemAn Algorithm for Optimized Cost in a Distributed Computing System
An Algorithm for Optimized Cost in a Distributed Computing System
 
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTINGDYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
 
Distributed DBMS - Unit 6 - Query Processing
Distributed DBMS - Unit 6 - Query ProcessingDistributed DBMS - Unit 6 - Query Processing
Distributed DBMS - Unit 6 - Query Processing
 
PAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph ComputationPAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph Computation
 
Parallel Algorithms
Parallel AlgorithmsParallel Algorithms
Parallel Algorithms
 
Basic Communication
Basic CommunicationBasic Communication
Basic Communication
 

Similar to Chap3 slides

Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programmingyashkumarcs20
 
2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)anh tuan
 
Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsParallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsSubhajit Sahu
 
Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsParallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsSubhajit Sahu
 
Embarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel ProblemsEmbarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel ProblemsDilum Bandara
 
Mapreduce2008 cacm
Mapreduce2008 cacmMapreduce2008 cacm
Mapreduce2008 cacmlmphuong06
 
Map reduceoriginalpaper mandatoryreading
Map reduceoriginalpaper mandatoryreadingMap reduceoriginalpaper mandatoryreading
Map reduceoriginalpaper mandatoryreadingcoolmirza143
 
Map reduce
Map reduceMap reduce
Map reducexydii
 
Sharing of cluster resources among multiple Workflow Applications
Sharing of cluster resources among multiple Workflow ApplicationsSharing of cluster resources among multiple Workflow Applications
Sharing of cluster resources among multiple Workflow Applicationsijcsit
 
Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...
Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...
Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...IRJET Journal
 
Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...
Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...
Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...Yahoo Developer Network
 
MULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORS
MULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORSMULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORS
MULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORScscpconf
 
Multiple dag applications
Multiple dag applicationsMultiple dag applications
Multiple dag applicationscsandit
 
An ai planning approach for generating
An ai planning approach for generatingAn ai planning approach for generating
An ai planning approach for generatingijaia
 

Similar to Chap3 slides (20)

Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programming
 
Lecture 1 mapreduce
Lecture 1  mapreduceLecture 1  mapreduce
Lecture 1 mapreduce
 
Map reduce
Map reduceMap reduce
Map reduce
 
2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)
 
Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsParallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
 
Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsParallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds
 
Unit-2 Hadoop Framework.pdf
Unit-2 Hadoop Framework.pdfUnit-2 Hadoop Framework.pdf
Unit-2 Hadoop Framework.pdf
 
Unit-2 Hadoop Framework.pdf
Unit-2 Hadoop Framework.pdfUnit-2 Hadoop Framework.pdf
Unit-2 Hadoop Framework.pdf
 
Embarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel ProblemsEmbarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel Problems
 
Unit-3.ppt
Unit-3.pptUnit-3.ppt
Unit-3.ppt
 
Mapreduce2008 cacm
Mapreduce2008 cacmMapreduce2008 cacm
Mapreduce2008 cacm
 
Map reduceoriginalpaper mandatoryreading
Map reduceoriginalpaper mandatoryreadingMap reduceoriginalpaper mandatoryreading
Map reduceoriginalpaper mandatoryreading
 
Map reduce
Map reduceMap reduce
Map reduce
 
J41046368
J41046368J41046368
J41046368
 
Sharing of cluster resources among multiple Workflow Applications
Sharing of cluster resources among multiple Workflow ApplicationsSharing of cluster resources among multiple Workflow Applications
Sharing of cluster resources among multiple Workflow Applications
 
Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...
Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...
Scheduling Algorithm Based Simulator for Resource Allocation Task in Cloud Co...
 
Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...
Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...
Apache Hadoop India Summit 2011 Keynote talk "Programming Abstractions for Sm...
 
MULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORS
MULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORSMULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORS
MULTIPLE DAG APPLICATIONS SCHEDULING ON A CLUSTER OF PROCESSORS
 
Multiple dag applications
Multiple dag applicationsMultiple dag applications
Multiple dag applications
 
An ai planning approach for generating
An ai planning approach for generatingAn ai planning approach for generating
An ai planning approach for generating
 

Recently uploaded

Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 

Recently uploaded (20)

Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 

Chap3 slides

  • 1. Principles of Parallel Algorithm Design Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar To accompany the text “Introduction to Parallel Computing”, Addison Wesley, 2003.
  • 2.
  • 3.
  • 4.
  • 5. Example: Multiplying a Dense Matrix with a Vector Computation of each element of output vector y is independent of other elements. Based on this, a dense matrix-vector product can be decomposed into n tasks. The figure highlights the portion of the matrix and vector accessed by Task 1. Observations: While tasks share data (namely, the vector b ), they do not have any control dependencies - i.e., no task needs to wait for the (partial) completion of any other. All tasks are of the same size in terms of number of operations. Is this the maximum number of tasks we could decompose this problem into?
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. Characteristics of Task Interactions: Example A simple example of a regular static interaction pattern is in image dithering. The underlying communication pattern is a structured (2-D mesh) one as shown here:
  • 56. Characteristics of Task Interactions: Example The multiplication of a sparse matrix with a vector is a good example of a static irregular interaction pattern. Here is an example of a sparse matrix and its associated interaction pattern.
  • 57.
  • 58.
  • 59.
  • 60. Mapping Techniques for Minimum Idling Mapping must simultaneously minimize idling and load balance. Merely balancing load does not minimize idling.
  • 61.
  • 62.
  • 63. Mappings Based on Data Partitioning We can combine data partitioning with the ``owner-computes'' rule to partition the computation into subtasks. The simplest data decomposition schemes for dense matrices are 1-D block distribution schemes.
  • 64.
  • 65.
  • 66. Data Sharing in Dense Matrix Multiplication
  • 67.
  • 68. LU Factorization of a Dense Matrix A decomposition of LU factorization into 14 tasks - notice the significant load imbalance. 11: 12: 13: 14: 6: 7: 8: 9: 10: 1: 2: 3: 4: 5:
  • 69.
  • 70. Block-Cyclic Distribution for Gaussian Elimination The active part of the matrix in Gaussian Elimination changes. By assigning blocks in a block-cyclic fashion, each processor receives blocks from different parts of the matrix.
  • 71. Block-Cyclic Distribution: Examples One- and two-dimensional block-cyclic distributions among 4 processes.
  • 72.
  • 73.
  • 74. Partitioning the Graph of Lake Superior Random Partitioning Partitioning for minimum edge-cut.
  • 75.
  • 76. Task Paritioning: Mapping a Binary Tree Dependency Graph Example illustrates the dependency graph of one view of quick-sort and how it can be assigned to processes in a hypercube.
  • 77. Task Paritioning: Mapping a Sparse Graph Sparse graph for computing a sparse matrix-vector product and its mapping.
  • 78.
  • 79. An example of task partitioning at top level with data partitioning at the lower level.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.