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.