赞
踩
预计必考很多名词解释
串行计算的定义
并行计算的定义(第一章第二章的都行)
并行计算的目的 可能都是简答题
分布式计算的定义
分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理而后在统合计算结果得到最终结果
并行计算&分布式计算的区别
什么是MPI, 什么是openMP 必考一个
message passing interface
什么是超级计算机 概念
什么是集群
什么是网格计算 && 什么是网格
网格:
基于网格的问题求解就是网格计算
云计算的定义 很重要, 至少要知道
什么是边缘计算
什么是智能计算
并行计算的定义(第一章第二章都可)
并行计算的条件:
高性能计算机的概念
国际
他们把超级计算机(高性能计算机)圈定在Pflops级(千万亿次浮点计算每秒)计算机水平。
市场
往往认为价格在10万元人民币以上的就是高性能计算机,而把超级计算机看作是最高档的几百台高性能计算机。
并行计算的功能:
降低单个问题的求解时间, 增加问题求解规模, 提高问题求解精度
并行计算的几个相关定义:
粒度
在并行执行过程中,二次通讯之间每个处理机计算工作量大小的一个粗略描述,分为粗粒度、细粒度
复杂度
在不考虑通讯开销的前提下,每个处理机上的计算量最大者,即为并行计算复杂性
并行度
算法可以并行的程度
加速比
q: 进程数, Ts 串行运行时间, Tp 并行运行时间
效率
就是加速比S/进程数np
amdahl定律 & 核心思想& 公式中的变量的意义
Gustafson定律的种种(和amdahl相同)
可扩展性的定义 很重要:
如果增加进程数(线程数)和问题规模, 并行效率保持不变, 则称并行程序是可扩展的, 具有可扩展性
SMP的定义 不重要
DSM的定义 不重要
MPP的定义 重要
cluster定义
上头四个之间的区别
第三章的基本概念:
主从式的思想 要掌握
将一个待求解的任务分成一个主任务(主进程)和一些从任务(子进程)
主进程负责将任务分解, 派发和收集各个子进程的求解结果并最后汇总得到问题的最终结果
SPMD 单程序多数据流 很重要 不仅仅是概念, 还要掌握其思想, 运用到编程中 基本上是必考的
PCAM并行应用编程过程 基本概念掌握: 简答题可能会考察
什么是域分解, 什么是功能分解
重复计算 很重要
重复计算的目的是减少算法运行的总时间, 其减少通信量, 但增加了计算量, 应合理设计使得二者保持恰当的平衡
给一个串行代码, 将其转化为并行代码
都是伪代码, 如矩阵计算等
PPT中的例子会稍微变化一下, 注意啊 简答题
并行for的方法, 不考名词解释, 了解即可(就是不考),
后头有个并列的方法, 好像是PPT里没有, 柱子哥说要考的, 很重要
MPI基本概念
几个基本概念:
进程组:
通信器
进程序号
消息
MPI的程序的基本形式 这个敲代码敲多了基本上都记得了(并不) 柱子哥会化身编译器 所以一定要写对
他这里都在讲常用函数啥的, 反正标准模板里所有的都要, 其他看情况
#include <mpi.h> #include <iostream> using namespace std; int main(int argc, char *argv[]){ int np, myid; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &np); printf("Process %d on %d\n", myid, np); MPI_Finalize(); return 0; }
Helloworld程序的执行流程 挺重要的 执行顺序, 迭代范围
什么是点对点通信
两个进程之间的通信就是点对点通信
点对点通信中的几个重要的函数: 函数没啥问题的话还是推荐全记住
什么是消息
标准阻塞式通信, 他们的区别 简答题
消息传递条件 很重要 简答题
5个
数据环路传送 很重要 18年考的这个 今年很可能出第一个编程题, 这里柱子哥将了好久
多设计几遍, 我就不信还能错
写一个很安全的不管n有多大都不会死锁的代码
#include <mpi.h> #include <iostream> using namespace std; int main(int argc, char *argv[]){ int np, myid; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &np); int root=0; const int MAXBUF=105; int buf[MAXBUF]={0}; int tag=99; MPI_Status status; if(myid==root){ buf[0]=114514; MPI_Send(buf, 1, MPI_INT, myid+1, tag, MPI_COMM_WORLD); MPI_Recv(buf, 1, MPI_INT, myid+np-1, tag, MPI_COMM_WORLD, &status); }else{ MPI_Recv(buf, 1, MPI_INT, myid-1, tag, MPI_COMM_WORLD, &status); MPI_Send(buf, 1, MPI_INT, (myid+1)%np, tag, MPI_COMM_WORLD); } printf("Process %d get %d data=%d\n", myid, myid, buf[0]); MPI_Finalize(); return 0; }
阻塞式消息发送模式 四个里任选俩进行比较异同, 简答题
阻塞式通信与非阻塞式通信的区别 大致意思写对就是满分
非阻塞式点对点通信函数一套
这部分的程序设计暂时还未涉及, 之后如果确定会考再来看
持久通信不考察了
数据类型 很重要 必考一个
数据类型的一整套函数
后头的聚合通信就归约代码
本章重点考察简答题, 程序题, 概念性的东西较少
openMP定义
共享存储体系结构上的一个并行编程模型或基于线程的并行编程模型
openMP的代码肯定会考一个
重点 是编译制导语句
编译制导语句的组成:
并行域の概念
一个能被多个线程并行执行的代码段
归约字句 很重要
后头三个选一个考求PI的程序
数据竞争问题, 给出一个代码, 找出哪里发生的数据竞争, 怎么改
打印接口的题, 即给出一个程序, 求程序的输出
single制导 & master制导的区别
后头几个制导几乎全要考, 都TMD很重要
几个不需要的:
后头的几个例子也挺重要的, 应该康康
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。