Commit Graph

133 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
jalmerol b8d41569fd Add double-precision nested block-structured matrix/vector layer 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 2c65c50593 [ADD] Added single point of comm_scheme selection on descriptor 2 months ago
sfilippone d2fba9e952 Fix licensing text 4 months ago
Stack-1 e7e8a69373 [FIX] Fixed compilation for psi_dswapdata routine 4 months ago
sfilippone 7151c728db Final fixes 4 months ago
sfilippone bdee97e991 Fix use of MPI communicator 4 months ago
sfilippone e2ddc08aea Merge branch 'development' of github.com:sfilippone/psblas3 into development 4 months ago
sfilippone 9c3084985a Cosmetic change in desc_const_mod 4 months ago
Salvatore Filippone 3d92668973 Change name of desc%get_list into desc%get_list_p 5 months ago
sfilippone 897d466013 Define DESC%check_addr for debugging 6 months ago
sfilippone 3965c3a526 Modified psb_config and machinery for better C interfacing 6 months ago
sfilippone 4d0226b7d6 Fixes for IPK8 1 year ago
Fabio Durastante a83094a626 Added ifdef to disambiguate interfacese for LPK4/LPK8 1 year ago
sfilippone 6476428ccb Complete fix for hash_threshold 1 year ago
sfilippone 7682556564 Final improvements to psb_hash performance. 1 year ago
sfilippone 51f0db2f4a Fix hash_map step 2 1 year ago
sfilippone 89c6d8d108 First step reworking G2LV2_INS 1 year ago
sfilippone 3a70583ac5 First mod of hash_map_mod, regroup use statements 1 year ago
sfilippone b2563f8d86 Working version, figured out source of previous error 1 year ago
Salvatore Filippone e677d27418 Roll back unsafe change 1 year ago
Salvatore Filippone aab29a4c55 One step of improvement to hash g2l 1 year ago
sfilippone e9cfc9ae4b Restored an openMP working version of hash_map_mod 1 year ago
Salvatore Filippone 61806ae22b Define a parameter for sequential search limit in hash_map 1 year ago
Salvatore Filippone 847e098d41 Change threshold for hash_srch from 8 to 6 1 year ago
sfilippone ec05012c35 Additional improvements in HASH%G2L 1 year ago
sfilippone bdd56b9bc3 Improve hash_map_mod 1 year ago
sfilippone 39f865f094 Additional performance fixes in HASH_MAP 1 year ago
sfilippone b2cdfc8a1b Improved inner_cnv, halfway g2lv1_ins 1 year ago
Salvatore Filippone e811a8efeb Changes and measurements for SPINS/hash G2L_ins 1 year ago
sfilippone ecef7d8653 Improve communication and speed between cd_inloc and hash_init 1 year ago
sfilippone ea6c4181f7 Changed all defines with prefix PSB_ 1 year ago
sfilippone 701f297163 Silence warnings uncovered by INTEL 1 year ago
sfilippone 30810f804e Additional OpenMP tweaks, to be redesigned in the future. 1 year ago
sfilippone 772533b6f1 Avoid excessive OpenMP overhead in SPINS. Will have to be redesigned. 2 years ago
sfilippone fa6b8d5e33 Enable I2 send/receive/collectives 2 years ago
Salvatore Filippone a177e94ba5 Fix comments, 2 years ago
sfilippone 12a4c21fed Fixes for OpenMP compilation in map_mod 2 years ago
sfilippone d8ed01218d Cleanup hash_map using new indx_map%set_lc 2 years ago
sfilippone 7ec394ce1c Rename indx_map_mod and put SET_LR/C under ifdef 2 years ago
sfilippone 7dc64692cc Fix for OpenMP runs in hash_map_mod 2 years ago
Salvatore Filippone e711c53fab Make sure we compile when LPK /= IPK 2 years ago
Salvatore Filippone b5a32a59f9 Merge branch 'repackage' of github.com:sfilippone/psblas3 into repackage 2 years ago
Salvatore Filippone 773b79e7bc OpenMP in repl_map 2 years ago
Salvatore Filippone 98a9005602 Further advances on OpenMP versions of various index maps. 2 years ago
Salvatore Filippone fa86c91411 Fix OpenMP version of hash_map and hash 2 years ago
Salvatore Filippone 188dee6842 Add indx_map%inc_lc() method 2 years ago
sfilippone b99aa7a90f Switch off OMP in HASH g2l_ins 2 years ago
sfilippone e31dd52c41 Fixed CRITICAL in hash_mod 3 years ago