21秋学期(1709、1803、1809、1903、1909、2003、2009、2103、2109)《并行程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 50 道试题,共 100 分)
1.两个矩阵相乘,若矩阵规模大于cache大小,则优化访存的可行方法是____。
A.先将两个矩阵读入cache再进行乘法
B.先转置第一个矩阵再进行乘法
C.先转置第二个矩阵再进行乘法
D.以上皆错
2.若SIMD并行化时遇到对齐问题,下列说法正确的是____。
A.只能使用不对齐访存指令
B.不能进行SIMD并行化
C.对齐开销可能完全抵消SIMD并行收益
D.以上皆错
3.OpenMP不能实现的是____。
A.负责创建和管理线程
B.隐藏栈管理
C.提供同步机制
D.自动并行化
4.MPI_Send和MPI_recv是通过____区分消息。
A.端口号
B.消息名
C.消息标签
D.消息哈希
5.为了充分利用CPU内的多条流水线,程序应满足____。
A.相邻指令无依赖性
B.相邻指令相互依赖
C.整段程序中指令无依赖性
D.整段程序中指令相互依赖
6.使用____无法直接实现“主线程等待4个从线程完成任务”。
A.1个信号量
B.障碍
C.1个互斥量
D.4个互斥量
7.主线程创建了4个从线程,对它们执行pthread_join,然后打印一条信息,从线程打印各自的线程号,未使用任何同步,则主线程打印的消息和从线程打印的线程号的相对顺序____。
A.必然主线程前、从线程后
B.必然从线程前、主线程后
C.必然相互交织
D.各种顺序皆有可能
8.对下面程序,说法正确的是 # pragma omp parallel for num_threads(thread_count) \ reduction(+:sum) for (k = 1; k <= n; k++) { sum += factor/(2*k-1); factor = -factor; }
A.破坏了数据依赖
B.未破坏数据依赖
C.取决于变量声明
D.比临界区方式性能差
9.以下超级计算机中,____不是SIMD架构。
A.CDCSTAR-100
B.757
C.银河
D.天河1号
10.在使用互斥量之前必须对其进行____。
A.初始化
B.加锁
C.解锁
D.销毁
11.一个Neon寄存器最多存放____个短整型数。
A.2
B.4
C.8
D.16
12.在使用信号量之后必须对其进行____。
A.初始化
B.解锁
C.减1
D.销毁
13.n个数求和的串行程序,通过一个循环将每个数累加到全局变量sum中,其多线程版本简单将循环范围改变为每个线程负载的范围,存在的问题是____。
A.负载不均
B.通信开销大
C.CPU空闲等待严重
D.sum累加产生竞争条件,导致结果错误
14.用pthread_barrier_init初始化障碍,应提供的参数不包括____。
A.障碍对象
B.障碍初值
C.障碍属性
D.参与的线程数
15.Flynn分类法中,下面哪种体系结构非常适合向量/矩阵计算的并行化?
A.SISD
B.SIMD
C.MISD
D.MIMD
16.SSE intrinsics _mm_add_ps命令的功能是____。
A.寄存器间单精度浮点数向量加法
B.寄存器间双精度浮点数向量加法
C.寄存器内单精度浮点数加法
D.寄存器内双精度浮点数加法
17.采用搜索分解设计15数码问题的并行算法,不包含下面哪个步骤____。
A.串行生成一定规模的搜索树奥鹏作业答案请进open5.net或请联系QQ/微信:18866732
B.当前每个叶结点为根的子树搜索分配给一个处理器
C.发现解的处理器通知其他处理器
D.将所有处理器的结果组合成最终解
18.在用pthread_mutex_lock对互斥量进行加锁时,若其已上锁,则线程进入____状态。
A.初始化
B.阻塞
C.继续执行
D.销毁
19.对于多线程各自进行本地运算,然后由主线程汇总结果的模式,下面说法正确的是____。
A.在同构核心上,线程运行速度一样,主线程无需等待,直接汇总结果即可
B.线程运行速度可能不一致,必须采用同步保证主线程汇总正确结果
C.太多本地运算,不能体现并行效果,不是好的模式
D.主线程汇总结果在性能上必然不如多线程并行汇总结果
20.SSE intrinsics _mm_hadd_ps命令的功能是____。
A.寄存器间单精度浮点数向量加法
B.寄存器间双精度浮点数向量加法
C.寄存器内单精度浮点数加法
D.寄存器内双精度浮点数加法
21.OpenMP程序和Pthread程序中线程获得自身编号的方式分别是____。
A.两者均为创建线程时传递参数
B.两者均通过特定API
C.前者创建线程时传递参数,后者通过特定API
D.前者通过特定API,后者创建线程时传递参数
22.对单精度浮点数矩阵乘法程序进行SSE并行化,预期加速比为____。
A.等于8
B.4到8之间
C.等于4
D.小于4
23.对单精度浮点计算,MMX最高实现____路并行。
A.2
B.4
C.8
D.16
24.OpenMP编译指示的作用范围是____。
A.其后一个语句
B.其后连续语句
C.其后直到函数结束
D.整个函数
25.SIMD并行化相对于串行执行的额外开销不包括____。
A.数据打包/解包
B.数据传输
C.数据对齐
D.控制流
26.pthread_rwlock_rdlock是对读写锁进行____操作。
A.加锁
B.解锁
C.加读琐
D.加写锁
27.使用一个信号量实现“主线程等待4个从线程完成任务”,信号量初始值应设置为____。
A.0
B.1
C.2
D.4
28.数据依赖是指必须保持两个内存操作的____才能保证程序结果正确。
A.大小
B.时序
C.时长
D.cache局部性
29.在条件成立时使用pthread_cond_signal____。
A.唤醒等待线程
B.解锁互斥量
C.加锁互斥量
D.唤醒等待线程,该线程重新加锁互斥量
30.主线程要求从线程退出应采用____。
A.pthread_create
B.pthread_exit
C.pthread_quit
D.pthread_cancel
31.如果运算结果要保存到独立无关的变量,则在向量运算之后需要进行的一个操作是____。
A.对齐
B.打包
C.解包
D.以上皆错
32.当前CPU性能提升已从依赖时钟频率提升转为更多依赖____。
A.多核和众核技术
B.突破物理局限
C.改善散热
D.采用新材料
33.在使用条件变量之前必须对其进行____。
A.初始化
B.加锁
C.解锁
D.销毁
34.在SSE intrinsics程序中单精度浮点数数据类型是____。
A.__m128
B.__m128f
C.__m128d
D.__m128i
35.将t个线程的局部结果汇总,可采用递归分解并行进行,即,两两汇总,中间结果继续两两汇总,直到剩下唯一的最终结果,其时间复杂度为____。
A.Θ(1)
B.Θ(logt)
C.Θ(t)
D.Θ(tlogt)
36.对划分输入数据的策略,下面说法错误的是____。
A.当输出数据很少时,需划分输入数据
B.当输出数据存在依赖时,需划分输入数据
C.通常最后需要汇总结果
D.由于不是直接划分输出数据,性能会很差
37.推动GPU应用于通用高性能计算爆发式增长的开发工具是____。
A.OpenGL
B.OpenCL
C.DirectX
D.CUDA
38.两个矩阵相乘前将第二个矩阵转置,是使用利用数据访问的_____达到更高的cache命中率。
A.时间局部性
B.空间局部性
C.计算局部性
D.混合局部性
39.如果运算对象是独立无关的变量,则在向量运算之前需____。
A.将变量拷贝到连续区域
B.将变量地址拷贝到连续区域
C.将变量逐个传输到向量寄存器
D.以上皆错
40.对同一个问题的两个任务依赖图G1和G2,以下哪个条件不能表明G1优于G2____。
A.G1顶点权重之和小于G2
B.G1平均并发度大于G2
C.G1关键路径长度小于G2
D.G1顶点权重之和除以关键路径长度大于G2
41.OpenMP编译指示是以____开头的。
A.”#include”
B.”#ifdef”
C.”#pragam”
D.”#else”
42.除了用于解决竞争条件外,互斥量还可用于____。
A.解决共享资源竞争的问题
B.解决并发度低的问题
C.解决通信开销大的问题
D.解决负载不均的问题
43.SSE的shuffle指令的8位二进制整数参数被划分为4个2位二进制整数imm8[0:3],若imm8[2]=j则表示___。
A.将第一个源寄存器的第j个元素放在目标寄存器位置2
B.将第二个源寄存器的第j个元素放在目标寄存器位置2
C.将第一个源寄存器的第2个元素放在目标寄存器位置2
D.将第二个源寄存器的第2个元素放在目标寄存器位置2
44.任务依赖图中顶点权重之和表示____。
A.任务数
B.任务难度
C.串行执行时间
D.并行执行时间
45.指定线程间划分循环策略的OpenMP子句是____。
A.shared
B.reduction
C.schedule
D.nowait
46.超立方中相邻节点二进制编号____。
A.至少差1位
B.至多差1位
C.恰好差1位
D.差异不固定
47.对矩阵乘法进行多线程并行化,对矩阵采用____。
A.简单均匀块划分即可保证负载均衡
B.循环划分才能实现负载均衡
C.动态划分才能实现负载均衡
D.随机划分才能实现负载均衡
48.下面哪种架构最适合数据并行____。
A.SISD
B.SIMD
C.MISD
D.MIMD
49.对于搜索分解,下面哪个说法是错误的_____。
A.所有子树搜索任务都必须全部完成
B.工作量可能大于串行计算
C.工作量可能小于串行计算
D.可能产生超线性加速比
50.静态任务划分相对于动态任务划分的缺点是____。
A.可能导致负载不均
B.通信开销高
C.计算复复杂度高
D.任务粒度粗
转载请注明:奥鹏作业之家 » 【奥鹏】南开21秋学期《并行程序设计》在线作业