1 / 21

Integrating Trilinos Solvers into SEAM Code for Enhanced Performance and Scalability

This paper presents the integration of Trilinos solvers, including AztecOO, Epetra, Nox, and Ifpack, into the SEAM code for efficient and scalable atmospheric modeling. We examine various solver algorithms such as CG, CGS, BICGStab, and GMRES, exploring the use of different preconditioners like Diagonal Jacobi and Domain Decomposition. The implementation involves matrix-free techniques and is built upon MPI for parallel execution. Results demonstrate significant speedup when using the Aztec solvers, with detailed performance metrics across different processor configurations.

aviv
Télécharger la présentation

Integrating Trilinos Solvers into SEAM Code for Enhanced Performance and Scalability

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Integrating Trilinos Solvers to SEAM code Dagoberto A.R. Justo – UNM Tim Warburton – UNM Bill Spotz – Sandia

  2. SEAM (NCAR) Trilinos (Sandia Lab) • AztecOO • Epetra • Nox • Ifpack • PETSc • Komplex Spectral Element Atmospheric Method

  3. AztecOO • Solvers • CG, CGS, BICGStab, GMRES, Tfqmr • Preconditioners • Diagonal Jacobi, Least Square, Neumann, Domain Decomposition, Symmetric Gauss-Seidel • Matrix Free implementation • C++ (Fortran interface) • MPI

  4. Implementation A Z T E C SEAM CODE . . . Pcg_solver . . (F90) Pcg_solver . . Aztec_solvers( ) . (F90) Sub Aztec_solvers . AZ_Iterate( ) (C) Matrix_vector_C (C) Prec_Jacobi_C (C) Matrix_vector . (F90) Prec_Jacobi . (F90)

  5. Machines used • Pentium III Notebook (serial) • Linux, LAM-MPI, Intel Compilers • Los Lobos at HPC@UNM • Linux Cluster • 256 nodes • IBM Pentium III 750 MHz, 256 KB L2 Cache, 1 Gb RAM • Portland Group compiler • MPICH for Myrinet interconnections

  6. Graphical Results from SEAM Mass Energy

  7. Memory(in Mbytes per processor)

  8. Speed Up • From 1 to 160 processors. • Time of Simulation 144 time iterations x 300 s = 12 h simulation • Verify results using mass, energy,… • (Different result for 1 proc)

  9. Speed Up – SEAMselecting # of elements ne=24x24x6

  10. Speed Up – SEAMselecting order np=6

  11. Speed Up – SEAM+Aztecbest: cgs solver

  12. Speed Up – SEAM+Aztecbest: cgs solver + Least Square preconditioner

  13. Speed Up – SEAM+Aztecincreasing np -> increases speedup

  14. Upshot – SEAM(One CG iteration)

  15. Upshot – SEAM(matrix times vector communication)

  16. Upshot – SEAM+Aztec(One CG iteration)

  17. Upshot – SEAM+Aztec(Matrix times vector communication)

  18. Upshot – SEAM+Aztec(Vector Reduction)

  19. Time (24x24x6 elements, 2 proc.)

  20. Conclusions &Suggested Future Efforts • SEAM+Aztec works! • SEAM+Aztec is 2x slower difference in CG algorithms SEAM+Aztec time-iteration is 50% slower  0.1% of time lost in calls, preparation for Aztec. • More time  better tune-up. • Domain decomposition Preconditioners

  21. Conclusions &Suggested Future Efforts • SEAM + Aztec works! • More time  better tune-up.

More Related