
南开大学21春《并行程序设计》在线作业二满分答案98.docx
15页南开大学21春《并行程序设计》作业二满分答案1. 每个AVX寄存器宽度为_____位A.32B.64C.128D.256参考答案:D2. 将t个线程的局部结果汇总,可采用递归分解并行进行,即,两两汇总,中间结果继续两两汇总,直到剩下唯一的最终结果,其时间复杂度为( )A.θ(1)B.θ(logt)C.θ(t)D.θ(tlogt)参考答案:B3. 在使用互斥量之前必须对其进行( )A.初始化B.加锁C.解锁D.销毁参考答案:A4. OpenMP程序和Pthread程序中线程获得自身编号的方式分别是____OpenMP程序和Pthread程序中线程获得自身编号的方式分别是____A.两者均为创建线程时传递参数B.两者均通过特定APIC.前者创建线程时传递参数,后者通过特定APID.前者通过特定API,后者创建线程时传递参数参考答案:D5. 对于多线程各自进行本地运算,然后由主线程汇总结果的模式,下面说法正确的是( )A.在同构核心上,线程运行速度一样,主线程无需等待,直接汇总结果即可B.线程运行速度可能不一致,必须采用同步保证主线程汇总正确结果C.太多本地运算,不能体现并行效果,不是好的模式D.主线程汇总结果在性能上必然不如多线程并行汇总结果参考答案:B6. OpenMP不会自动地在_____位置设置barrier。
A.并行结构开始B.并行结构结束C.其他控制结构开始D.其他控制结构结束参考答案:C7. 将寄存器设置为4个单精度浮点数0.0的SSE intrinsics指令是( )A._mm_set_psB._mm_set1_ssC._mm_setzero_ssD._mm_setzero_ps参考答案:D8. 在使用条件变量时,还需配套使用一个( )A.互斥量B.信号量C.障碍D.自旋锁参考答案:A9. 当处理器数量不变时,随着问题规模增大,加速比____当处理器数量不变时,随着问题规模增大,加速比____A.所有算法都增大B.所有算法都减小C.代价最优算法都增大D.代价最优算法都减小参考答案:C10. SSE有_____个专用寄存器A.4B.8C.16D.33参考答案:B11. Flynn分类法中,下面哪种体系结构在实际中几乎没有意义?( )A.SISDB.SIMDC.MISDD.MIMD参考答案:C12. 1) R=XR*1.3;G=XG*1.8;B=XB*1.1; 2) R=X[0]*1.3;G=X[1]*1.8;B=X[2]*1.1;这两个程序片段哪个进行向量化效率更高?1) R=XR*1.3;G=XG*1.8;B=XB*1.1; 2) R=X[0]*1.3;G=X[1]*1.8;B=X[2]*1.1;这两个程序片段哪个进行向量化效率更高?A.1)B.2)C.不确定D.以上皆错参考答案:B13. pthread_rwlock_rdlock是对读写锁进行_____操作。
A.加锁B.解锁C.加读琐D.加写锁参考答案:C14. 在使用互斥量之后必须对其进行( )A.初始化B.加锁C.解锁D.销毁参考答案:D15. 采用MPI主从模型解决矩阵每行排序问题,主进程每次向一个从进程发送10行作为一个任务相对于每次发送1行的缺点是_____A.更不利于负载均衡B.增大了通信开销C.提高了计算次数D.增加了从进程空闲参考答案:A16. OpenMP的缺点不包括_____A.常见并行结构的表达并不总可行B.局部性处理不易C.不易编写多核单核通用程序D.性能控制不易参考答案:C17. 对一个串行程序进行SIMD并行化,应重点考虑的程序部分是( )A.声明语句B.条件分支语句C.循环语句D.输入输出语句参考答案:C18. OpenMP归约指令采用的是一种_____算法A.分治B.贪心C.动态规划D.排序参考答案:A19. 单精度浮点数矩阵乘法进行AVX并行,期望的加速比为_____A.等于8B.小于8C.4到8之间D.等于4参考答案:B20. 在对互斥量进行解锁时,还会执行( )操作A.互斥量初始化B.互斥量销毁C.唤醒阻塞线程D.以上皆错参考答案:C21. MPI原址收发各一条消息的API是_____。
A.MPI_SendrecvB.MPI_SendC.MPI_RecvD.MPI_Sendrecv_Replace参考答案:D22. 在使用条件变量之后必须对其进行____在使用条件变量之后必须对其进行____A.初始化B.加锁C.解锁D.销毁参考答案:D23. n个数求和的问题,使用n个处理器的并行算法达到了logn的运行时间,则算法____n个数求和的问题,使用n个处理器的并行算法达到了logn的运行时间,则算法____A.肯定不是代价最优B.肯定是代价最优C.不确定是否代价最优D.以上皆错参考答案:A24. SSE intrinsics_mm_store_ps命令的功能是( )A.对齐向量存单精度浮点数B.未对齐向量存单精度浮点数C.对齐标量存单精度浮点数D.未对齐标量存单精度浮点数参考答案:A25. 采用划分子矩阵(大小b*b)的方法实现n*n矩阵乘法,一次乘加运算涉及的子矩阵可全部放入cache,则整个计算过程中,两个输入矩阵的每个元素会产生次访存A.nB.tC.n-tD.n/t参考答案:D26. 使用一个信号量实现“主线程等待4个从线程完成任务”,信号量初始值应设置为( )。
A.0B.1C.2D.4参考答案:A27. SSE的blend指令的8位二进制整数参数被用做8个掩码imm8[0∶7],若imm8[j]=0则表示( )A.将第一个源寄存器的第j个元素放在目标寄存器位置0B.将第二个源寄存器的第j个元素放在目标寄存器位置0C.将第一个源寄存器的第j个元素放在目标寄存器位置jD.将第二个源寄存器的第j个元素放在目标寄存器位置j参考答案:C28. 对于效率E,下面描述错误的是( )A.理想并行E=1B.总是在0~1之间C.可能1D.可能随着处理器数量增大趋向于0参考答案:B29. MMX有____个专用寄存器MMX有____个专用寄存器A.4B.8C.16D.32参考答案:B30. 执行pthread_rwlock_rdlock时,( )的情况下加锁成功A.已有一个线程上了写锁B.已有多个线程上了写锁C.已有多个线程上了读锁D.已有多个线程上了读锁和写锁参考答案:C31. SSE的shuffle指令的8位二进制整数参数被划分为4个2位二进制整数imm8[0∶3],若imm8[1]=j则表示( )A.将第一个源寄存器的第j个元素放在目标寄存器位置1B.将第二个源寄存器的第j个元素放在目标寄存器位置1C.将第一个源寄存器的第1个元素放在目标寄存器位置1D.将第二个源寄存器的第1个元素放在目标寄存器位置1参考答案:A32. 一个程序用pthread_create创建了4个线程,此时系统中属于这个程序的共有_____线程。
A.4B.5C.6D.7参考答案:B33. 主线程创建了4个从线程然后打印一条信息,从线程打印各自的线程号,未使用任何同步,则主线程打印的消息和从线程打印的线程号的相对顺序_____A.必然主线程前、从线程后B.必然从线程前、主线程后C.必然相互交织D.各种顺序皆有可能参考答案:D34. 条件变量相对于互斥量的优点是_____A.是多源状态B.加锁解锁开销低C.条件不成立时阻塞线程并自动解锁加锁D.以上皆错参考答案:C35. float a[64]; for(i=0; iA.8B.16C.32D.64参考答案:B36. 以下哪条不是推动并行计算发展的因素?( )A.存储是系统瓶颈B.单CPU发展已能满足应用需求C.利用标准硬件构造并行机令升级容易D.编程环境标准化逐步发展参考答案:B37. 单精度浮点数矩阵乘法进行AVX并行,期望的加速比为____.单精度浮点数矩阵乘法进行AVX并行,期望的加速比为____.A.等于8B.小于8C.4到8之间D.等于4参考答案:B38. n个元素排序问题,如果只能通过元素比较交换构造算法,则n个处理器的并行排序算法达到( )的运行时间才是代价最优的。
A.O(logn)B.O(n)C.O(nlogn)D.O(n2)参考答案:A39. pthread_create函数中线程函数指针的正确类型是( )A.void(void*)B.void*(void*)C.int(void)D.void*(*)(void*)参考答案:D40. 两个n*n的矩阵相乘,将所有n^2个乘法计算划分给不同进程,再将对应某行某列的n个乘法结果累加得到结果矩阵对应元素,这是一种划分____的数据并行两个n*n的矩阵相乘,将所有n^2个乘法计算划分给不同进程,再将对应某行某列的n个乘法结果累加得到结果矩阵对应元素,这是一种划分____的数据并行A.输入数据B.中间结果C.输出数据D.临时数据参考答案:B41. 在SSE intrinsics程序中双精度浮点数数据类型是____在SSE intrinsics程序中双精度浮点数数据类型是____A.__m128B.__m128fC.__m128dD.__m128i参考答案:C42. 采用划分子矩阵技术优化矩阵乘法CUDA程序,子矩阵数组变量声明应加___前缀采用划分子矩阵技术优化矩阵乘法CUDA程序,子矩阵数组变量声明应加___前缀。
A.__global__B.__device___C.__shared__D.__private__参考答案:C43. 求解同一个问题的4个并行算法的等效率函数分析结果如下,其中( )的可扩展性最优A.θ(plogp)B.θ(p^2)C.θ(p^2logp)D.θ(p^3)参考答案:A44. 在使用互斥量之后必须对其进行____在使用互斥量之后必须对其进行____A.初始化B.加锁C.解锁D.销毁参考答案:D45. pthread_create函数中设置一个参数为“线程函数参数”的原因是_____A.它调用线程函数。
