Commit Graph

16 Commits (768c6764d3b3089201fe455770f05f61bb59ca64)

Author SHA1 Message Date
Stack-1 e1d759d019 [ADD] Generate the nested matrix support for s/c/z from the templates
Extend the nested (MATNEST) matrix support to all the arithmetics: the
psb_{s,c,z}_nest_{mat,base_mat,tools,builder}_mod modules and the
psb_{s,c,z}_nest_mod umbrellas are generated from the template-psblas
X_nest_* templates; the d sources are regenerated byte-identical.

Preparatory changes to the d sources for clean templating: rowsum/arwsum and
colsum/aclsum no longer share a helper (for the complex arithmetics the
absolute sums are real-valued while the plain sums are complex-valued), the
transposed kernel forwards the actual 'T'/'C' character to the blocks
(conjugate transpose for the complex types), and the capacity helper takes a
type-neutral name.

Build hooks (autotools Makefile and CMakeLists) updated with the per-arith
objects, compile rules and dependencies.  All four d tests keep passing.

Author: Simone Staccone (Stack-1)
2 weeks ago
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)
2 weeks ago
jalmerol b8d41569fd Add double-precision nested block-structured matrix/vector layer 3 weeks 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.
3 weeks 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
3 weeks ago
Stack-1 fb5ba59693 [ADD] Added RMA one sided communication schemes 2 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 3 months ago
Salvatore Filippone eae1311c99 Improved dependencies. 3 months ago
Salvatore Filippone bc9adfeb3e Fix CMakeLists 3 months ago
sfilippone 80c02af47a Fix CMakeLists i2 3 months ago
sfilippone 01610305b2 Rename base/internals into base/auxil. Fix aplusat in CMakeLists 6 months ago
sfilippone 3c791b5370 Fixed file renamed into CMakeLists 7 months ago
Luca Pepè Sciarria 4858f0d484 hot fix on flags naming and fix psb_types.h compilation 1 year ago
Luca Pepè Sciarria 2671fad20d update CMakeLists.txt to used the new standard PSB_ for compilation flags 1 year ago
Luca Pepè Sciarria f362b5878e Update files to be compiled: added .c files 1 year ago
Luca Pepè Sciarria 5b81cbac12 Add CMake building for base, prec, ext, util, krylov, cbind 2 years ago