Download PDFOpen PDF in browserTask-Based Programming on Emerging Parallel Architectures for Finite-Differences Seismic Numerical KernelEasyChair Preprint 27714 pages•Date: June 18, 2018AbstractThe recent advances on microprocessors architecture have brought a large amount of computational power through numerous heterogeneous computing devices. For instance, a typical modern supercomputer comprises a set of interconnected computing nodes, each of which having several multi-core processors and hardware accelerators such as Nvidia GPU and Intel MIC. Moreover, moving forward to exascale platforms, estimations indicate that computing nodes will feature up to 1000 cores. However, to fully take into advantage these resources, a profound shift on the implementation of numerical applications has to be performed. In this paper, we study the design and implementation of a seismic wave propagation simulator, based on finite difference scheme, and specifically tailored for massively parallel architectures. The application data-flow is built on top of PaRSEC, a generic task-based runtime system, targeting distributed heterogeneous architectures. Considering the memory-bound nature of the stencil scheme, we designed the numerical kernels to maximize data reuse and thus increasing their arithmetic intensity. Such a strategy allows to efficiently exploit large SIMD units available in modern CPU cores. To illustrate the performance of the application, we conducted a strong scalability study on a cluster of Intel KNL processors. The obtained results compare favorably to an existing seismic wave propagation code. Keyphrases: C++ generic programming, High Performance Computing, PARSEC, SIMD, Task-based model, numerical kernel, seismic wave propagation
|