20春学期(1709、1803、1809、1903、1909、2003)《并行程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 50 道试题,共 100 分)
1.OpenMP程序和Pthread程序中线程获得自身编号的方式分别是____。
A.前者通过特定API,后者创建线程时传递参数
B.前者创建线程时传递参数,后者通过特定API
C.两者均通过特定API
D.两者均为创建线程时传递参数
2.SSE intrinsics _mm_store_pd命令的功能是____。
A.未对齐标量存双精度浮点数
B.未对齐标量存单精度浮点数
C.对齐向量存双精度浮点数
D.对齐向量存单精度浮点数
3.采用划分子矩阵技术优化矩阵乘法CUDA程序,子矩阵数组变量声明应加___前缀。
A.__shared__
B.__private__
C.__global__
D.__device___
4.对于并行程序设计,下面说法错误的是____。
A.软件开发标准环境发展相对之后
B.算法移植困难
C.天然具有复杂性
D.不应发展这个方向
5.OpenMP编译指示中说明私有变量是用____子句。
A.shared
B.schedule
C.private
D.nowait
6.一个SSE寄存器可容纳____个短整型数。
A.8
B.4
C.2
D.16
7.造成超线性加速比的你原因包括____。
A.问题求解包含不可并行化部分
B.进程间大量通信
C.并行计算工作量显著小于串行计算
D.并行算法导致额外计算
8.对天气预报问题,将大气层划分为5*10^8个网格单元,每个时间步每个网格需200个浮点运算,时间间隔设置为10分钟,计算10天内大气运动,100MFlops计算能力的计算机需要多少天?
A.300
B.100
C.10
D.1
9.在条件不成立时,使用pthread_cond_wait____。
A.解锁互斥量然后令线程阻塞
B.解锁互斥量
C.加锁互斥量
D.令线程阻塞
10.OpenMP是___架构下的一种编程工具。
A.分布式内存
B.共享内存
C.SIMD
D.MISD
11.对两个互斥量a、b,线程1执行lock(a); lock(b);,线程2执行lock(b); lock(a),则两个线程间会发生____。
A.资源泄漏
B.竞争条件
C.死锁
D.数据依赖
12.伸缩性的含义不包括____。
A.程序在更大规模系统下仍能高效运行
B.程序在新硬件下仍能高效运行
C.硬件能升级扩展
D.扩大系统规模构造成本增长不快
13.为利用cache空间局部性,需满足____。
A.程序访问的数据量足够小
B.程序访存模式符合空间局部性特点
C.cache空间足够大
D.cache line足够大
14.主线程要求从线程退出应采用____。
A.pthread_quit
B.pthread_exit
C.pthread_create
D.pthread_cancel
15.在使用信号量之前必须对其进行____。
A.销毁
B.加锁
C.加1
D.初始化
16.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.以上皆错
B.不确定
C.2)
D.1)
17.编写矩阵乘法的SSE程序,若矩阵元素为单精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.8
B.4
C.2
D.16
18.编写矩阵乘法的Neon程序,若矩阵元素为单精度浮点数,则应对矩阵乘—加计算的循环进行____路循环展开。
A.8
B.4
C.2
D.16
19.以下哪条不是推动并行计算发展的因素?
A.编程环境标准化逐步发展
B.存储是系统瓶颈
C.单CPU发展已能满足应用需求
D.利用标准硬件构造并行机令升级容易
20.为了充分利用CPU内的多条流水线,程序应满足____。
A.相邻指令相互依赖
B.相邻指令无依赖性
C.整段程序中指令相互依赖
D.整段程序中指令无依赖性
21.四位助教帮助教授批改300份试卷,试卷共16道题,每位助教负责批改所有试卷的4道题,这是一种____任务划分方法。
A.预测并行
B.数据并行
C.搜索并行
D.任务并行
22.实现任何时刻都只有一个线程进行共享变量更新的OpenMP指令是____。
A.omp reduce
B.omp parallel
C.omp critical
D.omp barrier
23.CUDA的优点不包括____。
A.标准的SPMD模式
B.可移植性
C.入门简单
D.不再需要图形API
24.在下列应用中,SIMD最不适合____。
A.音频处理
B.科学计算
C.数据库查询
D.图像处理
25.在使用互斥量之后必须对其进行____。
A.销毁
B.解锁
C.加锁
D.初始化
26.传统科学和工程实验相对于计算机并行仿真的劣势不包括____。
A.结果不准确
B.时间太长
C.成本太高
D.太危险
27.在SSE intrinsics程序中双精度浮点数数据类型是____。
A.__m128i
B.__m128f
C.__m128d
D.__m128
28.单精度浮点数矩阵乘法进行AVX并行,期望的加速比为____.
A.等于8
B.等于4
C.小于8
D.4到8之间
29.MPI不包括的通信类别是____。
A.计算和数据传输组通信
B.点对点通信
C.数据传输组通信
D.加锁解锁通信
30.多个线程进行并行求和,每个线程将自己负责的值依次读入局部变量x,累加到全局变量sum上,sum+=x,对此,下面说法正确的是
A.读取x存在数据依赖,不能并发进行
B.累加顺序被改变,结果是错误的
C.加法操作是简单运算,无需同步
D.加法操作不是原子操作,需要同步保证数据依赖
31.当处理器数量不变时,随着问题规模增大,加速比____。
A.所有算法都增大
B.所有算法都减小
C.代价最优算法都增大
D.代价最优算法都减小
32.两个n*n的矩阵相乘,将所有n^2个乘法计算划分给不同进程,再将对应某行某列的n个乘法结果累加得到结果矩阵对应元素,这是一种划分____的数据并行。
A.输出数据
B.输入数据
C.临时数据
D.中间结果
33.下面哪个问题相对而言更不适合进行数据并行____。
A.矩阵乘法
B.求和
C.排序
D.向量加法
34.对矩阵乘法进行多线程并行化,对矩阵采用____。
A.随机划分才能实现负载均衡
B.简单均匀块划分即可保证负载均衡
C.循环划分才能实现负载均衡
D.动态划分才能实现负载均衡
35.从线程检查主线程是否要求它退出应采用____。
A.pthread_testcancel
B.pthread_join
C.pthread_exit
D.pthread_cancel
36.OpenMP不会自动地在____位置设置barrier。
A.并行结构结束
B.并行结构开始
C.其他控制结构结束
D.其他控制结构开始
37.每个MMX寄存器宽度为____位。
A.64
B.32
C.256
D.128
38.超级计算机制造越来越关注的一个新的指标是____。
A.计算能力
B.存储能力
C.占地面积
D.功耗
39.现代CPU中都具有指令乱序执行功能,其目的不包括____。
A.消除资源冲突
B.消除指令依赖,更充分利用多流水线
C.改变计算结果
D.提高cache效率
40.对矩阵乘法串行程序主体三重循环的最内层循环进行向量化,则该循环执行完毕后,还需进行SIMD寄存器中几个元素的___操作才能得到结果矩阵的一个元素。
A.排列
B.归约
C.广播
D.交换
41.OpenMP并行模型是一种____模式。
A.SPMD
B.SISD
C.SIMD
D.MISD
42.SIMD架构未见于_____中。
A.计算机集群
B.多媒体扩展
C.图形和游戏处理器
D.协处理器
43.SSE寄存器A中元素为A1 A2 A3 A4(均为由低到高),则执行C=shuffle(A, A, 0x1B)后,C中元素为
A.A4 A3 A2 A1
B.A3 A4 A1 A2
C.A2 A1 A4 A3
D.A1 A2 A3 A4
44.记并行时间为T,串行时间为T’,处理器数量为p,并行效率E的定义是____。
A.pT-T’
B.T’/pT
C.T’/T
D.T’-T
45.SSE指令移动单精度浮点数,不能实现____。
A.将64位数据移动到SSE寄存器高位
B.将64位数据移动到SSE寄存器低位
C.将32位数据移动到SSE寄存器指定位置
D.在两个SSE寄存器高/低64位间移动
46.一个AVX寄存器最多存放____个单精度浮点数。
A.8
B.4
C.2
D.16
47.动态任务划分相对于静态任务划分的缺点是____。
A.通信开销高
B.计算复杂度高
C.可能导致负载不均
D.任务粒度粗
48.关于障碍机制,下面说法错误的是____。
A.属于一种组通信
B.在需要强制线程步调一致时,应使用
C.可用互斥量机制实现
D.会导致快速线程阻塞,不应使用
49.大型医院每天的X光片、CT等医学图像的分析需要____。
A.高性能计算
B.高吞吐率计算
C.以上皆错
D.串行计算即可
50.关于MPI是什么,以下说法错误的是____。
A.编程角度看是C++/Fortran等的库
B.基于SPMD模型
C.一种消息传递编程模型标准
D.一种共享内存编程模型标准