2023年试题大部分题与2022年一样,编程题考的ppt MPI编程的那个通信环

int token;
if (world_rank != 0) {
MPI_Recv(&token, 1, MPI_INT, world_rank ‐ 1, 0,
MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Process %d received token %d from process %d\n",
world_rank, token, world_rank ‐ 1);
} else {
// Set the token's value if you are process 0
token = ‐1;
}
MPI_Send(&token, 1, MPI_INT, (world_rank + 1) % world_size,
0, MPI_COMM_WORLD);
// Now process 0 can receive from the last process.
if (world_rank == 0) {
MPI_Recv(&token, 1, MPI_INT, world_size ‐ 1, 0,
MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Process %d received token %d from process %d\n",
world_rank, token, world_size ‐ 1);
}
我觉得下学期可能考openmp编程,计算题2023年考的是2022年的最后一题外加另求一个加速比,吐槽:我辛辛苦苦复习好几天最后四章,没出一个题,gpgpu那个题连续考了两年

一、简答题(5*8)

2022年试题

1.简述共享变量模型

通过共享变量的方式进行数据交互,有统一的地址空间,适用于SMP和DSM,隐式通信,在集群中一般用于一个节点上的多个核。

简述消息传递模型:

不同任务间通过传递消息进行数据交互,有独立的地址控件,适用于COW和MPP,显式通信,一般用于集群的多个节点上。

2.简述同步通信

发送函数只有在接收方启动后才返回,发送返回后表明发送缓存中的数据已经发送到系统缓存中,开始发送,发送完成后发送方可以继续执行。

缓冲通信:程序开辟缓冲池,将发送数据放入缓冲池,不管接收方是否启动都可以执行。MPI_Buffer_attch申请缓冲池,过MPI_Buffer_detach回收缓冲池

就绪通信:只有在接收方准备就绪开始接受数据时才发送数据

标准通信:通信选择的方式与具体程序的实现方式有关

3.简述云计算中的基础服务模型

IaaS,基础设施即服务,将一切物理级别的硬件资源作为服务提供,常见的有弹性计算,块存储,对象存储,专有网络

PaaS,平台即服务,在Iaas的基础上增添中间组件,os,DB等服务提供

SaaS软件即服务,直接将应用程序作为服务,常见有:云办公,云游戏,ERP等

4.请说明Michael Flynn提出的Flynn分类法

Michael Flynn提出的Flynn分类法:

• 单指令流、单数据流,Single Instruction Stream, Single Data Stream, SISD。

• 单指令流、多数据流,Single Instruction Stream, Multiple Data Stream, SIMD。

• 多指令流、单数据流,Multiple Instruction Stream, Single Data Stream, MISD。

• 多指令流、多数据流, Multiple Instruction Stream, Multiple Data Stream,

MIMD

5.简述相并行及其优缺点

相并行一个并行程序由一系列超级步组成,每个超级步也称为一个相。每个超级步内,各个进程执行独自的并行计算,然后继之以交互作用(包括通信同步等)。相并行也称为松散同步并行,优点是方便查错和性能分析,缺点是计算阶段和交互阶段不能重叠,难以维持负载平衡。

分治并行:一个前导进程将一个大的工作负载切割成许多小的任务并交给一些子进程处理,子进程并行计算各自任务并由归并程序将结果归并,优点是这种切开和归并很自然导致递归,缺点是难以维持负载均衡。

流水线并行:各个进程分别处在流水线的不同段,同时重叠执行不同的任务达到肢体并行的效果,缺点各个段的负载通常不同难以维持负载均衡,负载不均衡导致流水线气泡

主从并行:一个主进程执行并行程序的串行部分,生成一些可以同时并行执行计算的子进程;当某一子进程完成计算后就报告给主进程,主进程再分配新的任务给它。主进程负责所有的协调工作,缺点是主进程易成为系统瓶颈

工作池并行:开始时池中只有一件工作,任何空闲的进程均可以从池中取出它并执行,执行过程中可能产生一个或 多个新的工作并把它们放回池中,以供别的空闲进程取用,当池中 变空则并行程序结束。工作池是一个逻辑上的全局数据结构,可 以是无序队列、有序队列、优先级多队列等等。

6.简述虚拟机的概念和虚拟机迁移

虚拟机就是通过在宿主机(host)上“模拟”物理硬件来作为客户机(guest),从而提供一个虚拟化的软件(操作系统)运行环境。

虚拟机具有独立于硬件的特性,且其全部内容都封装为文件的形式存在于磁盘中,因此可以在虚拟机关机后将文件移动到其他宿主机再开启,这就是虚拟机的迁移。

7.简述弹性计算

弹性计算可快速扩展或缩减计算机的处理、内存和存储资源,以满足不断变化的需求,从而无需担忧用量高峰的容量计划和工程设计。

8.请说明什么是Cache一致性问题

共享数据进入Cache,则同一存储块在多个处理器的Cache中有副本,当某个处理器对其Cache中的副本修改后,该副本与其他副本中的数据不一致,称为多处理机的Cache一致性问题

二、画图说明题(10*4)

1.画出UMA的结构图并说明

UMA:一致访存,所有处理器对内存的访问是一致的,可以有私有cache,有统一的地址空间,也就是基于共享内存模型;

NUMA:非一致访存,处理器对内存的访问时间是不均匀的或不一致的,处理器有单独的存储器,有统一的地址空间,也是基于共享内存模型;

2.画出冯诺依曼结构图并说明

3.在监听式协议中,画出cache控制器监听本地CPU的状态图和cache控制器监听总线的状态图

4.画图并说明GPGPU的自相似性

三、计算题(10*2)

1.

已知:

(1)测试程序中50%的指令需要1次访存,20%的指令需要2次访存,其他指令不需要访存。

(2)计算机 CPU时钟周期为5us(微秒),存储器存取周期为5us(微秒)。

(3)测试程序在该计算机上的执行速率为0.05MIPS(Million Instructions Per Second, 每秒百万条指令)

求:

(1)计算机的平均CPI

平均cpi=1/(5x10^-6x0.05x10^6)=4

(2)计算机的理想CPI

4=x+50%x1x(5/5)+20%x2x(5/5)

X=3.1

(3)假设理想CPI保持不变,若将CPU的工作频率提高一倍,求该测试程序在改进后的计算机上的执行速率(MIPS)

平均cpi=3.1+50%x1x(5/2.5)+20%x2x(5/2.5)=4.9

V=1/(4.9x2.5)

功能单元的时间开销(假设,不同实现开销不同)

• 浮点加减(6 cycle)

• 浮点乘法(7 cycle)

• 浮点除法(14 cycle)

• 整型运算单元(3 cycle)

• 逻辑运算单元(2 cycle)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