南开大学物联网工程专业《并行程序设计》作业及答案5

SSE intrinsics_mm_store_ps命令的功能是()。

A.对齐向量存单精度浮点数

B.未对齐向量存单精度浮点数

C.对齐标量存单精度浮点数

D.未对齐标量存单精度浮点数

本题答案:
A
for (i=0;i<16;i+=1){L=A[i+0]-B[i+0];D=D+abs(L);},此循环()。

A.可完全向量化

B.不可向量化

C.不确定

D.可部分向量化

本题答案:
D
对这样的循环for(i=0;i<100;i+=1) A[i+0]=A[i+0]+B[i+0]; 进行向量化,基本技术手段是()。

A.循环划分

B.循环消除

C.循环展开

D.以上皆错

本题答案:
C
MMX有()个专用寄存器。

A.4

B.8

C.16

D.32

本题答案:
B
编译器编译OpenMP并行循环时,会自动生成一些代码,其中不包括()。

A.创建和管理线程代码

B.循环划分给线程的代码

C.找出数据依赖的代码

D.线程同步的代码

本题答案:
C
创建线程时,我们通过()将线程号分别传递给每个线程。

A.全局变量

B.局部变量

C.动态分配变量

D.pthread_create的“线程函数参数”参数

本题答案:
D
下列哪项不是这门课程的目标?()

A.学会肯定能优化程序性能的方法

B.学会用并行思维思考问题

C.学会常用的并行编程工具

D.理解软件到并行架构的映射

本题答案:
A
编写n个数求和的OpenMP程序,最高效的方法是()。

A.多线程直接并发累加到共享变量

B.将累加操作设置为临界区

C.在累加操作前设置障碍

D.采用归约指令

本题答案:
D
静态线程编程模式的缺点是()。

A.线程管理开销高

B.系统资源利用率低

C.线程负载不均

D.线程通信开销高

本题答案:
B
采用MPI主从模型解决矩阵每行排序问题,主进程每次向一个从进程发送10行作为一个任务相对于每次发送1行的优点是()。

A.更有利于负载均衡

B.减少了通信开销

C.降低了计算次数

D.减少了从进程空闲

本题答案:
B
MPI收发各一条消息的API是()。

A.MPI_Sendrecv

B.MPI_Send

C.MPI_Recv

D.MPI_Replace

本题答案:
A
两个矩阵相乘,若矩阵规模大于cache大小,则优化访存的可行方法是()。

A.先将两个矩阵读入cache再进行乘法

B.先转置第一个矩阵再进行乘法

C.先转置第二个矩阵再进行乘法

D.以上皆错

本题答案:
C
多个线程进行并行求和,每个线程将自己负责的值依次读入局部变量x,累加到全局变量sum上,sum+=x,对此,下面说法正确的是()。

A.读取x存在数据依赖,不能并发进行

B.累加顺序被改变,结果是错误的

C.加法操作是简单运算,无需同步

D.加法操作不是原子操作,需要同步保证数据依赖

本题答案:
D
记并行时间为T,串行时间为T',处理器数量为p,则额外开销应如何计算?()

A.T'-T

B.T-T'

C.pT

D.pT-T'

本题答案:
D
编写矩阵乘法的Neon程序,若矩阵元素为单精度浮点数,则应对矩阵乘加计算的循环进行()路循环展开。

A.2

B.4

C.8

D.16

本题答案:
B
在下面问题中,SIMD并行更适合()。

A.搜索

B.排序

C.矩阵乘法

D.构建二叉排序树

记并行时间为T,串行时间为T',处理器数量为p,效率为E,则代价最优的定义是()。

A.pT'=T

B.E=θ(1)

C.E=pT/T'

D.E=T'/pT

对矩阵乘法串行程序主体三重循环的最内层循环进行向量化,则该循环执行完毕后,还需进行SIMD寄存器中几个元素的()操作才能得到结果矩阵的一个元素。

A.排列

B.交换

C.广播

D.归约

对于条件变量,下列说法错误的是()。

A.可以用互斥量实现相同功能

B.不能用互斥量实现相同功能

C.较之互斥量方案节省资源

D.较之互斥量方案代码更简洁

pthread_join的作用是()。

A.强制终止指定线程

B.检测指定线程是否结束

C.等待指定线程结束才返回

D.向指定线程发送数据

以下()是MPI基本原语。

A.MPI_barrier

B.MPI_Comm_numprocs

C.MPI_Comm_rank

D.MPI_Comm_Send

n个元素排序问题,如果只能通过元素比较交换构造算法,则n个处理器的并行排序算法达到()的运行时间才是代价最优的。

A.O(logn)

B.O(n)

C.O(nlogn)

D.O(n2)

以下超级计算机中,()不是SIMD架构。

A.CDCSTAR-100

