Commit Graph

3305 Commits (acdd2e9eb5c8f52a8b52f26d54f6820b8dcb3c41)
 

Author SHA1 Message Date
Stack-1 acdd2e9eb5 [ADD] Nested (MATNEST-style) block matrix support and tests
Add a block-structured distributed operator that presents itself to Krylov
solvers and preconditioners as a single ordinary distributed matrix (the
PSBLAS analogue of PETSc MATNEST), targeting saddle-point systems
M = [[A, B^T], [B, 0]] with possibly rectangular sub-blocks.

Library (base/modules):
- psb_desc_nest_mod, psb_d_nest_mat_mod: grid of per-field descriptors and
  per-block sparse storage.
- psb_d_nest_base_mat_mod: psb_d_nest_base_mat, the operator extending
  psb_d_base_sparse_mat (local csmv, free, field-split hooks for a future
  block preconditioner).
- psb_cd_nest_tools_mod / psb_d_nest_tools_mod: composed global descriptor
  with union halo (psb_cd_nest_compose) and rectangular local block builder
  (psb_d_nest_rect_block), plus the per-block assembly wrappers.
- psb_d_nest_builder_mod: psb_d_nest_matrix, the user frontend with the
  init/ins/asb/free pattern hiding all descriptor/halo/compose/setup
  boilerplate.
- psb_d_nest_mod: umbrella module (use psb_d_nest_mod).

Remove the earlier bespoke per-block prototype (comm/psblas/vect modules and
the pde_nest_psblas test) superseded by the single MATNEST design.

Tests (test/nested): glob (square operator vs monolithic CSR oracle), rect
(genuinely rectangular blocks), cg (low-level path, ill-conditioned SPD
red-black Laplacian solved with standard CG), builder (same solve via the
utility), plus a README describing the design and usage. All pass serially
and in parallel, with results invariant to the process count.

Build hooks updated (autotools Makefiles + CMakeLists); the nested tests are
relocated out of test/pdegen into test/nested.

