COL380: Introduction to Parallel & Distributed

Published  . 0 views
↓ Download
COL380: Introduction to Parallel & Distributed
1 / 1
COL380: Introduction to Parallel & Distributed - slide 1 of 20 COL380: Introduction to Parallel & Distributed - slide 2 of 20 COL380: Introduction to Parallel & Distributed - slide 3 of 20 COL380: Introduction to Parallel & Distributed - slide 4 of 20 COL380: Introduction to Parallel & Distributed - slide 5 of 20 COL380: Introduction to Parallel & Distributed - slide 6 of 20 COL380: Introduction to Parallel & Distributed - slide 7 of 20 COL380: Introduction to Parallel & Distributed - slide 8 of 20 COL380: Introduction to Parallel & Distributed - slide 9 of 20 COL380: Introduction to Parallel & Distributed - slide 10 of 20 COL380: Introduction to Parallel & Distributed - slide 11 of 20 COL380: Introduction to Parallel & Distributed - slide 12 of 20 COL380: Introduction to Parallel & Distributed - slide 13 of 20 COL380: Introduction to Parallel & Distributed - slide 14 of 20 COL380: Introduction to Parallel & Distributed - slide 15 of 20 COL380: Introduction to Parallel & Distributed - slide 16 of 20 COL380: Introduction to Parallel & Distributed - slide 17 of 20 COL380: Introduction to Parallel & Distributed - slide 18 of 20 COL380: Introduction to Parallel & Distributed - slide 19 of 20 COL380: Introduction to Parallel & Distributed - slide 20 of 20
Description: COL380: Introduction to Parallel Distributed Programming We will Study Concurrency Parallelism Distributed computing Evaluation Assignments 40, Minor-1 15, Minor-2 15, Major 30 Plagiarism is unacceptable. Offenders will be penalized

Related Topics

Download Presentation

"COL380: Introduction to Parallel & Distributed" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

Presentation Transcript

slide1. COL380: Introduction to Parallel & Distributed Programming<br>
slide2. We will Study … Concurrency

Parallelism

Distributed computing<br>
slide3. Evaluation Assignments 40%,
Minor-1 15%,
Minor-2 15%,
Major 30% Plagiarism is unacceptable. Offenders will be penalized by a failing grade.<br>
slide4. Moore’s Law the number of transistors in a dense integrated circuit (IC) doubles about every two years. Ref: https://www.britannica.com/
technology/Moores-law<br>
slide5. CPU Trends<br>
slide6. CPU Trends<br>
slide7. Sequential Computation Bottleneck of Sequential Computation

Single processor performance increases with the as transistor density increases.

Increase in transistor density increases power consumption and result in heating problem.

Heating problem results in unreliable computation.

Additional technique to improve performance: Parallelism<br>
slide8. Benefits Parallelism increase computation power

Many important applications

Climate modeling
Protein folding
Drug discovery
Data analysis
…<br>
slide9. Parallelism and Parallel Computing Can a system automatically parallelize a sequential program?

Specific cases
Automatic parallelization by compiler
Instruction level parallelism in architecture Cannot exploit all possible opportunities Parallel Programming: Device parallel algorithm and program that solves a problem in more efficient manner<br>
slide10. Example Problem: Compute n values and sum them together. Sequential Program

int sum = 0;
for (i = 0; i < n; i++) {
x = f(i);
sum = sum+x;
}<br>
slide11. Parallel Program: Compute Partial Sum Assumption: p processors where p << n my_sum = 0;
my_first i = . . . ;
my_last i = . . . ;
for (my_i = my_first i; my_i < p_last_i; my_i++) {
my_x = f(i);
my_sum += my_x;
}<br>
slide12. Parallel Program: Accumulate Partial Sum if (I’m the master core) {
sum = my_sum;
for (each core other than myself) {
receive value from core;
sum += value;
}
} else { send my_sum to the master; } 8+19+7+15+7+13+12+14=95<br>
slide13. Parallel Program: Second Attempt No constraint on the number of available processors<br>
slide14. Comparing two Attempts (1) Compute partial sum of n/p elements.

(2) accumulate results of partial sum Both approaches have same number of addition operations<br>
slide15. Comparing two Attempts Parallel computation
(1) Compute partial sum of n/p elements.

Serial computation
(2) accumulate results of partial sum Step (2) of the first approach is serialized<br>
slide16. Comparing two Attempts (1) Compute partial sum of n/p elements.

(2) accumulate results of partial sum First approach is closer to the sequential sum program<br>
slide17. Additional Concerns Communication

- shared memory, message passing, …

Coordination

- synchronization

Job distribution

- load balancing<br>
slide18. Different Models of Computation Concurrency

Parallelism

Distributed computing Shared memory programs: OpenMP

Message passing:
MPI
….<br>
slide19. Memory & Communication Play a Significant Role Core 0 Core 1 … Memory Core 0 Core 1 … Network Memory Memory<br>
slide20. References Chapter 1
An Introduction to Parallel Programming
by Peter Pacheco.

Introduction to Parallel Computing, Second Edition
by Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar<br>