B.757

C.银河

D.天河1号

下面哪种架构最适合数据并行?()

A.SISD

B.SIMD

C.MISD

D.MIMD

循环需满足特定条件才能进行OpenMP并行化,下列哪个条件是错误的?()

A.循环变量应为带符号整数

B.终止检测必须是与循环不变量的比较

C.循环变量每步递增/递减一个循环不变量

D.循环体无进/出控制流

使用()无法直接实现“主线程唤醒4个从线程去执行任务”。

A.1个信号量

B.障碍

C.1个互斥量

D.4个互斥量

OpenMP编译指示的作用范围是()。

A.其后一个语句

B.其后连续语句

C.其后直到函数结束

D.整个函数

OpenMP不能实现的是()。

A.负责创建和管理线程

B.隐藏栈管理

C.提供同步机制

D.自动并行化

采用MPI主从模型解决矩阵每行排序问题,主进程不断向每个从进程发送任务、接收结果,则它从从进程接收结果时,以下哪种方式更好?()

A.按编号顺序依次从从进程接收结果

B.按编号逆序依次从从进程接收结果

C.按编号顺序、逆序交替从从进程接收结果

D.使用MPI_ANY_SOURCE和MPI_ANY_TAG

对双精度浮点计算,AVX最高实现()路并行。

A.2

B.4

C.8

D.16

对于效率E,下面描述错误的是()。

A.理想并行E=1

B.总是在0~1之间

C.可能1

D.可能随着处理器数量增大趋向于0

对矩阵乘法串行程序的主体三重循环,我们选择最内层循环进行向量化的原因是()。

A.它最后执行

B.外层循环中没有计算操作

C.是随意选择的

D.它的连续循环步是对不同元素进行相同运算

在分布式内存架构编程中,进程间不能()。

A.进行通信

B.进行同步

C.发送和接收消息

D.通过读写变量交换数据

新一代GPU重点提供的新特性不包括()。

A.新型高速显存

B.GPU间直接高速互联

C.自动并行化

D.人工智能计算专门优化

在矩阵乘法的串行程序中,对()部分进行向量化收益最大。

A.初始化

B.第二个矩阵转置循环

C.矩阵元素乘加计算的循环

D.结果输出

采用划分子矩阵(大小b*b)的方法实现n*n矩阵乘法,一次乘加运算涉及的子矩阵可全部放入cache,则整个计算过程中,两个输入矩阵的每个元素会产生次访存。

A.n

B.t

C.n-t

D.n/t

关于消息传递编程的特点,以下说法正确的是()。

A.与共享内存一样有竞争条件

B.编程简单

C.需程序员考虑局部性

D.无需考虑进程间通信

华尔街是世界上超级计算机最密集的区域之一,原因是()。

A.金融巨头支付得起

B.与超算制造商有良好合作

C.海量交易需要很高安全性

D.海量交易处理需要并行计算

pthread_create函数中线程函数指针的正确类型是()。

A.void(void*)

B.void*(void*)

C.int(void)

D.void*(*)(void*)

多线程是()架构下的并行模式。

A.MIMD

B.共享内存

C.分布式内存

D.分离式地址空间

OpenMP主要是通过()来更高层抽象的多线程编程。

A.设计实现新的语言

B.为现有语言提供大量库函数

C.为现有语言扩展编译指示

D.新编译器实现自动并行化

执行pthread_rwlock_rdlock时,()的情况下加锁成功。

A.已有一个线程上了写锁

B.已有多个线程上了写锁

C.已有多个线程上了读锁

D.已有多个线程上了读锁和写锁

有大量分支指令的程序不适合下面哪种体系结构上进行并行化?()

A.SISD

B.SIMD

C.SPMD

D.MIMD

任务依赖图的平均并发度的定义是()。

A.顶点权重之和

B.顶点数

C.各层平均顶点数

D.顶点权重之和/关键路径长度

一个AVX寄存器最多存放()个整型数。

A.2

B.4

C.8

D.16

n个数求和的问题,使用n个处理器的并行算法达到了logn的运行时间,则算法()。

A.肯定不是代价最优

B.肯定是代价最优

C.不确定是否代价最优

D.以上皆错

适合进行SIMD并行化的串行程序特点不包括()。

A.大数据对象

B.数据项连续存储

C.流式计算

D.算术计算密集

我国最早夺得全球超级计算机计算能力冠军的是()。

A.天河1号

B.天河1A

C.天河2号

D.神威.太湖之光

对单精度浮点计算,MMX最高实现()路并行。

A.2

B.4

C.8

D.16

将寄存器设置为4个单精度浮点数0.0的SSE intrinsics指令是()。

A._mm_set_ps

B._mm_set1_ss

C._mm_setzero_ss

D._mm_setzero_ps