Commit Graph

12184 Commits

Author SHA1 Message Date
Rui Peng Li
2391e4703f
Fix memory tracker with omp (#844)
This PR fixes hypre memory tracker with OMP threading.
2023-03-22 16:01:24 -07:00
Wayne Mitchell
1eabaf5f33
Report error on hypre calls outside of HYPRE_Init() - HYPRE_Finalize() (#837)
When hypre handle is not initialized and a call to hypre_handle() is made, report an error and call HYPRE_Init() rather than just calling hypre_HandleCreate() with no error reporting.
2023-03-21 14:31:52 -07:00
Victor A. Paludetto Magri
9e84e35bf4
Add ILU device support independent of UVM (#816)
This PR has three main goals:
 1. Enable ILU to work without UVM on device builds.
 2. Add the runtime switch option to ILU. Thus, in device builds, one can choose now whether to execute ILU's setup and solve on the device or host.
 3. Improve error handling. e.g, when trying to execute on the device ILU types that are not supported yet.

A summary of the code changes is given below: 

* Enable ILU reordering algorithms to work without UVM memory.
* Update hypre_ILUSetupILU0Device with new intArray functions
* Fix memory location of S_offd + style updates
* Simplify hypre_ParILUCusparseILUExtractEBFC
* Remove unused function: hypre_ParILUCusparseExtractDiagonalCSR
* Refactor hypre_ILUGetInteriorExteriorPerm
* Refactor hypre_ILULocalRCM
* Refactor hypre_ILUSortOffdColmap
* Refactor hypre_ILUGetLocalPerm
* Refactor hypre_ILUGetPermddPQ
* Fix memory transfer at hypre_ILUGetInteriorExteriorPerm
* Add error messages for ILUK and ILUT for device runs
* Add error messages for GMRES-ILUK and GMRES-ILUT for device runs
* Add execution policy to ILU setup/solve
* Bug fixes for -exec_host/-memory_host on device builds
* Add ILU reordering option to IJ driver
* Refactor hypre_ILUSetupILUKDevice
* Refactor hypre_ILULocalRCM
* Remove duplicated code
* Bug fix on hypre_ILUGetPermddPQPre
* Update lassen results in accordance with CPU runs

---------

Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2023-03-18 17:26:40 -04:00
Victor A. Paludetto Magri
deece5580f
Auxiliary space preconditioners fix (#859)
This PR fixes the data type of cheby_fraction used as input in the SetChebySmoothingOptions functions of AMS and ADS
2023-03-17 14:29:37 -04:00
Rob Falgout
c3ce7b9f17
Fix typo in AMS Poisson matrix description (#863) 2023-03-17 10:48:17 -07:00
Victor A. Paludetto Magri
2a61eb41ad
Add cuSOLVER and rocSOLVER support (#840)
Add cuSOLVER and rocSOLVER support to configure (autotools build) and add macro calls for functions defined in these libraries.
2023-03-17 12:04:07 -04:00
Rob Falgout
2ec3effbde
Release 2.28.0 (#861) 2023-03-17 07:28:55 -07:00
Victor A. Paludetto Magri
31e8cd64f6
Improve error handling for multi-component vectors - Minor fix
See previous PR.
2023-03-14 18:08:20 -04:00
Victor A. Paludetto Magri
04d1991625
Improve error handling for multi-component vectors (#848)
This PR improves error handling for preconditioners and relaxation methods that do not support multi-component vectors yet.
2023-03-14 18:03:37 -04:00
Victor A. Paludetto Magri
16c4d8304d
Change hypre_AuxParCSRMatrix variables to HYPRE_BigInt (#842)
This PR changes the type of four variables in the auxiliary matrix data structure to avoid the multiplication of integers and floating-point numbers during `hypre_IJMatrixSetAddValuesParCSRDevice`
2023-03-07 20:24:56 -05:00
Rob Falgout
6907852618
Autoconf update (#765)
Updating to autoconf 2.71 for building the 'configure' script

Also updated 'config.guess' and 'config.sub' to the 2023 versions
2023-02-16 09:42:07 -08:00
Wayne Mitchell
a30bd53628
Fix memory leak in sycl reduction boxloop (#836)
Fix memory leak in sycl reduction boxloop
2023-02-14 08:55:37 -08:00
Wayne Mitchell
a592bbd12b
Sycl matmat (#716)
Fixes for oneMKL sparse matmat and port of our custom spmv and spgemm routines to sycl. Note that this also involves significant updates to basic handling of kernel launches in sycl due to the need to support multi-dimensional kernels and the use of local shared memory.
2023-02-10 08:21:11 -08:00
Victor A. Paludetto Magri
0bfcdbbf19
Add CSRMatrix functions (#815)
This PR adds the following routines to CSRMatrix data types:

* hypre_CSRMatrixMigrate
* hypre_CSRMatrixPermute
* hypre_CSRMatrixPrintIJ
2023-02-09 10:07:30 -05:00
Victor A. Paludetto Magri
67d3fe4532
Add vector resizing functions (#829)
This PR adds hypre_SeqVectorResize and hypre_ParVectorResize for resizing sequential and parallel vectors, respectively. This is useful for block-Krylov solvers/eigensolvers using BoomerAMG and multi-component vectors.
2023-02-08 18:14:32 -05:00
Daniel Osei-Kuffuor
ddc548f906
Extend hypre complex (#824)
* Enable HYPRE_COMPLEX to accept precision types supported by hypre.
2023-02-08 10:13:20 -08:00
Wayne Mitchell
c964884062
Update Tioga Regressions (#833)
Fix batch submission and update .saved files for Tioga regression testing.
2023-02-07 15:48:51 -08:00
Daniel Osei-Kuffuor
065613399b
Fix floating point conversion warnings (#827)
* Updated gcc compiler flags for strict-checking build option to throw floating point conversion warnings
* Several minor edits to clean up floating point conversion warnings and minor bugs.  
* Updated saved files to reflect changes.
2023-02-06 13:53:14 -08:00
Victor A. Paludetto Magri
832ad94de3
Fix data conversion issues (#831)
This PR fixes a few compilation issues introduced in the previous PR involving the --enable-single and --enable-mixedint builds
2023-02-03 17:01:02 -05:00
Victor A. Paludetto Magri
53dfbe360f
Add axpyz kernels (#810)
This PR adds SeqVector and ParVector functions for computing: z = a * x + b * y
2023-02-02 21:55:53 -05:00
Victor A. Paludetto Magri
d3f6b03c87
Add matrix scaling function (#814)
This PR adds hypre_ParCSRMatrixDiagScale for computing left and right parallel matrix scaling. The function also works when one of the scaling factors, which are stored as vectors, are not present. Regression tests have been added for this new function.
2023-01-23 09:21:15 -05:00
Daniel Osei-Kuffuor
52802b646e
Direct frelax solve -- bugfix (#820)
Bugfixes and code cleanup for F-relaxation setup that use direct solvers and complex smoothers.
2023-01-13 14:06:36 -08:00
Rob Falgout
98c4321fee
Modify check-license.sh to ignore '.png' files (#819) 2023-01-12 16:26:54 -08:00
Rob Falgout
41fa152e34
Migrate docs to read-the-docs theme (#803)
This switches the Sphinx documentation style to improve rendering of the "API" pages.
2023-01-11 15:19:10 -08:00
Victor A. Paludetto Magri
b9d3eccbe3
Add new hypre_IntArray functions (#807)
The new functions are:

* Add hypre_IntArrayPrint
* Add hypre_IntArrayMigrate
* Add hypre_IntArrayRead
* Add hypre_IntArrayInverseMapping
2023-01-05 19:02:11 -05:00
Victor A. Paludetto Magri
41961c2935
Fix RAP memory leak (#806)
This PR fixes a memory leak in the parallel RAP routine that arises when a single task is used and R contains `diagT` at input.
2023-01-05 16:24:06 -05:00
Victor A. Paludetto Magri
79e4ddb5a8
Access pointer data only if it is not NULL (#809)
This PR solves the GitHub issue #808
2023-01-05 16:16:22 -05:00
Daniel Osei-Kuffuor
2b1dd32d10
Direct frelax solve (#805)
* Added new options to use GE for F-relaxation
* Updated documentation to include new options.
2023-01-02 03:03:38 -08:00
Rob Falgout
45b6cdb1a0
Add mac regression test and modify runtest.sh for portability (#796)
The expression '\t' for <tab> does not work on the mac, so the whitespace
expressions were changed to use the posix standard '[[:space:]]'.
2022-12-21 08:34:48 -08:00
Rob Falgout
b9596c6b55
Updating User Manual to point to the API chapter instead of Reference Manual (#802) 2022-12-20 13:14:57 -08:00
Rob Falgout
f851603eee
Release 2.27.0 (#801)
Update CHANGELOG and version number for release 2.27.0
2022-12-20 09:25:06 -08:00
Rui Peng Li
9a16ff8edb
fix _hypre_utilities.h; !!!PLEASE DO NOT CHANGE THIS FILE DIRECTLY!!! (#799)
This PR fixed an issue in _hypre_utilities.h from previous PRs.
2022-12-19 11:35:31 -08:00
Rob Falgout
80ea9be26a
Implement AddFEMBoxValues() routines (#779)
Introduce new AddFEMBoxValues() routines to improve system setup time when using the SStruct finite element interface.  This initial implementation can produce significant speedups, but there is room for future optimizations.

Co-authored-by: Victor A. P. Magri <paludettomag1@llnl.gov>
2022-12-15 17:21:08 -08:00
Sarah Osborn
182db6cf0e
Update CMake version in install directions (#793) 2022-12-14 13:33:03 -08:00
Victor A. Paludetto Magri
c8f1aba2d6
Add hypre_IntArrayCount (#776)
This PR adds the function hypre_IntArrayCount for counting the number of occurrences of a value in a hypre_IntArray. Also, it moves device methods to a new file int_array_device.c.

Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-12-14 12:21:55 -08:00
Victor A. Paludetto Magri
1cc7e81e21
Fix strict prototypes (#774)
This PR cleans the code for the warning Wstrict-prototypes. This flag was also added to the debug build of machine-tux.

Co-authored-by: Pierre Jolivet <pierre@joliv.et>
2022-12-14 11:13:20 -08:00
Victor A. Paludetto Magri
69f74995e0
Add new search paths for the NVIDIA math libs (#788)
This PR adds two new search paths for the NVIDIA math libraries (cuSPARSE, cuBLAS, cuSOLVER). This fixes build issues on Polaris and Perlmutter.

* Add two new search paths for the NVIDIA math libs to configure
* Turn off CUDA math libs when CUDA is disabled
2022-12-13 17:56:56 -05:00
Rui Peng Li
322b9d10cc
NekRS (#702)
This PR adds the optimizations in IJ solvers that were done for NekRS.
2022-12-09 08:46:52 -08:00
Victor A. Paludetto Magri
8f51e49402
Bug fixes involving mixedint option and CUDA build (#783)
This PR fixes a few variable types inconsistencies arisen from the mixedint build. Additionally, it fixes the CUDA-11.1.1 build.

* Fix cuSPARSE version tag for using generic SpMM and new SpMV algorithms
* Bug fixes on hypre_ILU: S_row_starts computation and m -> big_m
* Bug fix: HYPRE_MPI_REAL -> HYPRE_MPI_COMPLEX
* Bug fix: HYPRE_Int -> HYPRE_BigInt
* Bug fix: HYPRE_MPI_INT -> HYPRE_MPI_BIG_INT

Co-authored-by: TotoGaz <49004943+TotoGaz@users.noreply.github.com>
2022-12-07 22:52:15 -05:00
ulrikeyang
af9c59cc34
Bench22 (#786)
* added changes required for the new AMG benchmark, including a new routine that returns wall clock time and some new parameters which generate cumulative numbers of nonzeros for A, coarse grid and prolongation operators in AMG
2022-12-07 14:35:18 -08:00
Wayne Mitchell
9bbdd9799f
SYCL regression testing (#778)
Several bug fixes and small changes for the sycl build. Addition of full regression testing on florentia with consistent and correct results for struct and ij tests with sycl backend.
2022-12-05 16:21:03 -08:00
Rui Peng Li
2826c39ed4
update lassen results (#784)
This PR updates lassen results with small changes.
2022-12-01 14:26:15 -08:00
Victor A. Paludetto Magri
dcbd6d724b
Generalize hypre_ParCSRMatrixGenerateFFFC (#772)
This PR modifies hypre_ParCSRMatrixGenerateFFFC to act as a wrapper between the host and device implementations. Consequently, hypre_ParCSRMatrixGenerateFFFCHost has been added.
2022-11-30 09:13:39 -08:00
Victor A. Paludetto Magri
b93beb9465
Update function comments (#770)
This PR updates a few function comments and serves as a test for pull requests after master has been marked as protected
2022-11-03 23:16:22 -04:00
Rob Falgout
aff83e81fc
Use $(MAKE) instead of (non-portable) make (#763) (#766)
Cf. #755 (comment).

Co-authored-by: prj- <prj-@users.noreply.github.com>
2022-11-03 13:35:43 -07:00
Victor A. Paludetto Magri
a6228149b2
Change CUDAKernel -> GPUKernel (#769)
This PR updates function names starting with hypre_CUDAKernel to hypre_GPUKernel
2022-11-03 13:26:46 -07:00
Rui Peng Li
5467d2941d
ILU Iter trisolve impl (#717)
This PR adds Jacobi iterative solver for ILU smoother/preconditioner implemented on CPU/GPU. 
Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2022-11-02 14:18:56 -07:00
Victor A. Paludetto Magri
c886ad9f71
MGR - HIP support (#719)
This PR adds HIP support to MGR. Additionally:

* Add sanity checks at Setup and Solve functions
* Fix a bug in the computation of P_FF on MGR when using GPUs.
* Enable AMG level profiling with HIP
* Enable ROCTX regions in the IJ driver
2022-11-02 10:54:59 -04:00
Sarah Osborn
843e8c71ef
Add Umpire options to CMake and finish Caliper option (#762)
* Update cmake to include umpire options

* Finish caliper cmake option
2022-10-27 14:50:24 -07:00
Paul Tsuji
247c168ee7
bugfix/tsuji1/dsuperlu to update FEI interface (#748)
* Fixing the FEI interface to SuperLU_Dist. This uses the same structs
as src/parcsr_ls/dsuperlu.c.

* Updates to the CMake build system and other spots to support SuperLU_Dist, SuperLU, and the FEI.
Some Windows build bits.

* Reverting this change, it's just in the comments.

* Changes from Tim Dunn's FEI branch (feature/dunn13/tad220914-fei).
This prevents the solver from exiting out with a failure even though
the initial guess is the solution. There is also a fix to prevent a
floating point exception.

* Removing this #ifndef, as it is no longer necessary for our Windows build.

* Only enable CXX if building the FEI.
2022-10-26 11:08:18 -07:00