首页> 外文期刊>ACM transactions on mathematical software >Graph-Based Software Design for Managing Complexity and Enabling Concurrency in Multiphysics PDE Software
【24h】

Graph-Based Software Design for Managing Complexity and Enabling Concurrency in Multiphysics PDE Software

机译:基于图形的软件设计,用于在Multiphysics PDE软件中管理复杂性并启用并发

获取原文
获取原文并翻译 | 示例

摘要

Multiphysics simulation software is plagued by complexity stemming from nonlinearly coupled systems of Partial Differential Equations (PDEs). Such software typically supports many models, which may require different transport equations, constitutive laws, and equations of state. Strong coupling and a multiplicity of models leads to complex algorithms (i.e., the properly ordered sequence of steps to assemble a discretized set of coupled PDEs) and rigid software. This work presents a design strategy that shifts focus away from high-level algorithmic concerns to low-level data dependencies. Mathematical expressions are represented as software objects that directly expose data dependencies. The entire system of expressions forms a directed acyclic graph and the high-level assembly algorithm is generated automatically through standard graph algorithms. This approach makes problems with complex dependencies entirely tractable, and removes virtually all logic from the algorithm itself. Changes are highly localized, allowing developers to implement models without detailed understanding of any algorithms (i.e., the overall assembly process). Furthermore, this approach complements existing MPI-based frameworks and can be implemented within them easily. Finally, this approach enables algorithmic parallelization via threads. By exposing dependencies in the algorithm explicitly, thread-based parallelism is implemented through algorithm decomposition, providing a basis for exploiting parallelism independent from domain decomposition approaches.
机译:多物理场仿真软件的复杂性源于偏微分方程(PDE)的非线性耦合系统。这种软件通常支持许多模型,这可能需要不同的传输方程,本构定律和状态方程。强大的耦合和多种模型导致复杂的算法(即组装离散的耦合PDE集的步骤的正确顺序)和严格的软件。这项工作提出了一种设计策略,将重点从高级算法关注点转移到了低级数据依赖项上。数学表达式表示为直接暴露数据依赖性的软件对象。整个表达式系统形成一个有向无环图,并且通过标准图算法自动生成高级汇编算法。这种方法使具有复杂依赖性的问题变得完全可以解决,并且从算法本身中消除了几乎所有逻辑。更改高度本地化,从而使开发人员无需详细了解任何算法即可实现模型(即整个组装过程)。此外,这种方法是对现有基于MPI的框架的补充,可以在其中轻松实现。最后,这种方法可以通过线程实现算法并行化。通过显式公开算法中的依赖关系,可通过算法分解来实现基于线程的并行性,从而为独立于域分解方法的并行性开发提供了基础。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号