Commit Graph

12212 Commits

Author SHA1 Message Date
Rui Peng Li
e7b0cf110c
Fix saved lassen (#1020)
This PR fixes a saved.lassen file left from #1019 .
2023-12-01 09:57:33 -08:00
Rui Peng Li
db1364a392
BigJ realloc (#623)
This PR fixes reallocation issues with CSR BigJ arrays.
2023-12-01 09:46:57 -08:00
Victor A. P. Magri
76b8adc21a
Update error.saved (#1019)
Update error.saved file after recent Wextra PR
2023-12-01 12:31:17 -05:00
Victor A. P. Magri
c662999d58
Fix tux regressions (#1018)
Fix allocation issue with hypre_CreateBinaryTree
2023-11-30 18:07:35 -05:00
Victor A. P. Magri
a544782335
Fix -Wextra warnings (#896)
This PR cleans many warning messages (more than 500) triggered by -Wextra. A detailed list of changes is given below:

* Fix maybe-uninitialized warnings
* Fix unused-parameter warnings
* Fix sign-compare warnings
* Fix implicit-fallthrough warnings
* Add HYPRE_UNUSED_VAR
* GenerateCoordinates -> hypre_GenerateCoordinates
2023-11-29 18:59:31 -05:00
Victor A. P. Magri
61fa167d71
Fix SuperLU_Dist interface (#1009)
Make use of SuperLU_Dist's internal data types instead of HYPRE_ variables.
2023-11-28 11:38:11 -05:00
Rui Peng Li
d003a2b781
Fix regression tests with-concurrent-hopscotch (#1013)
This PR fixes regressions with concurrent-hopscotch.
2023-11-20 12:09:19 -08:00
Rui Peng Li
9cb9640eea
Gpu init (#962)
This PR adds a lazy device initialization feature for GPU build.
2023-11-16 14:53:14 -08:00
Victor A. P. Magri
a67b6acc52
Improve FSAI performance for GPUs (#1010)
* Add Gauss-Jordan solve implementation for GPUs
* Improve FSAI defaults
* Update description of HYPRE_FSAISetAlgoType
2023-11-15 20:45:04 -05:00
Rui Peng Li
c215800934
CUDA compile flag check (#1003)
This PR relaxes the check of CUDA compile flags, which checks the equality of the major CUDA version of the compiled code, and also the minor version should not be larger than the GPU running on.
2023-11-15 11:43:16 -08:00
四月是你的谎言
cf43b16530
Fix misspell in HYPRE_FEI.doc (#1006) 2023-11-10 10:59:30 -05:00
Victor A. P. Magri
3e4087bac3
Add HYPRE_MGRSetFSolverAtLevel (#983)
Add hypre_MGRSetFSolverAtLevel and its public interface (HYPRE_).

This function is used to set the F-relaxation solver at a specific level in MGR.
2023-11-07 11:14:46 -05:00
Victor A. P. Magri
1593fbc474
Add hypre_Solver struct (#980)
* Add hypre_Solver struct
* Add hypre_PCGSetPreconditioner
* Add hypre_Solver info to AMG's struct
* Use public level function pointers
* Add HYPRE_PtrToDestroyFcn
* Remove redundant definitions and put external base objects in HYPRE_utilities.h
* Make use of new HYPRE_PCGSetPreconditioner in the IJ driver

---------

Co-authored-by: Rob Falgout <rfalgout@llnl.gov>
2023-11-06 12:30:24 -05:00
Rob Falgout
a601d70882
Release 2.30.0 (#1002) 2023-11-06 06:51:55 -08:00
Victor A. P. Magri
af8fba491b
Fix ILU solve (#970)
* Fix segfault in ILU solve when not using reordering and running on host (only affects block Jacobi case)

* Fix segfault in ILU solve when using iterative triangular solves with block Jacobi

---------

Co-authored-by: Daniel Osei-Kuffuor <oseikuffuor1@llnl.gov>
2023-11-02 03:21:00 -07:00
Wayne Mitchell
93bc0a63f8
Fix sycl shared build (#995)
Fix shared sycl build, remove extra magma variables, rerun update.sh
2023-10-31 14:19:28 -07:00
Rakesh Roy
fd31ec8357
Add support to rocm 6.0 (#996)
* Use hipPointerAttribute_t.type as HIP is removing hipPointerAttribute_t.memoryType
2023-10-31 08:18:32 -04:00
Rui Peng Li
b6c60065d2
superlu_dist support on GPUs (#869)
This PR adds superlu_dist support on GPUs.
2023-10-25 14:35:09 -07:00
Rui Peng Li
ca784500bc
Fix saved files (#994)
This PR adds the missing results in .saved.lassen files.
2023-10-25 07:51:28 -07:00
ulrikeyang
01a579fda7
Skipbreak (#993)
* added ability to skip breaks and a flexible CG version


---------

Co-authored-by: ulrikeyang <ulrikey@rztopaz572.llnl.gov>
2023-10-24 11:36:44 -07:00
Rui Peng Li
07fb84ed21
fix compile error (#991)
This PR fixes compile errors/warnings.
2023-10-23 09:39:42 -07:00
Victor A. P. Magri
2e29e665bb
Fix compilation on Windows (#990)
* Do not use dirent.h in windows
2023-10-19 10:56:58 -04:00
Victor A. P. Magri
14b5544d8b
Fix regressions (#988)
* CMake uses C99 by default
* HYPRE_PRINT_INDENT works without a loop
2023-10-17 10:28:34 -04:00
Victor A. P. Magri
8ff65e8124
Improve MGR data printing (#976)
This enhances what print_level can achieve in MGR. Particularly, now we can dump linear system info to files according to the print_level code. We also have the ability now of printing a sequence of linear systems to file (useful when hypre is used in time-stepping application).

A detailed list of changes is given below:

* Add utilities for creating/checking directories
* Add print_level codes to MGR and new info_path member
* Add hypre_MGRDataPrint
* Add call to hypre_MGRDataPrint and logic to update the print_level variable
* Update MGRSolve with new print_level logic
* Remove hypre_MGRWriteSolverParams
* Update documentation for HYPRE_MGRSetPrintLevel
* Implement new logic for HYPRE_MGR_PRINT_MODE_ASCII
2023-10-12 23:15:23 -04:00
Victor A. P. Magri
36cf73191f
Add MGR statistics (#897)
This PR improves statistics reporting for MGR.

A list with detailed changes is given below:
* Add MatrixStats and MatrixStatsArray
* Add hypre_squared utility
* Fix divisor line location for Rectangular matrices
* Minor fix on hypre_squared definition
* Move nonzero variable definitions up
* Initialize global number of nonzeros at matrix creation
* Add hypre_ParCSRMatrixStatsArray and helper functions
* Add par_csr_matstats_device
* Add par_mgr_stats
* Print F-relax data only once
* Fix clang-13 build
* IJ driver now passes in print_level option to MGR
* GPU runs always require A_FF in MGR
* Add HYPRE_PRINT_SHIFTED_PARAM macro
* Add hypre_IntArraySetInterleavedValues (host/device implementations)
* Fix F-relaxation reporting + refactoring
* Update global number of nonzeros of the matrix
* Move new BoomerAMG functions to par_stats
* Apply astyle
2023-10-12 16:32:29 -04:00
Wayne Mitchell
a84fe35022
SYCL triangular solves, Chebyshev relaxation, etc. (#972)
Adding more sycl functionality including chebyshev relaxation and triangular solves,
which in turn enables Gauss-Seidel, ILU, etc.
2023-10-11 15:05:21 -07:00
Victor A. P. Magri
3e56e6e590
Fix MSVC build (#978)
* Allocate buffer on heap memory
* Fix Pragma definition for MSVC
* Fix uninitiliazed variable
* Loop counter cannot be non-negative for MSVC
2023-10-10 08:28:24 -04:00
Victor A. P. Magri
fc49a5ec6b
Add CUDA support to dense direct solver options (#950)
This PR adds CUDA support to dense direct solver options (98, 99, 198, and 199) of BoomerAMG and MGR:
  - Options 98 and 99 compute the LU factorization with pivoting.
  - Options 198 and 199 compute the dense inverse matrix explicitly.

Detailed list of changes below:

* Add hypre_ParCSRMatrixToCSRMatrixAll_v2
* Add hypre_SeqVectorMigrate
* Add hypre_ParVectorToVectorAll_v2
* Refactor implementation of BoomerAMG's Gaussian Elimination
* Add hypre_GaussElimAllSetup and hypre_GaussElimAllSolve
* Add device support via MAGMA and cuSOLVER to BoomerAMG's LU coarsest linear solver (options 98, 99)
* Add device support via MAGMA and cuSOLVER to BoomerAMG's exact inverse solver (options 198, 199)
* Add wrappers to MAGMA's getrf and getrs
* Add MAGMA info on AMG stats + code formatting
* Add wrappers to cuSOLVER and cuBLAS functions
* Add wrapper hypre_magma_getri_nb
* Add header file for collecting hypre functors
* Add memory location to Gaussian elimination data structure
* Improve description of coarsest level solver options
* Update GE data structure in MGR
* Change Ainv to Awork
2023-10-08 11:39:50 -04:00
Victor A. P. Magri
dcd6468ae4
Fix regression tests (#979)
Initialize `P_max_elmts` if not set by user.
2023-10-04 10:16:20 -04:00
Victor A. P. Magri
8b7e65a231
Add HYPRE_MGRSetLevelPMaxElmts (#975)
Also adds its private interface, and accompanying code (#975)
2023-10-03 06:51:04 -04:00
Wayne Mitchell
27b8471742
Doc updates (#974)
* Updated documentation for clarity and to clean up a few typos.
* Add warning messages to FEI,  ParaSails, PILUT, Euclid.
* Improved and updated GPU information
* Added CMake build information
2023-09-28 18:43:53 -07:00
Victor A. P. Magri
57862ef6e2
Add HYPRE_GetExecutionPolicyName (#969)
* Add HYPRE_GetExecutionPolicyName
* Add doc entries to memory/execution routines
2023-09-22 16:02:53 -04:00
Victor A. P. Magri
593fe4cba7
Apply Debian patches (#966)
1. Fix make checkpar
2. Add missing `finalizeAllTimings
3. Add error code support to checktest.sh

---------

Co-authored-by: Drew Parsons <dparsons@debian.org>
2023-09-22 14:41:40 -04:00
Rui Peng Li
36ab29ba09
L1 HSGS (#927)
This PR provides a convergent l1-hybrid symmetric Gauss-Seidel (HSGS) method.
2023-09-05 12:44:05 -07:00
tisaac
cd8f9c363e
Keep smooth_num_levels in sync with amg_data (#954)
This solves an out-of-bounds memory error during `hypre_BoomerAMGSetup` when called multiple times without a call to `hypre_BoomerAMGDestroy` interleaved. This pull request makes sure that `smooth_num_levels` is reset to `hypre_ParAMGDataSmoothNumLevels(amg_data)` before the smoothers variable is allocated.
2023-09-05 15:29:30 -04:00
Victor A. P. Magri
0e43aec1d4
Add Binary I/O functions for IJ matrices and vectors (#826)
This PR adds new Print and Read functions for matrices and vectors to be stored/read in binary format. A detailed list of changes is given below:

* Add IJMatrix/ParCSRMatrix routines for binary I/O
* Add IJVector/ParVector routines for binary I/O
* Add typedefs for unsigned integer types and single-precision floating-point
* Change char sizes to HYPRE_MAX_FILE_NAME_LEN
* Add options to IJ driver for reading binary matrices/vectors
* Add regression tests for IJ input/output
2023-08-27 20:10:55 -04:00
Victor A. P. Magri
b372b31a11
Change sh to bash (#900)
Change shell scripts from `#!/bin/sh` to `#!/bin/bash`
2023-08-16 20:09:43 -04:00
Victor A. P. Magri
03b9d3d090
Fix Copyright message (#951)
Fix year in Copyright message of a few source files.
2023-07-20 21:27:37 -04:00
Victor A. P. Magri
9449cb919e
Add MAGMA option to FSAI (#940)
Allow the use of MAGMA as local linear solver for FSAI.
Add `HYPRE_FSAISetLocalSolveType` for choosing the local linear solve type used in FSAI and add `HYPRE_BoomerAMGSetFSAILocalSolveType` for the case when FSAI is used as a smoother to BoomerAMG.
2023-07-20 19:19:20 -04:00
Victor A. P. Magri
31e3bf3b06
Add FSAI support with CUDA and HIP (#739)
This PR adds CUDA and HIP support to FSAI according to a static pattern generation algorithm. The resulting method can also be used as a preconditioner for BoomerAMG. A detailed list of changes is given below:

* Add par_fsai_device.c 
* Add hypre_FSAIApply
* Add function to dump local linear systems in dense format
* Implement static FSAI pattern computation via powers of A
* Improve filtering of candidate pattern
* Improve local linear systems extraction
* Add option for a 125pt matrix (27pt squared)
* Add options to control sizes of the memory pools with umpire
* Add hypre_GpuProfiling calls
* Improve candidate pattern truncation times
* Add max_nnz_row member and its private and public functions to FSAI
* Use max_nnz_row in FSAISetupDevice
* Add num_levels member and its private and public functions to FSAI
* Add threshold member and its public/private functions to FSAI
* Expose FSAI algorithm type to BoomerAMG
* Expose options to control FSAI setup
* Add cuSOLVER variables and calls
* Add batched dense linear solver calls to FSAI
* Improve execution time for generating random numbers
* Show FSAI parameters when amg_print_level >= 1
* Improve output of FSAIPrintStats 
* Implement warp calls
* Add hypre_mask type and hypre_ballot_sync wrapper function
* Add hypre_popc and hypre_ffs wrapper functions
* Implement warp_allreduce_max calls
* Change: hypreDevice -> hypre_*Device
* Add rocSOLVER calls
* Apply astyle
* Remove redundant line
2023-07-20 12:34:53 -04:00
Victor A. P. Magri
7df4f63377
Improve ILU documentation (#939)
Add warnings for Euclid and PILUT redirecting users to hypre-ILU.
Rewrite hypre-ILU overview section.
Add new sections to hypre-ILU documentation: "User-level functions", "ILU as smoother for BoomerAMG", and "GPU support".
Include info about new iterative ILU options.
Update BoomerAMG complex smoothers section.
Change name "hypre-ILU" to "ILU"
2023-07-17 13:43:57 -04:00
adam-sim-dev
64604ec075
Fix typo in krylov solvers comments (#938) 2023-06-24 08:47:02 -04:00
Rob Falgout
09d4bd8849
Update mac autotest to use a tolerance when diffing residual norms (#926) 2023-06-23 10:42:28 -07:00
Rob Falgout
8f6bdc6ab8
Release 2.29.0 (#936) 2023-06-23 05:01:41 -07:00
Victor A. P. Magri
5e0bf05b42
Fax valgrind issue in AIR (#930) 2023-06-20 15:52:18 -04:00
Victor A. P. Magri
64ce05b405
Offd num cols fix (#901)
Modified from #718, this PR squashes out zero columns of the off-diagonal part of a `hypre_ParCSRMatrix`.

The issue was in offd there exist empty columns (columns with no nonzeros), which correspond to "useless" entries in col_map_offd. This caused issues in at coarser grids in the communications with large number of ranks. We added a routine to compress the zero columns out and shorten col_map_offd. This should reduce communication cost even at higher levels.

Two sources of the empty columns have been located and fixed:
 - Truncation after building P
 - P^T(AP): only the transpose multiplication part.

---------

Co-authored-by: Noel Chalmers <noel.chalmers@gmail.com>
Co-authored-by: Ruipeng Li <li50@llnl.gov>
Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2023-06-19 20:18:26 -04:00
Victor A. P. Magri
a39cecc555
Fix compilation error (#929)
This PR fixes a compilation error that arises in PETSc when hypre is used
2023-06-17 22:21:37 -04:00
Victor A. P. Magri
18b98805ba
Extend ILU support to AMD GPUs (#877)
This PR adds HIP support to hypre_ILU (setup and solve phases):

-   Algorithm type 0 (BJ-ILU0)
-   Algorithm type 10 (GMRES-ILU0)
-   Iterative triangular solves for backward and forward substitutions.

---------

Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2023-06-15 20:10:52 -04:00
Rui Peng Li
72f5f3e136
Cuda versions (#879)
This PR adds support and regression tests for all the versions from CUDA 9.0 to 12.0.
2023-06-15 06:26:12 -07:00
Rui Peng Li
7d1d9ca95c
ame/ams to use Jacobi on GPUs (#924)
This PR updates the ams driver to use Jacobi smoothers on GPUs.
2023-06-14 13:25:59 -07:00