Scalable Tissue Imaging and Modeling (STIM) Laboratory
Department of Electrical and Computer Engineering
Cullen College of Engineering
University of Houston
David Mayerich
STIM Laboratory, University of Houston
Allocate work before assigning it
Specify rules at compile-time
Assignment remains constant
Useful when:
Work is predictable
or statistically predicatable
David Mayerich
STIM Laboratory, University of Houston
t0
t1
t2
t3
t0
t1
t2
t3
t4
t8
t5
t9
t6
t10
t7
t11
t12
t13
t14
t15
Determine the short-term cost of work
Assign workers based on that cost
Barnes-Hutt Algorithm
David Mayerich
STIM Laboratory, University of Houston
Prime test using trial division:
David Mayerich
STIM Laboratory, University of Houston
for(size_t i = 0; i < N; i++) {
p[i] = test_prime(x[i]);
}
// test prime using trial division
bool test_prime(int y) {
int m = sqrt(y);
for(size_t j = 2; j < m; j++) {
if(y % j == 0) return false;
}
return true;
}30
31
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
9
11
13
10
12
test_prime
duration
15
17
19
29
14
18
20
16
queue
t0
t1
t2
t3
Profile the entire program
Calculate the overhead:
\(T_o\) is the overhead (time spent on non-useful work)
\(p\) is the number of processors
\(T_p\) is the parallel runtime
\(T_s\) is the serial runtime
Successful strategies
David Mayerich
STIM Laboratory, University of Houston
sync()
sync()
sync()
serial
parallel
\(T_p\)
\(T_s\)