理论峰值速度
理论峰值速度=CPU主频×每个时钟周期执行的浮点运算次数
时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。
一般情况下,主频大约为2G赫兹,每个时钟周期运行浮点运算次数和CPU有关。
个人电脑主频和核心数查看-windows版本
查看个人电脑主频
控制面板→系统和安全→系统
可知联想小新的CPU为i5-8250U,主频为1.6GHz。
查看电脑核心数
CTRL+ALT+DELETE调出任务管理器,然后点其中的性能选项。
系统有4个核心,还可以看到L1,L2,L3缓存是多少。
估算计算量必须的知识
存储容量
在64位计算机中,一个双精度浮点数占用8个字节(byte),整数占用4个字节。从而我们大致分析一下250个整数大约为1kb,从而1GB=2.5*10^8个整数,大约为千万个整数量级。
微处理器的存储机构
分为CPU,Primary Cache,Secondary Cache,Main Memory这几级结构。
高性能计算机发展的不同阶段
- 器件变革阶段:电子管→晶体管→集成电路
- 体系结构变革:向量机→大规模并行→机群→异构并行
- 计算原理变革:功耗墙的存在!!!
并行算法中的基本概念
任务划分:数据划分,功能划分
并行粒度
并行粒度:描述任务的数量和尺寸
细粒度:大量的小任务
粗粒度:少量的大任务
并行度(并发度)
在指定时刻,可同时执行的任务的数量。
进程,线程,处理器和结点概念澄清
进程(Process):一段串行程序连同其数据在单处理机上的动态执行过程,每个进程拥有独立的内存地址空间。
线程(Thread):由进程创建,属于同一进程的所有线程拥有相同的内存地址空间。
处理器(CPU):晶体管,逻辑块,功能单元
结点(Node):处理器,内存。
一般来说,进程(逻辑)对应的是核心数(物理),虽然说MPI可以给出超过核心数的进程数,但那是一种假并行。
并行性能的考察指标
主要开销:串行计算所花的时间,进程间交换数据所需要的通信开销,进程间相互等待产生的空闲,由于并行而引入的额外计算。
加速比:串行执行时间和并行执行时间的比值。
并行效率:加速比与进程数的比值,即为下面的公式
其中P为并行程序执行进程数,为并行程序执行时间,为算法的串行实现执行时间。
可扩展性:并行效率与问题规模,处理机数目之间的关系。
上机测试实例
矩阵乘法中不同循环顺序对程序性能的影响–待实践
Cache结构对程序性能的影响。
git和make的运用
编写矩阵相乘程序,利用make,git实现程序的编译和维护。
分析不同编译器对程序性能的影响
比较inter和GNU编译器以及不同的编译优化参数进行编译的结果,分析程序的性能差异。