美文网首页论文阅读
[HPC/SysML]HPC I/O throughput bo

[HPC/SysML]HPC I/O throughput bo

作者: sagfugetabf | 来源:发表于2021-07-22 21:02 被阅读0次

    2021-07-21
    SC'20: HPC I/O throughput bottleneck analysis with explainable local models
    作者背景:Texas A&M University+ANL

    简评:本文这类工作是典型的dirty work,而且很难得出什么结论,但是这类事情总是要有人做一做试一试,万一后人能从其中得到点什么呢。本文的结论也是看似有结果,但是实际上没什么用,真实环境也不会用的内容。


    abs:

    HPC中性能提升在I/O这里有瓶颈。本文分析了超算Theta多年的Darsh日志,试图找到poor I/O throughput的原因

    1. intro 泛-精-专

    泛:
    因为HPC系统的复杂性,我们对HPC系统的运行时计算通讯存储的行为还存在很大的盲区。尤其是HPC的应用特征差异也非常大。
    精:
    理解IO的利用率很困难,现阶段,编程者和管理员只能靠着有限的观察,轶闻,零散的个人经验来设计应用模式或者从node级别或者系统级别来管理运行时系统。这种手工作坊式的工作存在很大的问题。需要automated data-driven的方法来解决。

    直觉上的解决方案不但包括隔离情况下的单个应用特征,还要考虑减少数据的共性,简化建模的开销,探索跨应用的性能提升方案。

    吞吐和数据大小以及处理器的个数存在一定相关性

    所以打算用ML的方法,但是可解释性和效果之间存在权衡。本文建立一个可解释性的模型,解释如 如何对应用聚类,新来一个任务或应用应该如何归类,效果如何等问题?

    贡献:

    1. 提出一个基于日志分析的特征提取pipeline,三年8w+数据
    2. 使用agglomerative clustering的模型
    3. 使用各种ML模型,预测误差在20%内,
    4. 建立了一个模型Gauge来进行特征的pipeline和聚类,可以根据不同的数据粒度和可解释性的IO吞吐量来分析IO
    5. 还搞了一个工具的网页版本介绍,https://ascslab.org/research/gauge/index.html

    2. EXPLORATION OF THE APPLICATION SPACE

    2.1 Darshan 工具
    可以记录应用IO的数据,记录了3年,覆盖了系统28%的作业
    本文主要关注:POSIX and MPI-IO,只选了POSIX ,因为POSIX 覆盖范围比MPI-IO广。

    The POSIX module measures 86 features,we appended 10 Darshan metaparameters
    一共96个特征?

    2.2 数据消毒和规则化
    删掉错误数据的任务和缺失值较多的feature,随时间变化引入的新特征也被忽视。

    We remove common access size features and all time-sensitive features
    加入时间信息的训练效果远好于完全没有时间效果的数据。

    由于数据的量级差的特别大,所以我们对数据进行了规整,比如用百分比,或者取对数等

    We are left with 45 percentage features and 12 logarithmic features

    筛选罪业,从66万的数据里面选了9万出来,主要选取的是大作业,大作业传输的数据是小作业的60倍。未来的工作可以分析小作业的数据。

    因为数据的局限性,本文的工作不是发掘既定时间内的io特征,而是朝着可解释性的方向发展,如如何判断好的IO特征

    2.3 探索数据结构
    数据整理好了,开始建模分析
    9w个作业,每个作业57个特征(45个日志特征,12个算数特征),作业主要来自于占整体50%的6个大应用,

    选了6种应用,每个应用选16个数据来进行io分析 rich structure

    本文使用HDBSCAN对数据进行分成,然后更具分枝的情况,给所有数据划分了四个大类。

    2.4 解释数据结构
    为了解释数据聚类的原因,我们通过训练决策树来找原因,当决策树depth=1,depth=2的时候,我们观察决策树分类的依据。决策树的分类理由虽然造成很大的数据不平衡,但是决策树的准确度非常高98%,从侧面验证了分类决策的准确性。

    凑字数内容:需要选择好数据分析的粒度,太细了会对单个作业进行分析,太粗了无法得到我们想要应用的特征。

    3. 应用的IO特征

    在我们可以解释IO运行的原因之前,我们试着先去预测IO的结果。

    3.1 io的吞吐量度量衡
    首先定义一个衡量准确度的指标,常用的L1,L2可能不太行,因为我们数据的量级差距太大,因此,本文选择了root mean squared logarithmic error (RMSLE) and mean absolute logarithmic error (MALE)
    ML模型是规模无关的,应该同等惩罚相对的预测误差,无论是小和大吞吐量的工作

    3.2 IO性能建模
    传统的ML模型用了一个遍,最后选择了XGBOOST,

    We have evaluated a number of different types of ML models, such as linear regression, decision trees, random forests, gradient boosting machines, and neural networks, and have chosen to use XGBoost
    预测误差在1.2x左右,这在HPC领域算是蛮好的了,因为IO的吞吐量级变化特别大。再想降低误差比较难了,因为诸如系统竞争这类问题在实现系统中很难被囊括到模型中考虑

    这里提到一个名词 I/O weather,这个对模型预测的准确度影响较大。

    本文利用统计学的方法permutation feature importance (PFI),来评估每个特征对训练模型输出的影响。这个方法保证输入数据的分布特征不变,但是不带特征信息。

    实验证明时间信息对模型有很大的影响,为了学习io和吞吐量的关系,模型中去掉了时间信息

    4. IO模型解释

    我们用一个博弈论的理论来解释黑盒的ML模型,SHapley Additive exPlanations (SHAP)
    建立了一个tool来动态分析不同的数据特征,不同的算法分析结果。
    这套系统可以自动的分析数据,并用图形的方式展示出来

    5. case study

    现有分析io的工作,常常是聚焦于用户关注的特定应用,通过io分析可以得到非常好的性能提升。但是这些工作忽视更广泛的共性的特征。

    本章节分析之前分类出的四个大类,以期指导生产系统Theta的优化工作。

    5.1 集群A
    5.2集群B
    5.3 集群C
    5.4 集群D

    6. 相关工作

    IHPC系统中IO瓶颈问题业已分出几类研究。一类是对实际运作下的文件系统IO的观测,另一类是软件层面的观察方法,包括 TAU [22], Paraver[23], SCALASCA [24], Paradyn [25], and Darshan,这些软件监控HPC运行时的IO数据,利用专家的insight来进行分析,可以更好的优化性能。

    由于并行文件的复杂性和应用的复杂性,研究人员利用ML的方法来建模IO的特征。
    监督的方法和无监督的方法都有很多相关工作。
    本文的方法结合了无监督学习和有监督的方法。

    7.未来工作

    探索外部因素对IO的影响
    提升模型的泛化性能和可解释性
    研究本文模型中出错的原因。

    8. 结论

    编写和调试HPC的应用需要非常专业的领域知识,而且需要编程者对HPC即将运行的系统有非常深刻的认识。启发本文工作的原因是,HPC的编程人员和系统的管理者希望找出HPC应用无法充分利用IO的原因。虽然专家可以分析单个case并找到解决方案,但是我们希望要一个无监督的,自学习的系统来进行分析,于是本文推出了Gauge,对ALG的超算数据进行了分析和结果展示。

    相关文章

      网友评论

        本文标题:[HPC/SysML]HPC I/O throughput bo

        本文链接:https://www.haomeiwen.com/subject/dbcsmltx.html