[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 和 压缩


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、Handler: 1):系统Handler的创建过程及相关对象的创建:在ActivityThread的main...
    Steven_SHH阅读 838评论 0 5
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,120评论 1 51
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,038评论 2 89
  • 第一部分 Python基础篇(80题) 1、为什么学习Python? Python相对于其他编程语言有很多优点: ...
    清清子衿木子水心阅读 1,740评论 0 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,110评论 0 4