[HPC/IO]Automatic generation of benchmarks for I/O-intensive parallel applications

论文题目: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新算法

整个工作流程

  1. 记录trace
  2. 压缩trace
  3. merge trace
  4. 利用整理后的trace 生成code
  5. 利用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 模拟循环结构

第七章 验证

框架达成了两个目标

  1. 高效地减少了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 和 压缩


你可能感兴趣的:([HPC/IO]Automatic generation of benchmarks for I/O-intensive parallel applications)