可做奥鹏各院校作业、国开形考作业、在线作业、离线作业、毕业论文, 微信:wxxygzs
南开21秋学期(1709、1803、1809、1903、1909、2003、2009、2103、2109)《并行程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 50 道试题,共 100 分)
1.一个SSE寄存器可容纳____个短整型数。
A.2
B.4
C.8
D.16
2.采用划分子矩阵技术优化矩阵乘法CUDA程序,子矩阵数组变量声明应加___前缀。
A.__global__
B.__device___
C.__shared__
D.__private__
3.起泡排序改为奇偶转置排序,消除了循环步间的数据依赖的原因是____。
A.增大了元素比较距离
B.减小了元素比较距离
C.改为元素两两分组比较
D.消除了元素比较
4.求解同一个问题的4个并行算法的等效率函数分析结果如下,其中____的可扩展性最优。
A.Θ(plogp)
B.Θ(p^2)
C.Θ(p^2logp)
D.Θ(p^3)
5.为防止编译器不支持OpenMP,应使用____实现OpenMP代码和普通代码的条件编译。
A."#include "
B."#pragma omp parallel"
C."#ifdef _OPENMP"
D."#define _OPENMP"
6.利用cache line一次读取多个数据字的机制优化程序访存性能,其机理是____。
A.降低了访存延迟
B.隐藏了访存延迟
C.利用了cache空间局部性
D.利用了cache时间局部性
7.有大量分支指令的程序不适合下面哪种体系结构上进行并行化?
A.SISD
B.SIMD
C.SPMD
D.MIMD
8.CPU cache大小为32KB,如希望(单精度浮点数)矩阵乘法计算过程中所有数据都驻留cache中,则矩阵大小最大为
A.16*16
B.32*32
C.64*64
D.128*128
9.pthread_join的第二个参数的作用是____。
A.设置指定线程属性
B.获取指定线程属性
C.向指定线程传递参数
D.获取指定线程函数返回结果
10.在分布式内存架构编程中,进程间不能____。
A.进行通信
B.进行同步
C.发送和接收消息
D.通过读写变量交换数据
11.关于OpenMP循环并行程序的编写,下列说法中正确的是____。
A.程序员需要编写线程创建和管理代码
B.程序员需要编写循环划分代码
C.程序员需要编写调度策略代码
D.程序员只需指出对哪个循环进行并行,循环划分和调度策略是什么
12.在SSE intrinsics程序中双精度浮点数数据类型是____。
A.__m128
B.__m128f
C.__m128d
D.__m128i
13.在使用条件变量之后必须对其进行____。
A.初始化
B.加锁
C.解锁
D.销毁
14.采用搜索分解设计15数码问题的并行算法,不包含下面哪个步骤____。
A.串行生成一定规模的搜索树
B.当前每个叶结点为根的子树搜索分配给一个处理器
C.发现解的处理器通知其他处理器
D.将所有处理器的结果组合成最终解
15.静态任务划分相对于动态任务划分的缺点是____。
A.可能导致负载不均
B.通信开销高
C.计算复复杂度高
D.任务粒度粗
16.OpenMP能实现的是____。
A.避免数据竞争
B.提供任务划分策略
C.确保加速
D.确保降低通信开销
17.忙等待方法解决竞争条件的思路是____。
A.令CPU一直处于忙碌状态无法产生竞争条件
B.令存在数据依赖的内存操作充分并行
C.强制多线程进入临界区的顺序来将存在数据依赖内存操作串行化
D.以上皆错
18.矩阵乘法问题更适合使用MPI的____编程模型。
A.阻塞的
B.非阻塞的
C.对等的
D.主从的
19.采用多核、众核技术提升CPU性能,相对于单核的优势不包括____。
A.架构设计更容易
B.更易突破物理极限
C.能更充分利用现有资源
D.功耗优势明显
20.计算并行起泡排序算法的加速比,应该选择____串行算法的运行时间作为串行时间。
A.起泡排序
B.插入排序
C.快速排序
D.归并排序
21.主线程创建了4个线程,它们打印各自的线程号(0-3),未使用任何同步,则输出顺序____。
A.必然是0 1 2 3
B.必然是4 3 2 1
C.不可能是4 3 2 1
D.以上皆错
22.并行算法的额外开销不包括____。
A.进程间通信
B.进程等待I/O
C.进程空闲
D.额外计算
23.OpenMP的循环调度策略不会影响算法的____。
A.负载均衡
B.调度开销
C.计算总量
D.数据局部性
24.n个数求和的串行程序,通过一个循环将每个数累加到全局变量sum中,其多线程版本简单将循环范围改变为每个线程负载的范围,存在的问题是____。
A.负载不均
B.通信开销大
C.CPU空闲等待严重
D.sum累加产生竞争条件,导致结果错误
25.若SIMD并行化时遇到对齐问题,下列说法正确的是____。
A.只能使用不对齐访存指令
B.不能进行SIMD并行化
C.对齐开销可能完全抵消SIMD并行收益
D.以上皆错
26.CPU cache大小为32KB,64*64的两个矩阵进行加法计算,下面说法正确的是____。
A.可利用cache时间局部性优化性能
B.可利用cache空间局部性优化性能
C.可通过矩阵分片优化性能
D.访存方面无优化可能
27.SSE intrinsics _mm_store_pd命令的功能是____。
A.对齐向量存单精度浮点数
B.未对齐标量存单精度浮点数
C.对齐向量存双精度浮点数
D.未对齐标量存双精度浮点数
28.for (i=0; i<16; i+=1) { L = A[i+0] – B[i+0]; D = D + abs(L); },此循环____。
A.可完全向量化
B.不可向量化
C.不确定
D.可部分向量化
29.关于OpenMP循环并行程序的编写,下列说法中不正确的是____。
A.程序员无需编写线程创建和管理代码
B.程序员无需编写循环划分代码
C.程序员需指出哪个循环应并行
D.程序员需编写线程同步代码
30.使用____无法直接实现“主线程唤醒4个从线程去执行任务”。
A.1个信号量
B.障碍
C.1个互斥量
D.4个互斥量
31.多对多广播/归约高效算法基于____。
A.递归思想
B.流水线思想
C.分治思想
D.贪心思想
32.OpenMP的优点不包括____。
A.从头编写并行程序很自然
B.串行程序并行化简单
C.不必关心低层细节
D.可移植、可扩展
33.SSE intrinsics _mm_load_pd命令的功能是____。
A.对齐向量读取单精度浮点数
B.未对齐向量读取单精度浮点数
C.对齐向量读取双精度浮点数
D.未对齐向量读取双精度浮点数
34.对奇偶转置排序进行OpenMP并行化,第一种策略是直接对内层循环使用omp parallel for指令,第二种策略是对外层循环使用omp parallel指令,对内层循环使用omp for指令,后者相对于前者的优点是____。
A.保持了数据依赖
B.消除了大量线程创建、销毁开销
C.有利于负载均衡
D.减少了线程间交互
35.执行pthread_rwlock_rdlock时,____的情况下线程进入阻塞。
A.已有一个线程上了读锁
B.已有一个线程上了写锁
C.已有多个线程上了读锁
D.已有多个线程上了写锁
36.OpenMP是___架构下的一种编程工具。
A.SIMD
B.MISD
C.共享内存
D.分布式内存
37.FORTRAN语言存储二维数组采取____。
A.行主次序存储
B.列主次序存储
C.交错式存储
D.对角线存储
38.以下哪条不是推动并行计算发展的因素?
A.存储是系统瓶颈
B.单CPU发展已能满足应用需求
C.利用标准硬件构造并行机令升级容易
D.编程环境标准化逐步发展
39.以下哪种数据集合不能用一个MPI的自定义数据类型表示____。
A.对角矩阵元素
B.矩阵中为0元素
C.矩阵中一列元素
D.上三角矩阵中元素
40.下面矩阵运算中,哪个进行简单的数据并行效果不佳____。
A.矩阵求和
B.矩阵相乘
C.矩阵向量相乘
D.高斯消去
41.两个矩阵相乘,将其划分为b*b大小的子矩阵,采用子矩阵乘—加的方式完成矩阵乘法,则b与cache大小C之间的关系为____时性能最好
A.b*b<=C
B.2*b*b<=C
C.3*b*b<=C
D.8*b*b<=C
42.MPI的通信是____。
A.无类型传输
B.弱类型传输
C.强类型传输
D.以上皆错
43.OpenMP最常见的编程方式是寻找串行程序中____结构进行并行化。
A.赋值语句
B.循环语句
C.递归
D.输出语句
44.主线程要求从线程退出应采用____。
A.pthread_create
B.pthread_exit
C.pthread_quit
D.pthread_cancel
45.采用MPI主从模型解决矩阵每行排序问题,主进程每次向一个从进程发送10行作为一个任务相对于每次发送1行的优点是____。
A.更有利于负载均衡
B.减少了通信开销
C.降低了计算次数
D.减少了从进程空闲
46.GPU相对于其他众核产品的优势不包括____。
A.平台普及
B.有CUDA这样易学的开发工具
C.性价比高
D.由英伟达公司一家把控
47.动态线程编程模式的优点是____。
A.线程创建开销低
B.线程管理开销低
C.线程终止开销低
D.系统资源利用率高
48.编写矩阵乘法的AVX程序,若矩阵元素为双精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.2
B.4
C.8
D.16
49.每个MMX寄存器宽度为____位。
A.32
B.64
C.128
D.256
50.float a[64]; for (i=0; i<64; i+=4) Va = a[i:i+3]; 此向量化程序内存访问完全对齐,每个循环步恰好是一次对齐的内存访问,则该系统向量化访存是按____字节对齐。
A.8
B.16
C.32
D.64