南开大学22秋学期《并行程序设计》在线作业答卷.docx
22秋学期(高起本1709-1803,全层次1809-2103)并行程序设计在线作业- 00001试卷总分:100得分:100一、单选题(共50道试题,共100分)1. SSE intrinsics mni_load sd 命令的功能是。A.对齐标量读取单精度浮点数B.未对齐标量读取单精度浮点数C.对齐标量读取双精度浮点数D.未对齐标量读取双精度浮点数答案:C.在使用信号量之后必须对其进行。A.初始化B.解锁C.减1D.销毁答案:D.下列哪门课程不是并行程序设计的先导课?A.计算机概论B.高级语言程序设计C.计算机体系结构D.数据库系统答案:D4. SIMD并行架构的优点不包括 oA.辅助提供更大并发度B.设计简单C.编程简单D.更小的芯片尺寸答案:C.在矩阵乘法的串行程序中,对一部分进行向量化收益最大。A.初始化B.第二个矩阵转置循环C.矩阵元素乘一加计算的循环D.结果输出答案:C. pthread_join的第二个参数的作用是。A.设置指定线程属性B.获取指定线程属性C.向指定线程传递参数D.获取指定线程函数返回结果答案:I).如果运算结果要保存到独立无关的变量,则在向量运算之后需要进行的一个操 作是OA.对齐.打包C.解包D.以上皆错答案:C8.对两个互斥量a> b,线程1执行lock (a) ; lock(b);,线程2执行lock(b); lock (a),则两个线程间会发生oA.竞争条件B.数据依赖C.资源泄漏D.死锁答案:D9.SSE寄存器A和B中元素分别为Al A2 A3 A4和Bl B2 B3 B4(均为由低到高), 则执行C二blend(A, B, 0x05)后,C中元素为A.Al A2 B3 B4Bl B2 A3 A4B. Al B2 A3 B4D.Bl A2 B3 A4答案:D10. C/C+语言存储二维数组采取oA.行主次序存储B.列主次序存储C.交错式存储D.对角线存储答案:A11.单精度浮点数矩阵乘法进行AVX并行,期望的加速比为.A.等于8B.小于8C. 4到8之间D.等于4答案:B12. SIMD 架构中,oA.唯一控制单元控制所有计算单元B.每个计算单元独有控制单元C. 一组计算单元共享一个控制单元D.以上皆错答案:B13.编写n个数求和的OpenMP程序,最高效的方法是。A.多线程直接并发累加到共享变量B.将累加操作设置为临界区C.在累加操作前设置障碍D.采用归约指令答案:D.每个SSE寄存器宽度为 位。A. 3264B. 128256答案:C.互斥量是一种同步机制。A. 一元状态B.二元状态C.多元状态D.以上皆错答案:B16.四位助教帮助教授批改300份试卷,试卷共16道题,每位助教负责批改75份试 卷,这是一种任务划分方法。A.数据并行B.任务并行C.搜索并行D.预测并行答案:A17. Pthread是 线程接口标准。A.LinuxB. POSIXC.WindowsD. IOS答案:B18.在SSE intrinsics程序中整数数据类型是。A. _ml28ml28fC._ml28dD. ml28i答案:I)pthread_rwlock_rdlock是对读写锁进行 操作。A.加锁B.解锁C.加读琐 D.加写锁 答案:Cn个数求和的串行程序,通过一个循环将每个数累加到全局变量sum中,其多线 程版本简单将循环范围改变为每个线程负载的范围,存在的问题是。A.负载不均B.通信开销大B. CPU空闲等待严重D.sum累加产生竞争条件,导致结果错误答案:D21.数据依赖是指必须保持两个内存操作的才能保证程序结果正确。A.大小B.时序C.时长cache局部性答案:B22. OpenMP并行模型是一种编程模型。A.静态线程B.动态线程C.混合线程D.众核答案:B.关于pthread_create的第一个pthread_t参数,下列说法错误的是。A.它是输出参数B.它返回线程系统IDC.它返回线程的pthread IDD.需要为它预先分配内存答案:B.并行算法运行时间是指oA.最快进程花费时间B.所有进程平均花费时间C.所有进程花费总时间D.最慢进程花费时间答案:【).下面哪个问题相对而言更不适合进行数据并行A.求和B.排序C.向量加法D.矩阵乘法答案:B. AVX_512有 个专用寄存器。A.48B. 1632答案:D.在使用条件变量之后必须对其进行oA.初始化B.加锁C.解锁D.销毁答案:D.当问题规模不变时,随着处理器数量增大,加速比A.必然增大B.必然减小C.必然不变D.以上皆错答案:D一个Neon寄存器最多存放一个短整型数。A. 2B.4C.8D. 16答案:C30.动态任务划分相对于静态任务划分的优点是A.确保负载均衡B.通信开俏低C.实现简单D.计算复杂度低答案:A 31.现代CPU中都具有指令乱序执行功能,其目的不包括A.消除指令依赖,更充分利用多流水线B.提同cache效率C.改变计算结果D.消除资源冲突答案:C32.在共享内存架构编程中,线程间不能通过进行通信A.全局变量B.局部变量C.静态变量D.全局堆中变量答案:B33. OpenMP程序和Pthread程序中线程获得自身编号的方式分别是。A.两者均为创建线程时传递参数B.两者均通过特定APIC.前者创建线程时传递参数,后者通过特定APID.前者通过特定API,后者创建线程时传递参数答案:Dfor (i=0; i<16; i+=l) L = Ai+0 - Bi+0; D = D + abs(L) ; ,此循环 oA.可完全向量化B.不可向量化C.不确定D.可部分向量化答案:D35 .单程序多数据流模式是针对架构的。A. SISDSIMDB. MISDMIMD答案:D.在使用条件变量时,还需配套使用一个oA.互斥量B.信号量C障碍D.自旋锁答案:A.全球500强超算在CPU、网络等硬件上越来越体现出采用的趋势。A.特殊硬件B.通用硬件C.非公开硬件D.廉价硬件答案:BOpenMP中多线程间是一种 关系。A.主从B.分组C.对等D.竞争答案:ASSE是 平台的SIMD架构。A. x86POWERC.SPARCD. ARM答案:A40.多个线程进行并行求和,每个线程将自己负责的值依次读入局部变量x,累加到 全局变量sum上,sum+=x,对此,下面说法正确的是A.读取x存在数据依赖,不能并发进行B.累加顺序被改变,结果是错误的C.加法操作是简单运算,无需同步D.加法操作不是原子操作,需要同步保证数据依赖答案:D.我们不能通过指定OpenMP循环划分策略。A.使用编译指示B.设置环境变量C.调用库函数D.采用默认设置答案:C.以下说法错误的是oA.全归约的高效算法基于多对多广播的高效算法B.全归约高效算法基于一对多广播的高效算法C.前缀和的高效算法基于多对多广播的高效算法D.前缀和的高效算法中的通信模式于全归约的高效算法相似答案:B.编写矩阵乘法的Neon程序,若矩阵元素为双精度浮点数,则应对矩阵乘一加计 算的循环进行路循环展开。A. 2B.4C.8D. 16答案:ACUDA的优点不包括 oA,可移植性B.入门简单C.标准的SPMD模式D.不再需要图形API答案:A1) R=XR*L3;G=XG*1.8;B=XB*L 1; 2) R=X0*L 3;G=8;B=X2*L 1; 这两个程序片段哪个进行向量化效率更高?A. 1)2)C.不确定D.以上皆错答案:B46.编写矩阵乘法的AVX程序,若矩阵元素为单精度浮点数,则应对矩阵乘一加计 算的循环进行路循环展开。A. 2B.4B. 816答案:C47. OpenMP编译指示中说明共享变量是用子句。A.privateB. sharedC.scheduleD. nowait答案:B.动态任务划分相对于静态任务划分的缺点是oA.可能导致负载不均B.通信开销高C.任务粒度粗D.计算复杂度高答案:B. SSE intrinsics _mm_loadu_pd 命令的功能是。A.对齐向量读取单精度浮点数B.未对齐向量读取单精度浮点数C.对齐向量读取双精度浮点数D.未对齐向量读取双精度浮点数答案:D50.互斥量mutex机制,在任何时刻进入它保护的区域。A.允许任意数量任意类型的线程B.允许一个读线程任意个写线程C.允许一个写线程任意个读线程I),只允许一个线程答案:D