Partitioning and Divide-and-Conquer Strategies
description
Transcript of Partitioning and Divide-and-Conquer Strategies
![Page 1: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/1.jpg)
Partitioning and Divide-and-Conquer Strategies
Data partitioning (or Domain decomposition)
Functional decomposition
![Page 2: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/2.jpg)
+
x0…….x(n/m)-1
+
xn/m…….x(2n/m)-1
……. +
x(m-1)n/m…….xn-1
+
sum
Partitioning and Divide-and-Conquer Strategies
![Page 3: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/3.jpg)
Addition of a sequence of numbers
Masters = n / m;for(i=0, x=0 ; i<m ; i++, x=x+s) send(&number[x], s, Pi);
result = 0;for(i=0 ; i<m ; i++){ recv(&part_sum, Pany); sum = sum + part_sum;}
Slaverecv(numbers, s, Pmaster);sum = 0;for(i=0 ; i<s ; i++) part_sum = part_sum + numbers[i];send(&part_sum, Pmaster);
![Page 4: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/4.jpg)
Addition of a sequence of numbers
Masters = n / m;bcast(numbers, s, Pslave_group);
result = 0;for(i=0 ; i<m ; i++){ recv(&part_sum, Pany); sum = sum + part_sum;}
Slavebcast(numbers, s, Pmaster);start = slave_number * s;end = start + s;sum = 0;for(i=start ; i<end ; i++) part_sum = part_sum + numbers[i];send(&part_sum, Pmaster);
![Page 5: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/5.jpg)
Addition of a sequence of numbers
Analysis.
Phase I. communication
datastartupcomm
datastartupcomm
nttt
tmntmt
1
1 ))/((
Phase II. computation
1/1 mntcomp
![Page 6: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/6.jpg)
Addition of a sequence of numbers
Analysis.
Phase III. communication
)(2 datastartupcomm ttmt
Phase VI. computation
11 mtcomp
![Page 7: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/7.jpg)
Addition of a sequence of numbers
Analysis.
)(
/)()1(
mnOt
or
mnmtmntmt
p
datastartupp
2/
1
mmn
n
t
tS
p
s
![Page 8: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/8.jpg)
Divide-and-Conquer
int add(int* s){ if(number(s)=<2) return (n1+n2); else{ divide(s, s1, s2); part_sum1 = add(s1); part_sum2 = add(s2); retunr(part_sum1 + part_sum2); }}
![Page 9: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/9.jpg)
Divide-and-Conquer
Divideproblem
![Page 10: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/10.jpg)
Divide-and-Conquer
P0
P0 P4
P0 P2
P0 P1 P2 P3
P6P4
P7P6P5P4
![Page 11: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/11.jpg)
Divide-and-ConquerP0
P0 P4
P0 P2
P0 P1 P2 P3
P6P4
P7P6P5P4
![Page 12: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/12.jpg)
Process P0
divide(s1, s1, s2);send(s2, P4);divide(s1, s1, s2);send(s2, P2);divide(s1, s1, s2);send(s2, P0);part_sum = *s1;recv(&part_sum1, P0);part_sum = part_sum + part_sum1;recv(&part_sum1, P2);part_sum = part_sum + part_sum1;recv(&part_sum1, P4);part_sum = part_sum + part_sum1;
Process P4
recv(s1, P0)divide(s1, s1, s2);send(s2, P6);divide(s1, s1, s2);send(s2, P5);part_sum = *s1;recv(&part_sum1, P5);part_sum = part_sum + part_sum1;recv(&part_sum1, P6);part_sum = part_sum + part_sum1;send(&part_sum, P0);
Divide-and-Conquer
![Page 13: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/13.jpg)
Divide-and-Conquer
analysis
datadatadatadatadatacomm tp
pntp
ntn
tn
tn
t)1(
...8421
ptt datacomm log2
pttp
pnttt datadatacommcommcomm log
)1(21
communication
![Page 14: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/14.jpg)
Divide-and-Conquer
analysis
pp
ntcomp log
pp
nptt
p
pnt datadatap loglog
)1(
computation
![Page 15: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/15.jpg)
M-way Divide-and-Conquer
int add(int* s){ if(number(s) =<4) return(n1+n2+n3+n4); esle{ divide(s, s1, s2, s3, s4); part_sum1 = add(s1); part_sum2 = add(s2); part_sum3 = add(s3); part_sum4 = add(s4); return(part_sum1 + part_sum2 + part_sum3 + part_sum4); }}
![Page 16: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/16.jpg)
M-way Divide-and-Conquer
![Page 17: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/17.jpg)
M-way Divide-and-Conquer
![Page 18: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/18.jpg)
Numerical Integration
b
adxxfI )(
a p q b
f(p) f(q)
f(x)
![Page 19: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/19.jpg)
Numerical Integration
a p q b
f(p) f(q)
f(x)
![Page 20: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/20.jpg)
a p q b
f(p) f(q)
Numerical Integration
f(x)
![Page 21: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/21.jpg)
Numerical Integration
A B
![Page 22: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/22.jpg)
Numerical Integration
Process Pi
if( i== master ){ printf("Enter number of intervals"); scanf("%d", &n); }bcast(&n, Pgroup);region = (b-a) / p;start = a + region * i;end = start + region;d = (b-a) / n;area = 0.0;for(x=start ; x<end ; x = x+d) area = area + 0.5 * (f(x)+f(x+d)) * d;reduce_add(&integral, &area, Pgroup);
area = 0.0;for(x=start ; x<end ; x=x+d) area = area + f(x) + f(x+d);area = 0.5 * area * d;
area = 0.5 * (f(start) + f(end));for(x=start+d ; x<end ; x=x+d) area = area + f(x);area = area * d;
![Page 23: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/23.jpg)
N-body problem
2r
mGmF ba
maF
tvxx
t
vvmF
tvxx
m
tFvv
t
vvmmaF
ttt
ttt
tt
tt
tt
2/11
2/12/1
1
1
1
)(
)(
![Page 24: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/24.jpg)
N-body problem
Three dimension space
)(
)(
)(
2
2
2
r
zz
r
mGmF
r
yy
r
mGmF
r
xx
r
mGmF
abbac
abbay
abbax
222 )()()( bababa zzyyxxr
![Page 25: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/25.jpg)
N-body problem
Sequential Codefor(t=0 ; t<tmax ; t++)
for(i=0 ; i<N ; i++) {
F=FORCE_ROUTINE(i);
v[i]new = v[i] + F * dt;
x[i]new = x[i] + v[i]new * dt;
}
for(i=0 ; i<nmax ; i++){
x[i] = x[i]new;
v[i] = v[i]new;
}
![Page 26: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/26.jpg)
N-body problem
Center of massdistance cluster of bodies
![Page 27: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/27.jpg)
N-body problem
Barnes-Hutalgorithm
![Page 28: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/28.jpg)
N-body problem
![Page 29: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/29.jpg)
N-body problem
for( t=0 ; t<tmax ; t++) {
Build_OCTTREE();
Tot_Mass_center();
comp_Force();
Update();
}
![Page 30: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/30.jpg)
N-body problem
7
0
7
0
)(1
iii
ii
cmM
C
mM
![Page 31: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/31.jpg)
Buckets Sort
![Page 32: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/32.jpg)
Buckets Sort
![Page 33: Partitioning and Divide-and-Conquer Strategies](https://reader034.fdocuments.net/reader034/viewer/2022051215/56814930550346895db66e2f/html5/thumbnails/33.jpg)
Buckets Sort