论文题目:Automatic generation of benchmarks for I/O-intensive parallel applications
文章时间:2018年3月
会议/期刊:期刊 J.ParallelDistrib.Comput.
作者背景: 哈工大,UIUC
笔记时间:2021年10月12日周二
论文地址:https://www.sciencedirect.com/science/article/pii/S074373151830738X
文章中要自动生成benchmark,但是我并不理解什么是benchmark。
本文三个贡献点
benchmark自动生成
trace 压缩新算法
trace merge新算法
整个工作流程
- 记录trace
- 压缩trace
- merge trace
- 利用整理后的trace 生成code
- 利用code生成benchmark
所以本文的insight是什么,是聚合了几个技术的framework吗?
Abstract
想要高保真的抽取benchmark为了反映HPC应用的计算通讯IO行为很难。本文设计了一个框架,实验app是五个NPB,四个IO密集的并行程序。我们设计的Trace merge和压缩技术比其他人的要好,产生的benchmark可以模拟源程序的计算通讯和io行为。这些生成的benchmark也可以用来预测源程序的性能,通过规模变化来等比例的预测性能。
第三章 记录trace 中的问题
3.1 记录方法
使用PMPI
3.2 处理特殊的参数
3.3 处理自定义的数据类型
第四章 trace 压缩阶段
4.1 识别出连续的IO操作
4.2 识别出 LOOP 结构
4.3 trace压缩算法 --- 自己提出的新算法
算法复杂度:O(nlogn)
第五章 Trace merge
MPI是SIMD的编程范式,所以每个进程的trace中有非常多重复的地方。
5.1 trace预处理
直接merge效果不好
5.2 merge 算法
find shortest edit script (SES)of sequences
第六章 生成代码
6.1 模拟计算
6.2 模拟通讯和IO
6.3 模拟循环结构
第七章 验证
框架达成了两个目标
- 高效地减少了IO密集型的trace数量
2.利用trace生成benchmark,利用benchmark预测性能
选了五个通讯密集的非并行通讯应用,五个io密集的并行通讯应用
7.2 trace 记录的性能
7.3 trace 压缩的性能
7.4 trace merge的性能
7.5 生成benckmark的保真度
7.6 benchmark预测的误差
7.7 benchmark的可移植性
第八章 相关工作
8.1 自动benchmark生成
ScalaBenchGen [21] and DwarfCode[25]、
这两个工作不能处理mpi-io操作
APPrime [8]
Skel[12,13]
Replayertool[3]
8.2 trace 的merge 和 压缩
网友评论