南开大学21秋《并行程序设计》平时作业一参考答案1. 编写矩阵乘法的Neon程序,若矩阵元素为单精度浮点数,则应对矩阵乘加计算的循环进行( )路循环展开A.2B.4C.8D.16参考答案:B2. 两个n*n的矩阵相乘,将所有n^2个乘法计算划分给不同进程,再将对应某行某列的n个乘法结果累加得到结果矩阵对应元素,这是一种划分____的数据并行两个n*n的矩阵相乘,将所有n^2个乘法计算划分给不同进程,再将对应某行某列的n个乘法结果累加得到结果矩阵对应元素,这是一种划分____的数据并行A.输入数据B.中间结果C.输出数据D.临时数据参考答案:B3. SSE指令移动单精度浮点数,不能实现____SSE指令移动单精度浮点数,不能实现____A.将64位数据移动到SSE寄存器高位B.将64位数据移动到SSE寄存器低位C.将32位数据移动到SSE寄存器指定位置D.在两个SSE寄存器高/低64位间移动参考答案:C4. 在下列应用中,SIMD最不适合____在下列应用中,SIMD最不适合____A.图像处理B.音频处理C.科学计算D.数据库查询参考答案:D5. 利用cache line一次读取多个数据字的机制优化程序访存性能,其机理是( )。
A.降低了访存延迟B.隐藏了访存延迟C.利用了cache空间局部性D.利用了cache时间局部性参考答案:C6. pthread_create函数中线程函数指针的正确类型是( )A.void(void*)B.void*(void*)C.int(void)D.void*(*)(void*)参考答案:D7. 单程序多数据流模式是针对_____架构的A.SISDB.SIMDC.MISDD.MIMD参考答案:D8. SSE的shuffle指令的8位二进制整数参数被划分为4个2位二进制整数imm8[0∶3],若imm8[1]=j则表示( )A.将第一个源寄存器的第j个元素放在目标寄存器位置1B.将第二个源寄存器的第j个元素放在目标寄存器位置1C.将第一个源寄存器的第1个元素放在目标寄存器位置1D.将第二个源寄存器的第1个元素放在目标寄存器位置1参考答案:A9. 单精度浮点数矩阵乘法进行AVX并行,期望的加速比为_____A.等于8B.小于8C.4到8之间D.等于4参考答案:B10. 记并行时间为T,串行时间为T&39;,处理器数量为p,并行效率E的定义是____记并行时间为T,串行时间为T',处理器数量为p,并行效率E的定义是____。
A.T'-TB.T'/TC.T'/pTD.pT-T'参考答案:C11. R*=1.3; G+=1.8; B+=1.2; X*=1.1,此程序片段可进行SIMD并行化吗?( )A.不可以B.可以C.不确定D.以上皆错参考答案:A12. SSE intrinsics_mm_store_ps命令的功能是( )A.对齐向量存单精度浮点数B.未对齐向量存单精度浮点数C.对齐标量存单精度浮点数D.未对齐标量存单精度浮点数参考答案:A13. 超立方中相邻节点二进制编号_____A.至少差1位B.至多差1位C.恰好差1位D.差异不固定参考答案:C14. 创建线程时,我们通过( )将线程号分别传递给每个线程A.全局变量B.局部变量C.动态分配变量D.pthread_create的“线程函数参数”参数参考答案:D15. 对于科学仿真并行计算的一般方法,哪个步骤的描述是错误的?对于科学仿真并行计算的一般方法,哪个步骤的描述是错误的?A.将空间离散化为网格B.在网络上进行局部计算C.局部计算结果完全独立D.重复若干时间步参考答案:C16. 在超市的顾客购买商品记录中统计一些商品组合的购买频率,将购买频率(商品组合)划分给不同进程,这是一种划分( )的数据并行策略。
A.输入数据B.中间结果C.输出数据D.临时数据参考答案:C17. 编写矩阵乘法的Neon程序,若矩阵元素为双精度浮点数,则应对矩阵乘—加计算的循环进行_____路循环展开A.2B.4C.8D.16参考答案:A18. 对这样的循环for(i=0;iA.循环划分B.循环消除C.循环展开D.以上皆错参考答案:C19. 静态线程编程模式的缺点是____静态线程编程模式的缺点是____A.线程管理开销高B.系统资源利用率低C.线程负载不均D.线程通信开销高参考答案:B20. 采用多核、众核技术提升CPU性能,相对于单核的优势不包括_____A.架构设计更容易B.更易突破物理极限C.能更充分利用现有资源D.功耗优势明显参考答案:B21. 对矩阵乘法串行程序主体三重循环的最内层循环进行向量化,则该循环执行完毕后,还需进行SIMD寄存器中几个元素的___操作才能得到结果矩阵的一个元素对矩阵乘法串行程序主体三重循环的最内层循环进行向量化,则该循环执行完毕后,还需进行SIMD寄存器中几个元素的___操作才能得到结果矩阵的一个元素A.排列B.交换C.广播D.归约参考答案:D22. pthread_rwlock_wrlock是对读写锁进行____操作。
pthread_rwlock_wrlock是对读写锁进行____操作A.加锁B.解锁C.加读琐D.加写锁参考答案:D23. 在MPI中从/向虚拟进程收/发消息的实际效果是____在MPI中从/向虚拟进程收/发消息的实际效果是____A.与通信域根进程通信B.与0号进程通信C.像什么都没发生一样D.以上皆错参考答案:C24. 对奇偶转置排序进行OpenMP并行化,第一种策略是直接对内层循环使用omp parallel for指令,第二种策略是对外层循环使用omp parallel指令,对内层循环使用omp for指令,后者相对于前者的优点是_____A.保持了数据依赖B.消除了大量线程创建、销毁开销C.有利于负载均衡D.减少了线程间交互参考答案:B25. 并行计算还主要用于国防、工程研究等领域,这种说法是_____A.正确的B.错误的参考答案:B26. 对于效率E,下面描述错误的是( )A.理想并行E=1B.总是在0~1之间C.可能1D.可能随着处理器数量增大趋向于0参考答案:B27. SSE有_____个专用寄存器A.4B.8C.16D.33参考答案:B28. OpenMP是___的一个常见替代。
OpenMP是___的一个常见替代A.SSEB.MPIC.PthreadD.CUDA参考答案:C29. 在使用条件变量之前必须对其进行____在使用条件变量之前必须对其进行____A.初始化B.加锁C.解锁D.销毁参考答案:A30. 多个线程进行并行求和,每个线程将自己负责的值依次读入局部变量x,累加到全局变量sum上,sum+=x,对此,下面说法正确的是( )A.读取x存在数据依赖,不能并发进行B.累加顺序被改变,结果是错误的C.加法操作是简单运算,无需同步D.加法操作不是原子操作,需要同步保证数据依赖参考答案:D31. 编写n个数求和的OpenMP程序,最高效的方法是( )A.多线程直接并发累加到共享变量B.将累加操作设置为临界区C.在累加操作前设置障碍D.采用归约指令参考答案:D32. 对双精度浮点计算,AVX最高实现( )路并行A.2B.4C.8D.16参考答案:B33. 对两个互斥量a、b,线程1执行lock(a);lock(b);,线程2执行lock(b);lock(a),则两个线程间会发生____对两个互斥量a、b,线程1执行lock(a);lock(b);,线程2执行lock(b);lock(a),则两个线程间会发生____。
A.竞争条件B.数据依赖C.资源泄漏D.死锁参考答案:D34. OpenMP不会自动地在____位置设置barrierOpenMP不会自动地在____位置设置barrierA.并行结构开始B.并行结构结束C.其他控制结构开始D.其他控制结构结束参考答案:C35. 下面哪种架构最适合数据并行?( )A.SISDB.SIMDC.MISDD.MIMD参考答案:B36. 在SSE intrinsics程序中双精度浮点数数据类型是( )A._m128B._m128fC._m128dD._m128i参考答案:C37. 每个AVX寄存器宽度为____位每个AVX寄存器宽度为____位A.32B.64C.128D.256参考答案:D38. 为缓解存储和CPU之间的性能差距,常见的技术手段不包括_____A.利用cache降低访存延迟B.利用多线程隐藏访存延迟C.利用预取隐藏访存延迟D.采用大容量内存提高访问速度参考答案:D39. 关于消息传递编程的特点,以下说法正确的是( )A.与共享内存一样有竞争条件B.编程简单C.需程序员考虑局部性D.无需考虑进程间通信参考答案:C40. 一个AVX寄存器最多存放____个单精度浮点数。
一个AVX寄存器最多存放____个单精度浮点数A.2B.4C.8D.16参考答案:C41. FORTRAN语言存储二维数组采取____FORTRAN语言存储二维数组采取____A.行主次序存储B.列主次序存储C.交错式存储D.对角线存储参考答案:B42. 如果运算对象是独立无关的变量,则在向量运算之前需_____A.将变量拷贝到连续区域B.将变量地址拷贝到连续区域C.将变量逐个传输到向量寄存器D.以上皆错参考答案:A43. 每个AVX寄存器宽度为_____位A.32B.64C.128D.256参考答案:D44. 编写矩阵乘法的AVX程序,若矩阵元素为单精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开编写矩阵乘法的AVX程序,若矩阵元素为单精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开A.2B.4C.8D.16参考答案:C45. 下列哪门课程不是并行程序设计的先导课?下列哪门课程不是并行程序设计的先导课?A.计算机概论B.高级语言程序设计C.计算机体系结构D.数据库系统参考答案:D46. SSE寄存器A中元素为A1 A2 A3 A4(均为由低到高),则执行C=shuffle(A, A, 0x1B)后,C中元素为( )SSE寄存器A中元素为A1 A2 A3 A4(均为由低到高),则执行C=shuffle(A, A, 0x1B)后,C中元素为( )A.A1 A2 A3 A4B.A2 A1 A4 A3C.A3 A4 A1 A2D.A4 A3 A2 A1参考答案:D47. 采用划分子矩阵技术优化矩阵乘法CUDA程序,主要思想是访存更多在____。
采用划分子矩阵技术优化矩阵乘法CUDA程序,主要思想是访存更多在____A.CPU内存B.GPU显存C.GPU共享内存D.GPU寄存器参考答案:C48. 一个SSE寄存器可容纳( )个双精度浮点数A.2B.4C.8D.16参考答案:A49. 我国最近一次夺得全球超级计算机计算能力冠军的是_____A.天河1号B.天河1AC.天河2号D.神威·太湖之光参考答案:D50. OpenMP不能实现的是( )A.负责创建和管理线程B.隐藏栈管理C.提供同步机制D.自动并行化参考答案:D51. SSE寄存器A和B中元素分别为A1 A2 A3 A4和B1 B2 B3 B4(均为由低到高),则执行C=blend(A,B,0x05)后,C中元素为( )A.A1 A2 B3 B4B.B1 B2 A3 A4C.A1 B2 A3 B4D.B1 A2 B3 A4参考答案:D52. CUDA线程层次中不包括( )A.KernelB.GridC.BlockD.Thread参考答案:A53. 在下列应用中,SIMD最不适合_____A.图像处理B.音频处理C.科学计算D.数据库查询参考答案:D54. 对矩阵乘法串行程序主体三重循环的最内层循环进行向量化,则该循环执行完毕后,还需进行SIMD寄存器中几个元素的( )操作才能得到结果矩阵的一个元素。
A.排列B.交换C.广播D.归约参考答案:D55. 使用_____无法直接实现“主线程等待4个从线程完成任务”A.1个信号量B.障碍C.1个互斥量D.4个互斥量参考答案:C56. 采用划分子矩阵(大小b*b)的方法实现n*n矩阵乘法,一次乘加运算涉及的子矩阵可全部放入cache,则整个计算过程中,两个输入矩阵的每个元素会产生次访存A.nB.tC.n-tD.n/t参考答案:D57. 以下( )是MPI基本原语A.MPI_barrierB.MPI_Comm_numprocsC.MPI_Comm_rankD.MPI_Comm_Send参考答案:C58. 求解同一个问题的4个并行算法的等效率函数分析结果如下,其中( )的可扩展性最优A.θ(plogp)B.θ(p^2)C.θ(p^2logp)D.θ(p^3)参考答案:A59. 为利用cache空间局部性,需满足_____A.cache空间足够大B.cache line足够大C.程序访问的数据量足够小D.程序访存模式符合空间局部性特点参考答案:D60. 编写矩阵乘法的Neon程序,若矩阵元素为单精度浮点数,则应对矩阵乘加计算的循环进行____路循环展开。
编写矩阵乘法的Neon程序,若矩阵元素为单精度浮点数,则应对矩阵乘加计算的循环进行____路循环展开A.2B.4C.8D.16参考答案:B。