高级检索

    数据驱动并行计算的3层软件架构设计及应用

    Three-Level Hierarchical Software Architecture for Data-Driven Parallel Computing with Applications

    • 摘要: 数据驱动并行计算是科学与工程计算中普遍存在的一类计算,其执行通常依赖于数据流有向图.在实际应用中,结点调度、数据通信和数值计算紧耦合并发执行,较难解耦编程,这给应用软件的协同研制和代码复用带来困难.借助于统一形式的数据流有向图并行算法框架,分无环有向图调度、无环有向图建模和数值计算3个层次,设计了软件体系结构,实现于并行自适应结构网格应用支撑软件(J parallel adaptive structured mesh applications infrastructure, JASMIN)框架的通量扫描积分构件中,有力地支持了结点调度、数据通信和数值计算的解耦编程.研究成果成功应用于科学计算中典型的中子输运计算,典型的代码开销测试和2 048个处理器核的并行性能测试表明,软件架构及其构件化实现是有效的.

       

      Abstract: Data-driven parallel computing is widely used in scientific and engineering computation. Most of these computations are based on data dependency diagraphs. In real word applications, vertex scheduling, data communication and numerical computation are executed concurrently in a tightly coupled way, and it is hard to implement in a decoupled manner, which imposes difficulties for both application software co-design and code reuse. To address these problems, in this paper, we propose a hierarchical software architecture and implement it in sweeping integrator component, which is the part of the J adaptive structured mesh infrastructure (JASMIN). The hierarchical architecture is based on a unified algorithm framework for data dependency diagraph computation. It consists of three levels, including directed acyclic graph (DAG) scheduling level, DAG modeling level and numerical computation level. This design provides strong support for decoupled implementation of vertex scheduling, data communication and numerical computation, which are essential in data-driven parallel computing. We apply this result in typical scientific computing applications such as neutron transportation. The sequential implementation overhead and parallel performance results are obtained on a parallel computer with 2048 CPU cores. These results suggest that our hierarchical software architecture and component-based implementation are both effective and efficient.

       

    /

    返回文章
    返回