Skel: Generative Software for Producing Skeletal I/O Applications

Jeremy S. Logan, S. Klasky, J. Lofstead, H. Abbasi, S. Ethier, R. Grout, S. Ku, Qing Liu, Xiaosong Ma, M. Parashar, N. Podhorszki, K. Schwan, M. Wolf
{"title":"Skel: Generative Software for Producing Skeletal I/O Applications","authors":"Jeremy S. Logan, S. Klasky, J. Lofstead, H. Abbasi, S. Ethier, R. Grout, S. Ku, Qing Liu, Xiaosong Ma, M. Parashar, N. Podhorszki, K. Schwan, M. Wolf","doi":"10.1109/eScienceW.2011.26","DOIUrl":null,"url":null,"abstract":"Massively parallel computations consist of a mixture of computation, communication, and I/O. Of these three components, implementing an effective parallel I/O solution has often been overlooked by application scientists and has typically been added to large scale simulations only when existing serial techniques have failed. As scientists' teams scaled their codes to run on hundreds of processors, it was common to call on an I/O expert to implement a set of more scalable I/O routines. These routines were easily separated from the calculations and communication, and in many cases, an I/O kernel was derived from the application which could be used for testing I/O performance independent of the application. These I/O kernels developed a life of their own used as a broad measure for comparing different I/O techniques. Unfortunately, as years passed and computation and communication changes required changes to the I/O, the separate I/O kernel used for benchmarking remained static, no longer providing an accurate indicator of the I/O performance of the simulation, and making I/O research less relevant for the application scientists. In this paper we describe a new approach to this problem where I/O kernels are replaced with skeletal I/O applications that are automatically generated from an abstract set of simulation I/O parameters. We realize this abstraction by leveraging the ADIOS [1] middleware's XML I/O specification with additional runtime parameters. Skeletal applications offer all of the benefits of I/O kernels including allowing I/O optimizations to focus on useful I/O patterns. Moreover, since they are automatically generated, it is easy to produce an updated I/O skeleton whenever the simulation's I/O changes. In this paper we analyze the performance of automatically generated I/O skeletal applications for the S3D and GTS codes. We show that these skeletal applications achieve performance comparable to that of the production applications. We wrap up the paper with a discussion of future changes to make the skeletal application better approximate the actual I/O performed in the simulation.","PeriodicalId":267737,"journal":{"name":"2011 IEEE Seventh International Conference on e-Science Workshops","volume":"117 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-12-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 IEEE Seventh International Conference on e-Science Workshops","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/eScienceW.2011.26","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15

Abstract

Massively parallel computations consist of a mixture of computation, communication, and I/O. Of these three components, implementing an effective parallel I/O solution has often been overlooked by application scientists and has typically been added to large scale simulations only when existing serial techniques have failed. As scientists' teams scaled their codes to run on hundreds of processors, it was common to call on an I/O expert to implement a set of more scalable I/O routines. These routines were easily separated from the calculations and communication, and in many cases, an I/O kernel was derived from the application which could be used for testing I/O performance independent of the application. These I/O kernels developed a life of their own used as a broad measure for comparing different I/O techniques. Unfortunately, as years passed and computation and communication changes required changes to the I/O, the separate I/O kernel used for benchmarking remained static, no longer providing an accurate indicator of the I/O performance of the simulation, and making I/O research less relevant for the application scientists. In this paper we describe a new approach to this problem where I/O kernels are replaced with skeletal I/O applications that are automatically generated from an abstract set of simulation I/O parameters. We realize this abstraction by leveraging the ADIOS [1] middleware's XML I/O specification with additional runtime parameters. Skeletal applications offer all of the benefits of I/O kernels including allowing I/O optimizations to focus on useful I/O patterns. Moreover, since they are automatically generated, it is easy to produce an updated I/O skeleton whenever the simulation's I/O changes. In this paper we analyze the performance of automatically generated I/O skeletal applications for the S3D and GTS codes. We show that these skeletal applications achieve performance comparable to that of the production applications. We wrap up the paper with a discussion of future changes to make the skeletal application better approximate the actual I/O performed in the simulation.
生成软件用于生成骨架I/O应用程序
大规模并行计算由计算、通信和I/O混合组成。在这三个组件中,实现有效的并行I/O解决方案经常被应用科学家忽视,并且通常只有在现有串行技术失败时才会添加到大规模模拟中。当科学家团队将他们的代码扩展到在数百个处理器上运行时,通常会要求I/O专家实现一组更具可扩展性的I/O例程。这些例程很容易从计算和通信中分离出来,并且在许多情况下,从应用程序派生出一个I/O内核,可用于独立于应用程序测试I/O性能。这些I/O内核发展了自己的生命周期,用作比较不同I/O技术的广泛度量。不幸的是,随着时间的流逝,计算和通信的变化需要对I/O进行更改,用于基准测试的单独I/O内核保持不变,不再提供模拟I/O性能的准确指标,并且使I/O研究与应用程序科学家的相关性降低。在本文中,我们描述了一种解决这个问题的新方法,其中I/O内核被从一组抽象的模拟I/O参数自动生成的框架I/O应用程序取代。我们通过利用带有附加运行时参数的ADIOS[1]中间件的XML I/O规范来实现这种抽象。框架应用程序提供I/O内核的所有优点,包括允许将I/O优化重点放在有用的I/O模式上。此外,由于它们是自动生成的,因此只要模拟的I/O发生变化,就很容易生成更新的I/O骨架。本文分析了基于S3D和GTS代码的自动生成I/O骨架应用程序的性能。我们展示了这些骨架应用程序实现了与生产应用程序相当的性能。最后,我们讨论了未来的更改,以使骨架应用程序更好地接近模拟中执行的实际I/O。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信