Commit Graph

39 Commits

Author SHA1 Message Date
Rob Falgout
408f361bd0
Add HYPRE_DEVELOP variables (#472)
This commit introduces three new variables to the 'HYPRE_config' file through both the autoconf and CMake builds. They are defined only when there is a '.git' directory present, and are otherwise left undefined.  These new variables may help users who work directly with the development branch of hypre to keep their code current and backward compatible with previous releases and also individual commits between those releases.  The new variables are:

HYPRE_DEVELOP_STRING - a string created from the 'git describe' command that indicates the last release tag, the number of commits beyond that last release, and the corresponding commit hash.
HYPRE_DEVELOP_NUMBER - the number of commits since the last release.
HYPRE_DEVELOP_BRANCH - defined only if the main development branch is being used, and is set to the name of that branch (currently master).

The commit also adds runtime regression tests for the variables in the 'src/test' directory.
2021-09-20 20:05:58 -07: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
Rob Falgout
3894857b16
Adding a new HYPRE_RELEASE_NUMBER macro (#366)
- Added a HYPRE_RELEASE_NUMBER macro, which is an integer representation of the release that can be compared numerically against other releases in user build systems
- Added a 'config/version.sh' that should be modified to create new releases
- Changed the 'config/bootstrap' script to 'config/update.sh' and added a version number check
2021-05-17 08:22:20 -07:00
Ruipeng Li
25d0498a3e
Roctx (#319)
This PR (by @pbauman #317) adds rocTX support, the ROCm analog to NVTX.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-04-12 08:36:09 -07:00
Ruipeng Li
8c00f18a95
Hip build (#293)
This PR adds options to the build system for enabling ROCm and HIP support. 

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-03-02 10:02:12 -08:00
Ruipeng Li
51e5a4c6de
SStruct interface without UVM (#170)
In this PR, we removed the dependency of UVM when building with CUDA for the SStruct solvers, and added a "memory tracker" to help debugging memory leak or misuse.
2021-02-09 11:21:39 -08:00
Rob Falgout
be18e595ae
Remove the global partition code from hypre (#273)
This PR removes the global partition code from hypre.
2021-02-08 15:16:29 -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
Paul T. Bauman
24250fe92e Run bootstrap, regenerate HYPRE_config.h.in
autoheader sorts all the flags so it makes the diff hard to read.
We can see the difference more easily as follows.

Grep the old version (before this commit):
grep undef HYPRE_config.h.in | sort > old_config.txt

Grep the new version (after this commit):
grep undef HYPRE_config.h.in | sort > new_config.txt

Now diff:

diff old_config.txt new_config.txt
0a1,2
> #undef FC_DUMMY_MAIN
> #undef FC_DUMMY_MAIN_EQ_F77
2a5,6
> #undef HAVE_INTTYPES_H
> #undef HAVE_MEMORY_H
3a8,12
> #undef HAVE_MPI_COMM_F2C
> #undef HAVE_STDINT_H
> #undef HAVE_STDLIB_H
> #undef HAVE_STRING_H
> #undef HAVE_STRINGS_H
4a14,16
> #undef HAVE_SYS_STAT_H
> #undef HAVE_SYS_TYPES_H
> #undef HAVE_UNISTD_H
11d22
< #undef HYPRE_DEVICE_OPENMP_MAPPED
17a29
> #undef HYPRE_HPPA
58a71,77
> #undef PACKAGE_BUGREPORT
> #undef PACKAGE_NAME
> #undef PACKAGE_STRING
> #undef PACKAGE_TARNAME
> #undef PACKAGE_URL
> #undef PACKAGE_VERSION
> #undef STDC_HEADERS

So we pick up some stuff from autoconf and a few a missing
AC_DEFINES that weren't manually added before.
2020-07-14 09:34:58 -05:00
Ruipeng Li
f80db4bc3a cub 2019-12-07 19:42:50 -08:00
Ruipeng Li
8cbdca2b71 HYPRE Debug mode 2019-11-08 20:15:11 -08:00
Ruipeng Li
f763e6bb27 some code optimizations 2019-09-27 18:03:05 -07:00
Ruipeng Li
0af952509c Merge branch 'master' of https://github.com/hypre-space/hypre into amg-setup
Conflicts:
	src/CMakeLists.txt
	src/config/configure.in
	src/parcsr_ls/HYPRE_parcsr_ls.h
	src/parcsr_ls/_hypre_parcsr_ls.h
	src/parcsr_ls/aux_interp.c
	src/parcsr_ls/par_amg.c
	src/parcsr_ls/par_amg_setup.c
	src/parcsr_ls/par_coarsen.c
	src/parcsr_ls/par_cycle.c
	src/parcsr_ls/par_interp.c
	src/parcsr_ls/par_strength.c
	src/parcsr_mv/_hypre_parcsr_mv.h
	src/parcsr_mv/par_csr_assumed_part.c
	src/parcsr_mv/par_csr_communication.c
	src/parcsr_mv/par_csr_communication.h
	src/parcsr_mv/par_csr_matop.c
	src/parcsr_mv/par_csr_matrix.c
	src/parcsr_mv/par_csr_matrix.h
	src/seq_mv/csr_matrix.c
	src/seq_mv/seq_mv.h
	src/utilities/_hypre_utilities.h
	src/utilities/hypre_memory.h
	src/utilities/protos.h
2019-09-25 15:36:06 -07:00
Sarah Virginia Osborn
692632d9b0 Finish HAVE_DSUPERLU -> HYPRE_USING_DSUPERLU (but leave HAVE_SUPERLU unchanged). 2019-08-08 09:49:16 -07:00
Sarah Virginia Osborn
3f55c1876d Merge branch 'master' into cmake-updates-dev
Conflicts:
	src/CMakeLists.txt
	src/parcsr_ls/HYPRE_parcsr_pcg.c
	src/parcsr_ls/par_amg_setup.c
	src/test/CMakeLists.txt
2019-08-07 13:48:56 -07:00
Ruipeng Li
0cd052494d Merge branch 'master' of https://github.com/hypre-space/hypre into AIR
Conflicts:
	src/krylov/krylov.h
	src/parcsr_ls/par_lr_restr.c
	src/parcsr_ls/par_stats.c
	src/utilities/protos.h
2019-07-26 11:32:53 -07:00
Ruipeng Li
8e8eb4f5cb Merge branch 'master' of https://github.com/hypre-space/hypre into amg-setup
Conflicts:
	src/IJ_mv/IJMatrix_parcsr.c
	src/parcsr_ls/par_nongalerkin.c
	src/seq_mv/csr_matrix.c
	src/utilities/_hypre_utilities.h
	src/utilities/binsearch.c
	src/utilities/gpuErrorCheck.c
	src/utilities/gpuErrorCheck.h
	src/utilities/gpuMem.c
	src/utilities/gpuMem.h
	src/utilities/hypre_cuda_reducer.h
	src/utilities/hypre_nvtx.h
	src/utilities/hypre_reducesum.c
	src/utilities/protos.h
2019-07-22 15:36:07 -07:00
Ruipeng Li
59d2809b2d gpu changes 2019-07-12 17:09:44 -07:00
Rob Falgout
48c9f0b972 Changed all of the headers 2019-07-07 19:26:24 -07:00
Sarah Virginia Osborn
5800bc3512 Update HAVE_DSUPERLU -> HYPRE_USING_DSUPERLU. 2019-06-20 12:52:20 -07:00
Ruipeng Li
4ba901049e a lot of GPU related changes 2019-06-17 10:59:02 -07:00
Ruipeng Li
e184413f60 Merge branch 'master' of https://github.com/hypre-space/hypre into AIR
Conflicts:
	src/config/Makefile.config.in
	src/config/configure.in
	src/configure
	src/krylov/gmres.c
	src/krylov/krylov.h
	src/parcsr_ls/HYPRE_parcsr_gmres.c
	src/parcsr_ls/_hypre_parcsr_ls.h
	src/parcsr_ls/aux_interp.c
	src/parcsr_ls/par_amg.c
	src/parcsr_ls/par_amg_setup.c
	src/parcsr_ls/par_coarse_parms.c
	src/parcsr_ls/par_coarsen.c
	src/parcsr_ls/par_cycle.c
	src/parcsr_ls/par_lr_restr.c
	src/parcsr_ls/par_relax.c
	src/parcsr_ls/par_relax_interface.c
	src/parcsr_ls/par_restr.c
	src/parcsr_ls/par_stats.c
	src/parcsr_ls/par_strength.c
	src/parcsr_mv/_hypre_parcsr_mv.h
	src/parcsr_mv/par_csr_communication.c
	src/parcsr_mv/par_csr_matop.c
	src/parcsr_mv/par_csr_matrix.c
	src/parcsr_mv/par_csr_matrix.h
	src/test/ij.c
	src/utilities/_hypre_utilities.h
	src/utilities/hypre_qsort.c
2019-05-09 15:08:38 -07:00
Li
d8d0ab68ec device memory communication handle, gpu aware mpi 2019-04-23 22:03:24 -07:00
liruipeng
4d954696ec configure option for Node_Aware_MPI [./configure --with-node-aware-mpi --with-node-aware-mpi-include=/opt/Node_Aware_MPI/src] 2019-03-09 20:55:41 -08: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
Ruipeng Li
30684c21e6 1. configure 2. remove all managed memory needs in Struct 3. redid reduction 4. a lot more 2018-08-29 17:07:28 -07:00
Ruipeng Li
f8f76c8feb 1. fixed issues with raja 2. working on configure options 2018-07-14 10:59:16 -07:00
Ruipeng Li
945ba79788 rename configure option to --with-device-openmp 2018-03-15 13:23:47 -07:00
Rob Falgout
ce41e26f7b Added a new Fortran name mangling type (underscore before and after) 2017-11-08 08:10:56 -08:00
Rob Falgout
4ce979670c Configure now works correctly for external SuperLU/DSuperLU 2017-10-15 14:32:17 -07:00
Rob Falgout
13527db5ce Trivial change to clean up check-double autotest script test 2017-05-19 10:08:43 -07:00
Daniel Osei-Kuffuor
da65135af6 Merge branch 'master' into single-dev 2017-05-09 12:13:49 -07:00
Rob Falgout
1c62530f1d Changed _hypre_utilities.h to auto generate and changed some nvcc configure stuff
The nvcc changes will need to change again once the other GPU work is merged.
The new 'Makefile.nvcc' and 'Makefile.empty' were used for portability, since
'if/else' is not standard in make.  The only other time we have excluded files
from being compiled in hypre, we excluded entire directories, but the mechanism
was similar.  This may need to be tweaked a bit.

The _hypre_utilities.h file is now generated with the 'headers' script and
should not be modified directly.
2017-04-05 16:43:23 -07:00
Rob Falgout
7fb0cbe475 Merge branch 'master' into single-dev 2017-03-17 14:46:59 -07:00
Rob Falgout
0dee3ab36e Preliminary implementation of single precision capability 2017-01-26 17:26:28 -08:00
David Boehme
dc3aa0fc58 Add caliper to classic build system as well (for libHYPRE itself; linking of example apps still to go) 2016-05-06 15:56:58 -07:00
Rob Falgout
4de7635b98 Merge branch 'master' into reorg 2016-01-14 17:52:05 -08:00
Rob Falgout
f4e70c897b Reorganized directories and files to mimic the release structure 2016-01-13 18:14:24 -08:00