并行算法与并行程序设计第02章并行算法教程分析.ppt

并行算法与并行程序设计第02章并行算法教程分析.ppt

* MIMD算法根据其同步性可分为同步MIMD和异步MIMD。 * while |u-l|e do { d = (u-l)/(n+1); for all Pi i=1…n do y[i] = f( l+i*d ); i = 0; while( y[i]与y[i+1]同号 ) { l += d; i++; } u = l+d; y[n+1] = y[i+1]; } z = (l+u)/2; * for all Pi i=0...n-1 do { k=0; for (j=0; jn; j++) { if(x[i]==x[j]) k++; else if(x[i]==x[j] ij) k++; } T[k] = x[i]; } * 理想情况下,计算时间为: t(n) = ( n + n/2 + n/4 + … + n/(p/2) ) + n/p + 2*( n/2p ) + 4*( n/4p ) + … + ((n/2)/p)*( n/(n/2) ) = n*( 2( 1 – 1/p ) + ( logn – logp )/p ) 工作量:p*t(n) = O( np + nlogn ),当p远小于logn时,接近工作量有效。 * 分治的关键在于问题的分解和子问题解的归并,尤其是解的归并。 * 采用每个处理单元(进程)负责剔出一个数

文档评论(0)

1亿VIP精品文档

相关文档