Commit Graph

31 Commits

Author SHA1 Message Date
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
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
Rob Falgout
f478498295
New error handling feature to print messages to memory (#920)
This allows users to direct hypre's error messages to a memory buffer instead of stderr.  With this, there are now three basic ways to use hypre when configured --with-print-errors:
- Default (mode 0): Errors are printed immediately to stderr (there is no processor information available in this print).
- Store errors in memory (mode 1) and call PrintErrorMessages to print them.
- Store errors in memory (mode 1) and call GetErrorMessages to manage the error messages however you like.
2023-06-13 20:17:25 -07:00
Victor A. P. Magri
fbfc271cfa
Remove deprecated warning from Init (#899)
When using HYPRE_Init, the compiler no longer gives a deprecated function warning message.
2023-05-08 10:24:32 -04:00
Victor A. P. Magri
dc487086b4
Add HYPRE_Initialized and HYPRE_Finalized (#889)
* Add hypre_State type to track initialization state of hypre
* Add HYPRE_Initialized to determine whether hypre has been initialized
* Add HYPRE_Finalized to determine whether hypre has been finalized
* Add private implementations for hypre_initialized/finalized
* Add HYPRE_Initialize
* Update Fortran interface for HYPRE_Initialize
* Use HYPRE_Initialize in test drivers and examples
* Clean-up mentions of HYPRE_Init
* Add HYPRE_DEPRECATED macro to autotools and CMake builds
* Add regression test for library initialization/finalization
2023-05-04 10:42:40 -04: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
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
Rui Peng Li
5546cc22d4
Runtime switch and memory tracker (#741)
This PR adds "runtime switch" feature to the solvers in hypre.

Co-authored-by: Victor A. P. Magri <paludettomag1@llnl.gov>
Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-10-07 08:39:00 -07:00
Ruipeng Li
ef3f890d4b
Nvcollab (#591)
This PR contains various GPU optimizations in the collaboration with the NVIDIA team. 

Co-authored-by: Peng Wang <penwang@nvidia.com>
2022-05-24 13:27:32 -07:00
Wayne Mitchell
dfdd1cd12f
Sycl par matmat (#611)
Further unification of GPU implementation across cuda/hip/sycl.
Implements the parallel matrix matrix product in sycl.
HYPRE_CUDA_LAUNCH and HYPRE_SYCL_LAUNCH macros have 
been unified under HYPRE_GPU_LAUNCH for kernel launches.
Replace HYPRE_SetSpGemmUseCusparse with HYPRE_SetSpGemmUseVendor.
2022-05-09 15:24:44 -07:00
Victor A. Paludetto Magri
e16167fe46
Fix copyright (#615)
This PR updates Copyright headers from "Copyright 1998-2019 ..." to "Copyright (c) 1998 ..."
2022-04-05 16:19:51 -07:00
Rob Falgout
805ee77be8
Adding source file indentation with astyle (#498)
This PR adds automatic indentation using Artistic Style (astyle).  The script config/astyle-apply.sh runs the indentation using the configuration file config/astylerc.  The script also runs headers in all of the directories that automatically generate internal _hypre_*.h header files.  Much of this was borrowed from the MFEM project.  A pre-commit git hook was also added.
2021-11-08 19:26:59 -08:00
Ruipeng Li
3bc7d267ef
Gpu default (#336)
This PR changes AMG defaults regarding GPUs at various places, adds regression tests on GPUs, simplifies CUDA boxloop implementations. 

Co-authored-by: Sarah Virginia Osborn <osborn9@llnl.gov>
Co-authored-by: PaulMullowney <pmullown@nrel.gov>
Co-authored-by: Daniel Osei-Kuffuor <oseikuffuor1@llnl.gov>
Co-authored-by: Ruipeng Li <li50@euler.llnl.gov>
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
2021-05-24 17:16:35 -07:00
Ruipeng Li
3438132e1a
GPU examples (#268)
This PR adds GPU-support to hypre's examples. A new `Makefile_gpu` is provided in `src/examples` as an sample makefile, so one can compile the examples with make -f Makefile_gpu if hypre has been built with GPUs.
2021-02-09 11:19:05 -08:00
Ramesh Pankajakshan
414fa671be
Umpire (#243)
This PR contains the support of UMPIRE pooling allocators for host and GPU memory. Configure hypre with --with-umpire, device and uvm allocations and deallocations are done with umpire, whereas host pool is not enabled by default. This PR also includes some other minor changes:

Adding .gitignore to the repo
Removing all malloc/calloc/realloc/free and regression testing on finding them
No longer compile ij.c with C++ compiler. It goes back to a C code now.
Introducing HYPRE_USING_GPU, which is equivalent to HYPRE_USING_CUDA || HYPRE_USING_DEVICE_OPENMP
Adding a few user-level interfaces: HYPRE_SetMemoryLocation, HYPRE_SetExecutionPolicy, HYPRE_SetGPUMemoryPoolSize and HYPRE_CSRMatrixSetSpGemmUseCusparse

Co-authored-by: li50@llnl.gov <liruipengblue@gmail.com>
Co-authored-by: Rob Falgout <rfalgout@llnl.gov>
Co-authored-by: Ruipeng Li <li50@llnl.gov>
2021-02-03 12:31:25 -08:00
Rob Falgout
4542bf0941 Fixed header usage problems and added regression test
- Fixed improper inclusion of _hypre_utilities.h in user header files
- Added a 'check-headers.sh' regression test that compiles the examples with
  options that output header usage, then checks for internal header files
- Moved HYPRE_Init() to 'HYPRE_utilities.h'
2020-06-02 10:05:01 -07:00
Ruipeng Li
2e843c5121 fixed typos 2020-03-26 17:00:30 -07:00
Ruipeng Li
1afd4a09a9 memory model, exec policy, etc 2020-02-24 22:16:18 -08:00
Ruipeng Li
60101610dc 1. put l1-norms inside container hypre_vector 2. code restructure 2020-02-06 13:56:03 -08:00
Ruipeng Li
3d9f90e8c8 revoke all format changes 2019-11-05 14:14:00 -08:00
Ruipeng Li
abee12a098 only format changes [typos, trailing whitespaces, tabs] 2019-11-05 11:11:23 -08:00
Rob Falgout
48c9f0b972 Changed all of the headers 2019-07-07 19:26:24 -07:00
Ulrike Yang
97cd175d54 fixed various bugs, race conditions, etc 2019-03-04 11:40:58 -08:00
Ulrike Yang
84d50104d9 Added HYPRE_BigInts in various places 2019-02-15 15:04:27 -08:00
Rob Falgout
28d6204d00 First implementation of hypre version functions 2018-10-11 18:26:41 -07:00
Rob Falgout
e758460272 Added single/longdouble to cmake and added regression tests to tux autotest 2017-05-15 17:37:19 -07:00
Daniel Osei-Kuffuor
bb55556eca Added new constants to compute machine tolerances/thresholds based on precision 2017-04-07 10:49:07 -07:00
Rob Falgout
1843dee232 Added float.h include to HYPRE_utilities.h 2017-03-17 13:54:47 -07:00
Daniel Osei-Kuffuor
3447156100 Updated to define floating point constants to be consistent for single precision arithmetic representation. Also did some minor changes of hypre_MPI_DOUBLE to hypre_MPI_REAL in several places for Euclid, pilut, and Parasails. 2017-03-15 17:22:01 -07:00
Rob Falgout
0dee3ab36e Preliminary implementation of single precision capability 2017-01-26 17:26:28 -08:00
Rob Falgout
f4e70c897b Reorganized directories and files to mimic the release structure 2016-01-13 18:14:24 -08:00