24秋学期(高起本:1709-2103、专升本/高起专:2003-2103)《并行程序设计》在线作业-00003
试卷总分:100 得分:100
一、单选题 (共 50 道试题,共 100 分)
1.MPI程序中默认的通信域是____。
A.MPI_ANY_SOURCE
B.MPI_ANY_TAG
C.MPI_ANY_COMM
D.MPI_COMM_WORLD
2.下列子句中____不是OpenMP的同步指令。
A.nowait
B.critical
C.atomic
D.barrier
3.MPI基本原语不包括____。
A.MPI_Barrier
B.MPI_Comm_rank
C.MPI_Comm_size
D.MPI_Init
4.下面说法错误的是____。
A.不存在权威的并行体系结构
B.学习并行程序设计只关心软件即可
C.并行体系结构对性能有巨大影响
D.很多并行体系结构未来发展不明了
5.创建线程时,我们通过____将线程号分别传递给每个线程。
A.全局变量
B.局部变量
C.动态分配变量
D.pthread_create的“线程函数参数”参数
6.Pthread是_____线程接口标准。
A.Linux
B.POSIX
C.Windows
D.IOS
7.pthread_join的作用是____。
A.强制终止指定线程
B.检测指定线程是否结束
C.等待指定线程结束才返回
D.向指定线程发送数据
8.编译器编译OpenMP并行循环时,会自动生成一些代码,其中不包括____。
A.创建和管理线程代码
B.循环划分给线程的代码
C.找出数据依赖的代码
D.线程同步的代码
9.OpenMP并行模型是一种____编程模型。
A.静态线程
B.动态线程
C.混合线程
D.众核
10.一个Neon寄存器最多存放____个双精度浮点数。
A.2
B.4
C.8
D.16
11.在矩阵乘法之前将第二个矩阵转置,其作用不包括____。
A.增大访存空间局部性
B.减少运算次数
C.优化SIMD访存
D.以上皆错
12.C/C++语言存储二维数组采取____。
A.行主次序存储
B.列主次序存储
C.交错式存储
D.对角线存储
13.造成超线性加速比的原因包括____。
A.进程间大量通信
B.并行算法导致额外计算
C.并行计算工作量显著小于串行计算
D.问题求解包含不可并行化部分
14.在用pthread_mutex_lock对互斥量进行加锁时,若其已上锁,则线程进入____状态。
A.初始化
B.阻塞
C.继续执行
D.销毁
15.链表数据结构的查找、插入、删除等操作,既有对链表的读也有对链表的写,对此,采用互斥量加解锁整个链表的同步机制相比加解锁每个节点的方式的缺点是____。
A.粒度太粗,节点读写一致性不能保证
B.粒度太粗,线程不必要的等待
C.粒度太细,加解锁开销大
D.粒度太细,总体读写一致性不能保证
16.SSE的blend指令的8位二进制整数参数被用做8个掩码imm8[0:7],若imm8[j]=1则表示___。
A.将第一个源寄存器的第j个元素放在目标寄存器位置1
B.将第二个源寄存器的第j个元素放在目标寄存器位置1
C.将第一个源寄存器的第j个元素放在目标寄存器位置j
D.将第二个源寄存器的第j个元素放在目标寄存器位置j
17.SSE intrinsics _mm_store_sd命令的功能是____。
A.对齐向量存单精度浮点数
B.未对齐向量存单精度浮点数
C.对齐标量存双精度浮点数
D.未对齐标量存双精度浮点数
18.将寄存器设置为4个单精度浮点数0.0的SSE intrinsics指令是____。
A._mm_set_ps
B._mm_set1_ss
C._mm_setzero_ss
D._mm_setzero_ps
19.SSE寄存器A中元素为A1 A2 A3 A4(均为由低到高),则执行C=shuffle(A, A, 0x1B)后,C中元素为
A.A1 A2 A3 A4
B.A2 A1 A4 A3
C.A3 A4 A1 A2
D.A4 A3 A2 A1
20.每个AVX寄存器宽度为____位。
A.32
B.64
C.128
D.256
21.一个Neon寄存器最多存放____个短整型数。
A.2
B.4
C.8
D.16
22.MPI原址收发各一条消息的API是_____。
A.MPI_Sendrecv
B.MPI_Send
C.MPI_Recv
D.MPI_Sendrecv_Replace
23.链表数据结构的查找、插入、删除等操作,既有对链表的读也有对链表的写,对此,采用互斥量加解锁每个节点的同步机制相比加解锁整个链表的方式的缺点是____。
A.粒度太粗,节点读写一致性不能保证
B.粒度太粗,线程不必要的等待
C.粒度太细,加解锁开销大
D.粒度太细,总体读写一致性不能保证
24.Neon是____平台的SIMD架构。
A.x86
B.POWER
C.SPARC
D.ARM
25.超立方中相邻节点二进制编号____。
A.至少差1位
B.至多差1位
C.恰好差1位
D.差异不固定
26.我国首次获得戈登?贝尔奖是在____年。
A.2015
B.2016
C.2017
D.2018
27.指定线程间划分循环策略的OpenMP子句是____。
A.shared
B.reduction
C.schedule
D.nowait
28.对矩阵乘法进行多线程并行化,对矩阵采用____。
A.简单均匀块划分即可保证负载均衡
B.循环划分才能实现负载均衡
C.动态划分才能实现负载均衡
D.随机划分才能实现负载均衡
29.for (i=2; i<10; i++) A[i] = A[i-2]+1; 此循环____数据依赖。
A.存在
B.不存在
C.不确定
D.以上皆错
30.OpenMP的循环调度策略不会影响算法的____。
A.负载均衡
B.调度开销
C.计算总量
D.数据局部性
31.MPI收发各一条消息的API是_____。
A.MPI_Sendrecv
B.MPI_Send
C.MPI_Recv
D.MPI_Replace
32.SSE intrinsics _mm_store_pd命令的功能是____。
A.对齐向量存单精度浮点数
B.未对齐标量存单精度浮点数
C.对齐向量存双精度浮点数
D.未对齐标量存双精度浮点数
33.竞争条件是指程序执行过程中两个或多个事件的____影响执行结果。
A.时序
B.时长
C.结果
D.运算对象
34.编写矩阵乘法的SSE程序,若矩阵元素为单精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.2
B.4
C.8
D.16
35.采用划分子矩阵(大小b*b)的方法实现n*n矩阵乘法,一次乘—加运算涉及的子矩阵可全部放入cache,则整个计算过程中,两个输入矩阵的每个元素会产生____次访存。
A.n
B.t
C.n-t
D.n/t
36.SIMD并行模式是将多个____运算打包并发执行。
A.不同
B.相同
C.混合
D.依赖
37.互斥量mutex机制,在任何时刻____进入它保护的区域。
A.允许任意数量任意类型的线程
B.允许一个读线程任意个写线程
C.允许一个写线程任意个读线程
D.只允许一个线程
38.一个SSE寄存器可容纳____个短整型数。
A.2
B.4
C.8
D.16
39.通常忙等待方法的性能要比互斥量方法的性能____。
A.更高
B.更低
C.高低不确定
D.以上皆错
40.SSE intrinsics _mm_hadd_ps命令的功能是____。
A.寄存器间单精度浮点数向量加法
B.寄存器间双精度浮点数向量加法
C.寄存器内单精度浮点数加法
D.寄存器内双精度浮点数加法
41.动态线程编程模式的优点是____。
A.线程创建开销低
B.线程管理开销低
C.线程终止开销低
D.系统资源利用率高
42.关于omp single指令,下面说法错误的是____。
A.线程组中只有一个线程执行代码
B.用于I/O或初始化等任务
C.是保持数据依赖所必须的
D.入口或出口无隐式barrier
43.对奇偶转置排序进行OpenMP并行化,第一种策略是直接对内层循环使用omp parallel for指令,第二种策略是对外层循环使用omp parallel指令,对内层循环使用omp for指令,后者相对于前者的优点是____。
A.保持了数据依赖
B.消除了大量线程创建、销毁开销
C.有利于负载均衡
D.减少了线程间交互
44.n个节点的线性阵列中,节点最远通信距离为____。
A.1
B.O(logn)
C.O(sqrt(n))
D.O(n)
45.下列哪门课程不是并行程序设计的先导课?
A.计算机概论
B.高级语言程序设计
C.计算机体系结构
D.数据库系统
46.关于MPI是什么,以下说法错误的是____。
A.一种消息传递编程模型标准
B.一种共享内存编程模型标准
C.编程角度看是C++/Fortran等的库
D.基于SPMD模型
47.MPI是用于____系统的并行编程模型。
A.SIMD
B.MISD
C.共享内存
D.分布式内存
48.在使用条件变量之后必须对其进行____。
A.初始化
B.加锁
C.解锁
D.销毁
49.编写矩阵乘法的AVX程序,若矩阵元素为双精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.2
B.4
C.8
D.16
50.关于障碍机制,下面说法错误的是____。
A.会导致快速线程阻塞,不应使用
B.在需要强制线程步调一致时,应使用
C.可用互斥量机制实现
D.属于一种组通信