计算机体系结构基础(第3版)
上QQ阅读APP看书,第一时间看更新

习题

1.请介绍MPI中阻塞发送MPI_Send/阻塞接收MPI_Recv与非阻塞发送MPI_Isend/非阻塞接收MPI_Irecv的区别。

2.请介绍什么是归约(Reduce)操作,MPI和OpenMP中分别采用何种函数或者子句来实现归约操作。

3.请介绍什么是栅障(Barrier)操作,MPI和OpenMP中分别采用何种函数或者命令来实现栅障。

4.下面的MPI程序片段是否正确?请说明理由。假定只有2个进程正在运行且mypid为每个进程的进程号。


If(mypid==0){
  MPI_Bcast(buf0,count,type,0,comm,ierr);
  MPI_Send(buf1,count,type,1,tag,comm,ierr);
} else {
  MPI_Recv(buf1,count,type,0,tag,comm,ierr);
  MPI_Bcast(buf0,count,type,0,comm,ierr);
}

5.矩阵乘是数值计算中的重要运算。假设有一个m×p的矩阵A,还有一个p×n的矩阵B。令C为矩阵A与B的乘积,即C=AB。表示矩阵在(i,j)位置处的值,则0≤i≤m-1,0≤j≤n-1。请采用OpenMP,将矩阵C的计算并行化。假设矩阵在存储器中按行存放。

6.请采用MPI将上题中矩阵C的计算并行化,并比较OpenMP与MPI并行程序的特点。

7.分析一款GPU的存储层次。