22秋学期(高起本1709-1803、全层次1809-2103)《并行程序设计》在线作业-00001
试卷总分:100 得分:100
一、单选题 (共 50 道试题,共 100 分)
1.SSE intrinsics _mm_load_sd命令的功能是____。
A.对齐标量读取单精度浮点数
B.未对齐标量读取单精度浮点数
C.对齐标量读取双精度浮点数
D.未对齐标量读取双精度浮点数
2.在使用信号量之后必须对其进行____。
A.初始化
B.解锁
C.减1
D.销毁
3.下列哪门课程不是并行程序设计的先导课?
A.计算机概论
B.高级语言程序设计
C.计算机体系结构
D.数据库系统
4.SIMD并行架构的优点不包括____。
A.辅助提供更大并发度
B.设计简单
C.编程简单
D.更小的芯片尺寸
5.在矩阵乘法的串行程序中,对____部分进行向量化收益最大。
A.初始化
B.第二个矩阵转置循环
C.矩阵元素乘—加计算的循环
D.结果输出
6.pthread_join的第二个参数的作用是____。
A.设置指定线程属性
B.获取指定线程属性
C.向指定线程传递参数
D.获取指定线程函数返回结果
7.如果运算结果要保存到独立无关的变量,则在向量运算之后需要进行的一个操作是____。
A.对齐
B.打包
C.解包
D.以上皆错
8.对两个互斥量a、b,线程1执行lock(a); lock(b);,线程2执行lock(b); lock(a),则两个线程间会发生____。
A.竞争条件
B.数据依赖
C.资源泄漏
D.死锁
9.SSE寄存器A和B中元素分别为A1 A2 A3 A4和B1 B2 B3 B4(均为由低到高),则执行C=blend(A, B, 0x05)后,C中元素为
A.A1 A2 B3 B4
B.B1 B2 A3 A4
C.A1 B2 A3 B4
D.B1 A2 B3 A4
10.C/C++语言存储二维数组采取____。
A.行主次序存储
B.列主次序存储
C.交错式存储
D.对角线存储
11.单精度浮点数矩阵乘法进行AVX并行,期望的加速比为____.
A.等于8
B.小于8
C.4到8之间
D.等于4
12.SIMD架构中,_____。
A.唯一控制单元控制所有计算单元
B.每个计算单元独有控制单元
C.一组计算单元共享一个控制单元
D.以上皆错
13.编写n个数求和的OpenMP程序,最高效的方法是____。
A.多线程直接并发累加到共享变量
B.将累加操作设置为临界区
C.在累加操作前设置障碍
D.采用归约指令
14.每个SSE寄存器宽度为____位。
A.32
B.64
C.128
D.256
15.互斥量是一种____同步机制。
A.一元状态
B.二元状态
C.多元状态
D.以上皆错
16.四位助教帮助教授批改300份试卷,试卷共16道题,每位助教负责批改75份试卷,这是一种____任务划分方法。
A.数据并行
B.任务并行
C.搜索并行
D.预测并行
17.Pthread是_____线程接口标准。
A.Linux
B.POSIX
C.Windows
D.IOS
18.在SSE intrinsics程序中整数数据类型是____。
A.__m128
B.__m128f
C.__m128d
D.__m128i
19.pthread_rwlock_rdlock是对读写锁进行____操作。
A.加锁
B.解锁
C.加读琐
D.加写锁
20.n个数求和的串行程序,通过一个循环将每个数累加到全局变量sum中,其多线程版本简单将循环范围改变为每个线程负载的范围,存在的问题是____。
A.负载不均
B.通信开销大
C.CPU空闲等待严重
D.sum累加产生竞争条件,导致结果错误
21.数据依赖是指必须保持两个内存操作的____才能保证程序结果正确。
A.大小
B.时序
C.时长
D.cache局部性
22.OpenMP并行模型是一种____编程模型。
A.静态线程
B.动态线程
C.混合线程
D.众核
23.关于pthread_create的第一个pthread_t参数,下列说法错误的是____。
A.它是输出参数
B.它返回线程系统ID
C.它返回线程的pthread ID
D.需要为它预先分配内存
24.并行算法运行时间是指____。
A.最快进程花费时间
B.所有进程平均花费时间
C.所有进程花费总时间
D.最慢进程花费时间
25.下面哪个问题相对而言更不适合进行数据并行____。
A.求和
B.排序
C.向量加法
D.矩阵乘法
26.AVX_512有____个专用寄存器。
A.4
B.8
C.16
D.32
27.在使用条件变量之后必须对其进行____。
A.初始化
B.加锁
C.解锁
D.销毁
28.当问题规模不变时,随着处理器数量增大,加速比____。
A.必然增大
B.必然减小
C.必然不变
D.以上皆错
29.一个Neon寄存器最多存放____个短整型数。
A.2
B.4
C.8
D.16
30.动态任务划分相对于静态任务划分的优点是____。
A.确保负载均衡
B.通信开销低
C.实现简单
D.计算复杂度低
31.现代CPU中都具有指令乱序执行功能,其目的不包括____。
A.消除指令依赖,更充分利用多流水线
B.提高cache效率
C.改变计算结果
D.消除资源冲突
32.在共享内存架构编程中,线程间不能通过____进行通信
A.全局变量
B.局部变量
C.静态变量
D.全局堆中变量
33.OpenMP程序和Pthread程序中线程获得自身编号的方式分别是____。
A.两者均为创建线程时传递参数
B.两者均通过特定API
C.前者创建线程时传递参数,后者通过特定API
D.前者通过特定API,后者创建线程时传递参数
34.for (i=0; i<16; i+=1) { L = A[i+0] – B[i+0]; D = D + abs(L); },此循环____。
A.可完全向量化
B.不可向量化
C.不确定
D.可部分向量化
35.单程序多数据流模式是针对____架构的。
A.SISD
B.SIMD
C.MISD
D.MIMD
36.在使用条件变量时,还需配套使用一个____。
A.互斥量
B.信号量
C.障碍
D.自旋锁
37.全球500强超算在CPU、网络等硬件上越来越体现出采用____的趋势。
A.特殊硬件
B.通用硬件
C.非公开硬件
D.廉价硬件
38.OpenMP中多线程间是一种____关系。
A.主从
B.分组
C.对等
D.竞争
39.SSE是____平台的SIMD架构。
A.x86
B.POWER
C.SPARC
D.ARM
40.多个线程进行并行求和,每个线程将自己负责的值依次读入局部变量x,累加到全局变量sum上,sum+=x,对此,下面说法正确的是
A.读取x存在数据依赖,不能并发进行
B.累加顺序被改变,结果是错误的
C.加法操作是简单运算,无需同步
D.加法操作不是原子操作,需要同步保证数据依赖
41.我们不能通过____指定OpenMP循环划分策略。
A.使用编译指示
B.设置环境变量
C.调用库函数
D.采用默认设置
42.以下说法错误的是____。
A.全归约的高效算法基于多对多广播的高效算法
B.全归约高效算法基于一对多广播的高效算法
C.前缀和的高效算法基于多对多广播的高效算法
D.前缀和的高效算法中的通信模式于全归约的高效算法相似
43.编写矩阵乘法的Neon程序,若矩阵元素为双精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.2
B.4
C.8
D.16
44.CUDA的优点不包括____。
A.可移植性
B.入门简单
C.标准的SPMD模式
D.不再需要图形API
45.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.以上皆错
46.编写矩阵乘法的AVX程序,若矩阵元素为单精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.2
B.4
C.8
D.16
47.OpenMP编译指示中说明共享变量是用____子句。
A.private
B.shared
C.schedule
D.nowait
48.动态任务划分相对于静态任务划分的缺点是____。
A.可能导致负载不均
B.通信开销高
C.任务粒度粗
D.计算复杂度高
49.SSE intrinsics _mm_loadu_pd命令的功能是____。
A.对齐向量读取单精度浮点数
B.未对齐向量读取单精度浮点数
C.对齐向量读取双精度浮点数
D.未对齐向量读取双精度浮点数
50.互斥量mutex机制,在任何时刻____进入它保护的区域。
A.允许任意数量任意类型的线程
B.允许一个读线程任意个写线程
C.允许一个写线程任意个读线程
D.只允许一个线程
奥鹏,国开,广开,电大在线,各省平台,新疆一体化等平台学习
详情请咨询QQ : 3230981406或微信:aopopenfd777