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

Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitolTechU
 

Recently uploaded (20)

Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptx
 

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.