Solving Maxwell's Equations with Modern C++ and SYCL: A Case Study

In scientific computing, unstructured meshes are a crucial foundation for the simulation of real-world physical phenomena. Compared to regular grids, they allow resembling the computational domain with a much higher accuracy, which in turn leads to more efficient computations. There exists a wealth of supporting libraries and frameworks that aid programmers with the implementation of applications working on such grids, each built on top of existing parallelization technologies. However, many approaches require the programmer to introduce a different programming paradigm into their application or provide different variants of the code. SYCL is a new programming standard providing a remedy to this dilemma by building on standard C++ 17 with its so-called single-source approach: Programmers write standard C++ code and expose parallelism using C++ 17 keywords. The application is then transformed into a concrete implementation by the SYCL implementation. By encapsulating the OpenCL ecosystem, different SYCL implementations enable not only the programming of CPUs but also of heterogeneous platforms such as GPUs or other devices. For the first time, this paper showcases a SY CL-based solver for the nodal Discontinuous Galerkin method for Maxwell's equations on unstructured meshes. We compare our solution to a previous C-based implementation with respect to programmability and performance on heterogeneous platforms.

[1]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[2]  Christian Plessl,et al.  OpenCL-Based FPGA Design to Accelerate the Nodal Discontinuous Galerkin Method for Unstructured Meshes , 2018, 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[3]  M. König,et al.  Discontinuous Galerkin methods in nanophotonics , 2011 .

[4]  V. E. Henson,et al.  BoomerAMG: a parallel algebraic multigrid solver and preconditioner , 2002 .

[5]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[6]  J. Hesthaven,et al.  Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications , 2007 .

[7]  Jürgen Teich,et al.  Systems of Partial Differential Equations in ExaSlang , 2016, Software for Exascale Computing.

[8]  George Karypis,et al.  Parmetis parallel graph partitioning and sparse matrix ordering library , 1997 .

[9]  Jürgen Teich,et al.  ExaSlang: A Domain-Specific Language for Highly Scalable Multigrid Solvers , 2014, 2014 Fourth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing.

[10]  Yevgen Grynko,et al.  Light scattering by irregular particles much larger than the wavelength with wavelength-scale surface roughness. , 2016, Optics letters.

[11]  T. Meier,et al.  Collective effects in second-harmonic generation from split-ring-resonator arrays , 2012, 2012 Conference on Lasers and Electro-Optics (CLEO).

[12]  Stéphane Lanteri,et al.  Locally implicit discontinuous Galerkin method for time domain electromagnetics , 2010, J. Comput. Phys..

[13]  Andrew T. T. McRae,et al.  Firedrake: automating the finite element method by composing abstractions , 2015, ACM Trans. Math. Softw..

[14]  Andreas Dedner,et al.  A generic grid interface for parallel and adaptive scientific computing. Part I: abstract framework , 2008, Computing.

[15]  William Gropp,et al.  Efficient Management of Parallelism in Object-Oriented Numerical Software Libraries , 1997, SciTools.

[16]  Anders Logg,et al.  Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book , 2012 .

[17]  Tim Warburton,et al.  An explicit construction of interpolation nodes on the simplex , 2007 .

[18]  Chandrasegar Thirumalai,et al.  Evaluating software metrics of gaming applications using code counter tool for C and C++ (CCCC) , 2017, 2017 International conference of Electronics, Communication and Aerospace Technology (ICECA).

[19]  Alan Edelman,et al.  Julia: A Fast Dynamic Language for Technical Computing , 2012, ArXiv.

[20]  Yevgen Grynko,et al.  Simulation of Second Harmonic Generation from Photonic Nanostructures Using the Discontinuous Galerkin Time Domain Method , 2017 .

[21]  M. Carpenter,et al.  Fourth-order 2N-storage Runge-Kutta schemes , 1994 .