Author: Simone Staccone (Stack-1)
1 month ago
Stack-1 784c3cc0b4 Drop stale work argument from psb_d_nest_spsm
The nested layer was imported from an older base where the vector psb_spsm
still took a work buffer. communication_v2 removed work from the psb_x_vect_type
routines, so psb_dspsv_vect has no work argument and the call failed generic
resolution. Remove work from psb_d_nest_spsm (signature, declaration, call).
1 month ago
Stack-1 e45b1a04c4 Locate mpi.mod for OpenMPI in CMake build
The configure step only searched MPI_Fortran_INCLUDE_PATH for mpi.mod, which
is empty for OpenMPI (the wrapper carries includes internally and ships mpi.mod
under lib/). mpi.mod was thus never copied into the module dir, and the
mpi.mod.stamp rule failed on a clean build. Also probe the wrapper
(--showme:inc/libdirs) and lib/ + include/ relative to the Fortran MPI
compiler. MPICH (used in CI) is unaffected.
1 month ago
jalmerol b8d41569fd Add double-precision nested block-structured matrix/vector layer 1 month ago
Stack-1 164f393183 Add CMake build/ directory to .gitignore 1 month ago
Stack-1 027ca71a38 Fix CMake base source list for comm_schemes and psb_comm_mod
base/CMakeLists.txt listed only psb_comm_rma_mod.F90 from comm_schemes,
omitting psb_comm_schemes_mod, psb_comm_baseline_mod, psb_comm_neighbor_impl_mod
and psb_comm_factory_mod, so their .mod files were never generated under CMake.
Also psb_comm_mod was listed as .F90 while the file is .f90 (breaks on
case-sensitive filesystems). The autotools Makefile was already correct.
1 month ago
Stack-1 f725ccdeeb Merge branch 'development' into communication_v2
# Conflicts:
#	base/CMakeLists.txt
#	base/comm/internals/psi_cswapdata.F90
#	base/comm/internals/psi_dswapdata.F90
#	base/comm/internals/psi_iswapdata.F90
#	base/comm/internals/psi_lswapdata.F90
#	base/comm/internals/psi_sswapdata.F90
#	base/comm/internals/psi_zswapdata.F90
#	base/modules/Makefile
#	base/modules/comm/psb_i2_comm_mod.f90
#	base/modules/comm/psi_i2_comm_v_mod.f90
#	base/modules/serial/psb_i2_base_vect_mod.F90
#	test/computational_routines/spmm/spmm_checker
1 month ago
Stack-1 2acfbe7e4a [FIX] Fixed threshold for spmm computational_routines test 1 month ago
Stack-1 e88e3d3008 [UPDATE] Added comm tests for all precisions and fixed spmm test in computational_routines 1 month ago
Stack-1 2c65c50593 [ADD] Added single point of comm_scheme selection on descriptor 2 months ago
Stack-1 29248d366f [UPDATE] Refactor after template update for RMA routines 2 months ago
Stack-1 4b8e4dd4a3 [UPDATE] Refactor after template update for RMA routines 2 months ago
Stack-1 d231efe35a [FIX] Modified spmv test to check overlap 2 months ago
sfilippone 014abc941c Fix matrix generation 2 months ago
sfilippone 09308b5c7d various changes, including test matrix generators 2 months ago
sfilippone 19ce4a0942 Fix multivect assembly and comments in base_vect 3 months ago
sfilippone 1cb7634d1f Fix GEMIN 3 months ago
sfilippone 586cafae49 New PrintSolverOptions in CBIND 3 months ago
Stack-1 fb5ba59693 [ADD] Added RMA one sided communication schemes 3 months ago
Stack-1 52ad95461d [UPDATE] Updated communicationtest to read also external matrices 3 months ago
Stack-1 be6f27069a [UPDATE] Modified tests to supèport GPU SpMV computing, Moreover dinstinct routine for persistant is now present in psi_dswpadata 3 months ago
Stack-1 75d86864b0 [UPDATE] Minor changes to debug 3 months ago
Stack-1 fcae4a1633 [UPDATE] Transient version usefull for debug on local server 3 months ago
sfilippone 3f83bc2918 Improve psb_exit handling of MPI communicators 3 months ago
sfilippone 19ffaaa915 Update dependencies for i2_vect_mod 3 months ago
Stack-1 5ed9643fe6 [FIX] Fixed comm tests for single process, added guard on neighbor topology data exchange for single process run 3 months ago
Stack-1 6ba327854e [UPDATE] Changes in CG test, added debug 3 months ago
sfilippone 97299b8b3f Update VERSION file 3 months ago
Stack-1 6b803fd759 [UPDATE] Updated buffer reuse in psb_dcg 3 months ago
sfilippone 70d43a9487 Fix string defaults parsing in cmake 3 months ago
sfilippone d0baf9e977 Fix generation of psb_config.h with CMAKE 3 months ago
Stack-1 33477e4f03 [UPDATE] Changed all the interfaces that calls psi_swapdata inside PSBLAS internals for double precision vectors. Added also tests under test/comm/ in order to check psi_swapdata, psb_spmv and psb_cg calls 3 months ago
Stack-1 09a5a74d75 [ADD] Added polymorphic comm_handle data excahnge for non-blocking and persistant neighbor communication. Check test/comm/ to see how it's used. For now works only for d types 4 months ago
Salvatore Filippone 089969402d Merge branch 'development' of github.com:sfilippone/psblas3 into development 4 months ago
Salvatore Filippone 039639b341 Fix bug in CMakeLists: now installs modules correctly 4 months ago
Fabio Durastante 116219b6fe Added support for CSC matrices in c interfaces 4 months ago
Salvatore Filippone eae1311c99 Improved dependencies. 4 months ago
Salvatore Filippone 0a97ea2924 Fix makefile 4 months ago
Salvatore Filippone bc9adfeb3e Fix CMakeLists 4 months ago
Salvatore Filippone e717d2d228 Fix makefile dependencies 4 months ago
sfilippone a223c7eaf3 Rebuild I2 supprot 4 months ago
sfilippone 80c02af47a Fix CMakeLists i2 4 months ago
sfilippone 769c2f65bf Prepare i2 4 months ago
Salvatore Filippone eeeb450f0b Simplified build fix 4 months ago
sfilippone e1ab2bddf6 Fix import and build dependencies 4 months ago
Stack-1 2d388ce45e [FIX] Fixed compilation dependencies resulting in race condition when compiling using many threads. The problem was encountered usingg make -j30, now it compiles. 4 months ago
Stack-1 02f1ef741c [] 4 months ago
sfilippone 322b8a9538 Fix cmakelists 4 months ago
sfilippone 55b063d452 Fix cmakelists 4 months ago
sfilippone adbf7454aa Update cmakelists 4 months ago