arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 0903.4875cs.SE
收藏

大规模并行多物理场仿真代码FLASH的可扩展组件结构

Extensible Component Based Architecture for FLASH, A Massively Parallel, Multiphysics Simulation Code

A. Dubey, L. B. Reid, K. Weide, K. Antypas, M. K. Ganapathy, K. Riley, D. Sheeler, A. Siegal

摘要:

FLASH是一种公开可用的高性能应用程序代码,它已经从一系列互不相连的遗留代码演变成一个模块化的、可扩展的软件系统。FLASH之所以成功,是因为它的功能是由科学应用的需求驱动的,而不会影响可维护性、性能和可用性。在最新的版本中,FLASH3由可相互操作的模块组成,这些模块可以组合起来生成不同的应用程序。FLASH体系结构允许其组件的任意多个替代实现共存并相互交换,从而带来更大的灵活性。此外,存在一种简单而优雅的机制,用于自定义代码功能,而无需修改源代码的核心实现。内置的单元测试框架提供可验证性,结合严格的软件维护过程,允许代码在生产和开发的双重模式下同时运行。在本文中,我们描述了FLASH3架构,重点解决方案,更具有挑战性的冲突所产生的求解器的复杂性,便携式性能要求,和遗留代码。我们还包括2005年和2007年进行的用户调查结果,这些结果突出了代码的成功。

英文摘要:

FLASH is a publicly available high performance application code which has evolved into a modular, extensible software system from a collection of unconnected legacy codes. FLASH has been successful because its capabilities have been driven by the needs of scientific applications, without compromising maintainability, performance, and usability. In its newest incarnation, FLASH3 consists of inter-operable modules that can be combined to generate different applications. The FLASH architecture allows arbitrarily many alternative implementations of its components to co-exist and interchange with each other, resulting in greater flexibility. Further, a simple and elegant mechanism exists for customization of code functionality without the need to modify the core implementation of the source. A built-in unit test framework providing verifiability, combined with a rigorous software maintenance process, allow the code to operate simultaneously in the dual mode of production and development. In this paper we describe the FLASH3 architecture, with emphasis on solutions to the more challenging conflicts arising from solver complexity, portable performance requirements, and legacy codes. We also include results from user surveys conducted in 2005 and 2007, which highlight the success of the code.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