FEM Integration with Quadrature on the GPU

FEM Integration with Quadrature on the GPU

FEM Integration with Quadrature on the GPU Matthew Knepley Computation Institute University of Chicago Department of Molecular Biology and Physiology Rush University Medical Center GPU-SMP 2012 Shenzhen, China June 1–4, 2012 M. Knepley (UC) GPU GPU-SMP 1 / 38 Collaborators Andy R. Terrel Andreas Klöckner Jed Brown Robert Kirby M. Knepley (UC) GPU GPU-SMP 3 / 38 Why Scientific Libraries? Outline 1 Why Scientific Libraries? What is PETSc? 2 Linear Systems are Easy 3 Finite Element Integration 4 Future Direction M. Knepley (UC) GPU GPU-SMP 4 / 38 Why Scientific Libraries? Main Point To be widely accepted, GPU computing must be transparent to the user, and reuse existing infrastructure. M. Knepley (UC) GPU GPU-SMP 5 / 38 Why Scientific Libraries? Main Point To be widely accepted, GPU computing must be transparent to the user, and reuse existing infrastructure. M. Knepley (UC) GPU GPU-SMP 5 / 38 Why Scientific Libraries? Main Point To be widely accepted, GPU computing must be transparent to the user, and reuse existing infrastructure. M. Knepley (UC) GPU GPU-SMP 5 / 38 Why Scientific Libraries? Lessons from Clusters and MPPs Failure Parallelizing Compilers Automatic program decomposition Success MPI (Library Approach) PETSc (Parallel Linear Algebra) User provides only the mathematical description M. Knepley (UC) GPU GPU-SMP 6 / 38 Why Scientific Libraries? Lessons from Clusters and MPPs Failure Parallelizing Compilers Automatic program decomposition Success MPI (Library Approach) PETSc (Parallel Linear Algebra) User provides only the mathematical description M. Knepley (UC) GPU GPU-SMP 6 / 38 Why Scientific Libraries? What is PETSc? Outline 1 Why Scientific Libraries? What is PETSc? M. Knepley (UC) GPU GPU-SMP 7 / 38 Why Scientific Libraries? What is PETSc? What is PETSc? A freely available and supported research code Download from http://www.mcs.anl.gov/petsc Free for everyone, including industrial users Hyperlinked manual, examples, and manual pages for all routines Hundreds of tutorial-style examples Support via email: [email protected] Usable from C, C++, Fortran 77/90, and Python M. Knepley (UC) GPU GPU-SMP 8 / 38 Why Scientific Libraries? What is PETSc? What is PETSc? Portable to any parallel system supporting MPI, including: Tightly coupled systems Cray XT5, BG/Q, NVIDIA Fermi, Earth Simulator Loosely coupled systems, such as networks of workstations IBM, Mac, iPad/iPhone, PCs running Linux or Windows PETSc History Begun September 1991 Over 60,000 downloads since 1995 (version 2) Currently 400 per month PETSc Funding and Support Department of Energy SciDAC, MICS Program, AMR Program, INL Reactor Program National Science Foundation CIG, CISE, Multidisciplinary Challenge Program M. Knepley (UC) GPU GPU-SMP 8 / 38 Why Scientific Libraries? What is PETSc? The PETSc Team Bill Gropp Barry Smith Satish Balay Jed Brown Matt Knepley Lisandro Dalcin Hong Zhang Victor Eijkhout Dmitry Karpeev M. Knepley (UC) GPU GPU-SMP 9 / 38 Why Scientific Libraries? What is PETSc? Who Uses PETSc? Computational Scientists Earth Science PyLith (CIG) Underworld (Monash) Magma Dynamics (LDEO, Columbia) Subsurface Flow and Porous Media STOMP (DOE) PFLOTRAN (DOE) M. Knepley (UC) GPU GPU-SMP 10 / 38 Why Scientific Libraries? What is PETSc? Who Uses PETSc? Computational Scientists CFD Fluidity OpenFOAM freeCFD OpenFVM MicroMagnetics MagPar Fusion NIMROD M. Knepley (UC) GPU GPU-SMP 11 / 38 Why Scientific Libraries? What is PETSc? Who Uses PETSc? Algorithm Developers Iterative methods Deflated GMRES LGMRES QCG SpecEst Preconditioning researchers Prometheus(Adams) ParPre(Eijkhout) FETI-DP (Klawonn and Rheinbach) M. Knepley (UC) GPU GPU-SMP 12 / 38 Why Scientific Libraries? What is PETSc? Who Uses PETSc? Algorithm Developers Finite Elements PETSc-FEM libMesh Deal II OOFEM Other Solvers Fast Multipole Method (PetFMM) Radial Basis Function Interpolation (PetRBF) Eigensolvers (SLEPc) Optimization (TAO) M. Knepley (UC) GPU GPU-SMP 13 / 38 Why Scientific Libraries? What is PETSc? What Can We Handle? PETSc has run implicit problems with over 500 billion unknowns UNIC on BG/P and XT5 PFLOTRAN for flow in porous media PETSc has run on over 290,000 cores efficiently UNIC on the IBM BG/P Intrepid at ANL PFLOTRAN on the Cray XT5 Jaguar at ORNL PETSc applications have run at 22 Teraflops Kaushik on XT5 LANL PFLOTRAN code M. Knepley (UC) GPU GPU-SMP 14 / 38 Why Scientific Libraries? What is PETSc? What Can We Handle? PETSc has run implicit problems with over 500 billion unknowns UNIC on BG/P and XT5 PFLOTRAN for flow in porous media PETSc has run on over 290,000 cores efficiently UNIC on the IBM BG/P Intrepid at ANL PFLOTRAN on the Cray XT5 Jaguar at ORNL PETSc applications have run at 22 Teraflops Kaushik on XT5 LANL PFLOTRAN code M. Knepley (UC) GPU GPU-SMP 14 / 38 Why Scientific Libraries? What is PETSc? What Can We Handle? PETSc has run implicit problems with over 500 billion unknowns UNIC on BG/P and XT5 PFLOTRAN for flow in porous media PETSc has run on over 290,000 cores efficiently UNIC on the IBM BG/P Intrepid at ANL PFLOTRAN on the Cray XT5 Jaguar at ORNL PETSc applications have run at 22 Teraflops Kaushik on XT5 LANL PFLOTRAN code M. Knepley (UC) GPU GPU-SMP 14 / 38 Why Scientific Libraries? What is PETSc? Interface Questions How should the user interact with manycore systems? Through computational libraries How should the user interact with the library? Strong, data structure-neutral API (Smith and Gropp, 1996) How should the library interact with manycore systems? Existing library APIs Code generation (CUDA, OpenCL, PyCUDA) Custom multi-language extensions M. Knepley (UC) GPU GPU-SMP 15 / 38 Why Scientific Libraries? What is PETSc? Interface Questions How should the user interact with manycore systems? Through computational libraries How should the user interact with the library? Strong, data structure-neutral API (Smith and Gropp, 1996) How should the library interact with manycore systems? Existing library APIs Code generation (CUDA, OpenCL, PyCUDA) Custom multi-language extensions M. Knepley (UC) GPU GPU-SMP 15 / 38 Why Scientific Libraries? What is PETSc? Interface Questions How should the user interact with manycore systems? Through computational libraries How should the user interact with the library? Strong, data structure-neutral API (Smith and Gropp, 1996) How should the library interact with manycore systems? Existing library APIs Code generation (CUDA, OpenCL, PyCUDA) Custom multi-language extensions M. Knepley (UC) GPU GPU-SMP 15 / 38 Why Scientific Libraries? What is PETSc? Interface Questions How should the user interact with manycore systems? Through computational libraries How should the user interact with the library? Strong, data structure-neutral API (Smith and Gropp, 1996) How should the library interact with manycore systems? Existing library APIs Code generation (CUDA, OpenCL, PyCUDA) Custom multi-language extensions M. Knepley (UC) GPU GPU-SMP 15 / 38 Why Scientific Libraries? What is PETSc? Interface Questions How should the user interact with manycore systems? Through computational libraries How should the user interact with the library? Strong, data structure-neutral API (Smith and Gropp, 1996) How should the library interact with manycore systems? Existing library APIs Code generation (CUDA, OpenCL, PyCUDA) Custom multi-language extensions M. Knepley (UC) GPU GPU-SMP 15 / 38 Why Scientific Libraries? What is PETSc? Interface Questions How should the user interact with manycore systems? Through computational libraries How should the user interact with the library? Strong, data structure-neutral API (Smith and Gropp, 1996) How should the library interact with manycore systems? Existing library APIs Code generation (CUDA, OpenCL, PyCUDA) Custom multi-language extensions M. Knepley (UC) GPU GPU-SMP 15 / 38 Linear Systems are Easy Outline 1 Why Scientific Libraries? 2 Linear Systems are Easy 3 Finite Element Integration 4 Future Direction M. Knepley (UC) GPU GPU-SMP 16 / 38 Linear Systems are Easy Interface Maturity Some parts of PDE computation are less mature Linear Algebra Finite Elements One universal interface Many Interfaces BLAS, PETSc, Trilinos, FEniCS, FreeFEM++, DUNE, FLAME, Elemental dealII, Fluent Entire problem can be Problem definition requires phrased in the interface general code Ax = b Physics, boundary conditions Standalone component Crucial interaction with other simulation components Discretization, mesh/geometry M. Knepley (UC) GPU GPU-SMP 17 / 38 Linear Systems are Easy Interface Maturity Some parts of PDE computation are less mature Linear Algebra Finite Elements One universal interface Many Interfaces BLAS, PETSc, Trilinos, FEniCS, FreeFEM++, DUNE, FLAME, Elemental dealII, Fluent Entire problem can be Problem definition requires phrased in the interface general code Ax = b Physics, boundary conditions Standalone component Crucial interaction with other simulation components Discretization, mesh/geometry M. Knepley (UC) GPU GPU-SMP 17 / 38 Linear Systems are Easy Interface Maturity Some parts of PDE computation are less mature Linear Algebra Finite Elements One universal interface Many Interfaces BLAS, PETSc, Trilinos, FEniCS, FreeFEM++, DUNE, FLAME, Elemental dealII, Fluent Entire problem can be Problem definition requires phrased in the interface general code Ax = b Physics, boundary conditions Standalone component Crucial interaction with other simulation components Discretization, mesh/geometry M. Knepley (UC) GPU GPU-SMP 17 / 38 Linear Systems are Easy Interface Maturity Some parts of PDE computation are less mature Linear Algebra Finite

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    70 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us