OpenMP与MPI并行计算:原理、实践与性能分析
在并行计算领域,OpenMP和MPI是两个重要的工具,它们分别适用于共享内存和分布式内存的并行编程。下面将详细介绍OpenMP的矩阵向量乘法、FFT的共享内存版本,以及MPI在分布式内存机器上的应用。
1. OpenMP矩阵向量乘法
1.1 SGEFA的共享内存版本
在SGEFA的共享内存版本中,采用了Fortran或列主序存储约定,即列按顺序存储在内存中,而非C语言的行主序。以下是多重SAXPY操作(msaxpy)的代码:
#define ym(p,q) (y+p+q*n)
void msaxpy(nr.nc,a,n,x,y)
int nr.nc.n;
float *a,*x,*y;
{
/* multiple SAXPY operation, wpp 29/01/2003 */
int i,j;
#pragma omp parallel shared(nr,nc,a,x,y) private(i,j)
#pragma omp for schedule(static,10) nowait
for(j=0;j<nc;j++){
for(i=0;i<nr;i++){
*ym(i,j) += a[j*n]*x[i];
}
}
}
#undef ym
在准备图4.13的数据时,测试了OpenMP参数的几个变体,最终选择 schedule (static, 10) nowait 获
OpenMP与MPI并行计算原理、实践及性能分析
超级会员免费看
订阅专栏 解锁全文
743

被折叠的 条评论
为什么被折叠?



