summation problem
计算A(1)+…+A(N), 并行两个两个加,再并行第一次加法后的两个两个加
work load 是N, T(N)=logN
Prefix-Sums
计算A(1), A(1)+A(2),…, A(1)+A(2)+…+A(N)一共N个值。
C(i,j)的含义是:以C(i,j)为根的树,最右边的叶子加到A(1)的值
B是从下往上算,C是从上往下计算。
work load O(N), T(N)=O(logN)
Merging
找到A中每个元素在B中排名,B中每个元素在A中排名,在结果中的排名就是在A中排名+在B中排名。
因此,给了Rank,merge复杂度是T(N)=O(1), W(N)=O(N)
如果用二分查找法,N个元素并行查找,work load是O(NlogN), T(N)=O(logN)
如果使用顺序查找法,N个元素,work load 是O(N), T(N)=O(N)
如果使用p=N/logN个段, work load = O(N), T(N)=O(NlogN)
finding max
summation
和相邻的比较,大的进入上一层,最后时间一共O(logN),work load O(N)
all pairs
分为N^2个进程,每个进程做第i个和第j个比较,j是i后面任何一个, 将小的那个记录成1.
然后分成N个进程,每个进程检查这个元素是不是0,是0的就是最大元素。
work load 是N^2, T(N)=O(1)
doubly logarithmic
按照 N \sqrt N N进行分组,T(N)=loglogN, W(N)=O(NloglogN)
按照h=loglogN进行分组
T(N)=O(loglogN), W(N)=O(N)
按照 n 7 8 n^{\frac 78} n87分组,work load 是O(N), T(N)=O(1)