Commit Graph

1394 Commits (80f54fed091cf4fb0929b2edd9f14ba917293dcd)

Author SHA1 Message Date
Salvatore Filippone 4292dd3490 Put static clause in OMP
Salvatore Filippone 997020ba81 New GELP for EPK data.
Salvatore Filippone c414d4d40a Merge branch 'implement-ainv' into dev-openmp
# Conflicts:
#	base/comm/internals/psi_cswapdata_a.F90
#	base/comm/internals/psi_cswaptran_a.F90
#	base/comm/internals/psi_dswapdata_a.F90
#	base/comm/internals/psi_dswaptran_a.F90
#	base/comm/internals/psi_eswapdata_a.F90
#	base/comm/internals/psi_eswaptran_a.F90
#	base/comm/internals/psi_i2swapdata_a.F90
#	base/comm/internals/psi_i2swaptran_a.F90
#	base/comm/internals/psi_mswapdata_a.F90
#	base/comm/internals/psi_mswaptran_a.F90
#	base/comm/internals/psi_sswapdata_a.F90
#	base/comm/internals/psi_sswaptran_a.F90
#	base/comm/internals/psi_zswapdata_a.F90
#	base/comm/internals/psi_zswaptran_a.F90
#	base/modules/psi_i_mod.F90
Salvatore Filippone a8ee595392 New method for checking if REPL at V descriptor
Cirdans-Home 4674de97cf Corrected call to use mpi
Salvatore Filippone 927bf9f103 Merge branch 'new-context' into implement-ainv
Salvatore Filippone db9bb6ca77 Fix problem in logical recv
Salvatore Filippone 6866558372 Merge branch 'new-context' into implement-ainv
# Conflicts:
#	prec/impl/psb_c_bjacprec_impl.f90
#	prec/impl/psb_c_prec_type_impl.f90
#	prec/impl/psb_d_bjacprec_impl.f90
#	prec/impl/psb_d_prec_type_impl.f90
#	prec/impl/psb_s_bjacprec_impl.f90
#	prec/impl/psb_s_prec_type_impl.f90
#	prec/impl/psb_z_bjacprec_impl.f90
#	prec/impl/psb_z_prec_type_impl.f90
#	prec/psb_c_prec_type.f90
#	prec/psb_d_prec_type.f90
#	prec/psb_s_prec_type.f90
#	prec/psb_z_prec_type.f90
#	test/pargen/psb_d_pde2d.f90
#	test/pargen/psb_d_pde3d.f90
#	test/pargen/psb_s_pde2d.f90
#	test/pargen/psb_s_pde3d.f90
Salvatore Filippone b3bcb762c5 New files from remap-coarse
Salvatore Filippone 2e0c297409 Merging remap-coarse into new-context
Salvatore Filippone f0663512b2 Merge new-context
Salvatore Filippone ea6e473677 Various CTXT fixes
Salvatore Filippone e445819960 Fix wrong subroutine name ref.
Salvatore Filippone 025a4b5512 Fixes for CTXT usage, new GELP templated source.
Salvatore Filippone 42d9ad426e Merge branch 'new-context' into dev-openmp
Salvatore Filippone 7eb653b39d fix ICTXT vs CTXT
Salvatore Filippone 6b6ca3b6ac Merge branch 'new-context' into dev-openmp
Salvatore Filippone bab24cec27 Fix indx_map compilation
Salvatore Filippone b32053d8aa Fix base_init_null for use with remap-coarse
Salvatore Filippone 7124e8abdf Merge branch 'new-context' into remap-coarse & fix
# Conflicts:
#	base/modules/desc/psb_desc_mod.F90
#	base/modules/penv/psi_penv_mod.F90
Salvatore Filippone e1d859e3f5 Change return value of get_context on error.
Salvatore Filippone 9178d63ebd Updates for C ctxt handling.
Cirdans-Home c52d42a50d merge with mat-allocation
Salvatore Filippone 02b9ff5cfb Fix Makefile dependencies
Salvatore Filippone 6a6f6ad2c2 Change name of ICTXT to CTXT
Cirdans-Home fbf23c3959 Added implementation in BJAC and test for ILU-type factorizations
Salvatore Filippone 8b2b86d44d C interface. Not fully working yet.
Salvatore Filippone b376d226cb Fixed declaration and use of CONTEXT with new type.
Salvatore Filippone 2009ed8dbe First round of updateds for new CONTEXT
Salvatore Filippone 2697fbe73a Started work on encapsulating CONTEXT.
Salvatore Filippone 4bc326d06b Add IDEST to remap interface
Salvatore Filippone a79d853338 Debug check (to be taken out later)
Salvatore Filippone fb422be9f4 Change interface of X_REMAP to include isrc/nrsrc
Salvatore Filippone 2090a011db Include X_remap.
Salvatore Filippone 0adf2cbb3f Seemingly working version of D_REMAP. Minimal test of same.
Salvatore Filippone 7c6ffcd4a2 Start work on REMAP.
Salvatore Filippone 0acf10f0d8 OpenMP in base_mat and coo
Cirdans-Home 8d2ab75737 Added interfaces for all types of psb_nspaxpby
Salvatore Filippone 77730de80c Put in OpenMP in CSR, first step.
Salvatore Filippone 23f69f58d4 Additional fixes for psi_serial_impl
Salvatore Filippone eb513e45c6 OpenMP for base_vect
Salvatore Filippone 96a4db14fb Rename psi_serial_impl to F90
Salvatore Filippone 069c49f20f Rename base_vect to F90
Salvatore Filippone 4a274e43ff cosmetic fixes
Salvatore Filippone 6e09f745ce Merge branch 'development' into remap-coarse
Cirdans-Home c0c8224253 Corrected debug message in getelem
Cirdans-Home 624a07a25b Added getelem function to retrieve entries from distributed vectors
Salvatore Filippone a1c2561de6 Cleanup unused variables.
Salvatore Filippone dc36db6083 Reformat assignment of entire component.
Salvatore Filippone 7436cf564c Start cleanup compile warnings
Salvatore Filippone 25fdc6fb73 VOLATILE and ISO_FORTRAN_ENV are now enforced, take out ifdefs
Salvatore Filippone db7def0433 Merge branch 'development' into remap-coarse
Salvatore Filippone 64e4c194fd Enable VECT objects in MMIO read/write.
Salvatore Filippone 7df7b6ffce Set adjacncy list during build of halo_index for all maps.
Salvatore Filippone e3649e1cb6 Do not use sorting on dependency lists unless dlavg<16
Salvatore Filippone 46736f9d39 Fix type handling bug in simple_triad
Salvatore Filippone eb03797ad5 Better error messages from MAP%APPLY
Salvatore Filippone db17057924 Cosmetic changes to fnd_owner for BLOCK.
Salvatore Filippone 97a1cfca3e Merge branch 'unify_aggr_bld' into remap-coarse
Salvatore Filippone 76ff6c824c Fix GEN_BLOCK distribution search for owner process: binary search on
repeated keys
Salvatore Filippone 6b2abed8bb Reworked dep_list sorting. Take out obsolete functions
Salvatore Filippone ceb79d8fd8 Fix bad argument passing for sort_dl
Salvatore Filippone 62a67a0d0e Fix sorting of dep_list: store in CSR-like, handle self-loops
Salvatore Filippone 781f0ef083 New version of sort_dep_list.
Salvatore Filippone 56189f39fd Start reworking of handling of dependency lists.
Salvatore Filippone 167f4157bb Improve graph_fnd_owner
Salvatore Filippone d9997e511f Fixed alterations for MAP routines and new internals
Salvatore Filippone 90493218a2 Change handling of no-context in DESC for remap-coarse
Salvatore Filippone 2de1202d62 Improved error message for MAP_
Salvatore Filippone d865bb91ca Defined new variant of allocate_mnnz for mixed IPK/LPK
Salvatore Filippone ad50c6e166 Add new source file for alternative CDASB.
Salvatore Filippone 5b1300b7cc Merge branch 'fix_cdasb' into unify_aggr_bld
# Conflicts:
#	base/internals/psi_extrct_dl.F90
Salvatore Filippone d2f8d87204 Defined a threshold for enacting simplified exchange list build
Salvatore Filippone 2b295de9e7 New crea_index internals.
Salvatore Filippone 7fa4eae8c9 Timers in xtr_dl
Salvatore Filippone debb03b6ae Prepare for alternative code path
Salvatore Filippone 7de9318aa9 New timers in descriptor assembly
Salvatore Filippone 487b2c2e1d Defined reallocate and safe_ab_cpy for intrinsic scalars.
Salvatore Filippone e9a8814338 Change default order for DUPL constants.
Cirdans-Home 6777e57d37 merge with merge-paraggr-newops
Salvatore Filippone 2a6107a937 Define psb_free_timers()
Salvatore Filippone 98349319e8 Cleanup DESC%FREE()
Cirdans-Home c0ccbe14f7 merge with unify_agg_build
Salvatore Filippone f499ffb203 New clear_defaults function, use it in psb_exit
Salvatore Filippone 7d3e4aec06 New name qry_halo_owner to distinguish from fnd_halo_owner
Salvatore Filippone 84a8b73416 Avoid LX temporaries in X transpose
Salvatore Filippone f28e3a9ea9 Further fixes for uninitialized vars
Salvatore Filippone eb934e2a45 Fix uninitialized INFO in cp/mv _from
Salvatore Filippone b56abbb270 Improve structure of Makefiles
Salvatore Filippone 58b7489db9 New fnd_owner implementation, taking into account CD%REINIT
Salvatore Filippone 055e342253 Move position of call to set_nzeros
Salvatore Filippone 26cfa837e5 Cosmetic changes for letter case conventions
Salvatore Filippone 55666cc0fe Make sure p_adjcncy and halo_owner are preserved over desc%reinit
Cirdans-Home 166bd219ef Corrected checkmat bugs in compare and get_nnz routines
Cirdans-Home 5c34e3d853 Removed orphan implementation for scale plus identity
Cirdans-Home 9e347fae90 Removed orphan subroutines for matrix info
Cirdans-Home 01f4f718de Corrected implementation of scale plus identity for sparse matrices
Salvatore Filippone 91f737475e Optimized version of X_glob_transpose: do not go through LX_glob_transpose.
Salvatore Filippone dbc20d482e In psb_rwextd use ensure_size instead of reallocate
Cirdans-Home 1c23654328 Added functions to compare the entries of two matrices or every entry of matrix with a value
Cirdans-Home ca296fc0cf Added missign @LX@ implementation of new sparse matrix sum routines
Cirdans-Home 3b36c2196b Added implementation of A = alpha A + beta B for sparse matrices
Cirdans-Home dc55713541 Added generic interface psb_scalplusidentity for long integer spmat
Cirdans-Home e108416719 Added function for scaled sparse matrix plus identity
Cirdans-Home 814e09f5db Added interface (and C interface) to is_bld() for sparse matrices
Cirdans-Home d92b6c02cf Added interface (and C interface) to is_asb() for sparse matrices
Cirdans-Home c4cf78e7b8 Added interface (and C interface) to is_upd() for sparse matrices
Cirdans-Home a6db1b566c Added Interface (and C Interface) for nnz of a sparse matrix
Cirdans-Home 0f309850cc Corrected routine for weighted masked 2norm
Cirdans-Home 9e9a2e3975 Corrected implementation of @X@_base_inv_a2_check to be compliant with NVECTOR behavior
Salvatore Filippone 4c7fa23c8a New files for 2-bytes integer support. To be compiled and tested.
Cirdans-Home 5504e34161 Removed the out-interface for vector scaling
Cirdans-Home 28c1efe650 Corrected pass argument in div routines
Cirdans-Home ea6ad3a85f Corrected bug in out-of-place axpby
Cirdans-Home 44f05510bc Added out-of-place axpby and relative c interface
Salvatore Filippone db22e832ee Add constants for 2-byte integers
Salvatore Filippone beeb123042 Fixed length char component.
Cirdans-Home 8bf0ff673b Added psb_minquotient function with C interface
Salvatore Filippone 99dc3f5d93 New par_spmm version with 4-byte matrices (with new sphalo variant)
Cirdans-Home fd89f2f1bf Added psb_gescal subroutine to entrywise scale distributed vector with C interface
Cirdans-Home ea9c469159 Added psb_geaddconst subroutine to add constant value to vector with C-interfaces
Cirdans-Home 439246e643 Added out-of-place entrywise division with C interfaces
Cirdans-Home 22e7df48da Added out-of-place psb_mlt subroutine interface
Cirdans-Home 0edb671d21 Added minimum of realtype distributed vectors
Cirdans-Home 15f89400c3 Correction to the psb_geinv implementation for out flag handling
Salvatore Filippone 55989d2e8f Do not use allocatable characters
Cirdans-Home 7f42d63275 Added routine for logical all reduce and applied in psb_mask
Cirdans-Home b8ab997bc1 Added generation of mask vector for constraint tests psb_mask
Cirdans-Home e59932e496 chagend name to acmp for the compare routines
Cirdans-Home 87306f4d1a added weighted and masked 2 norm, and compare on complex vector
Cirdans-Home 1b214f3f00 added weighted 2-norm function
Salvatore Filippone 27bf7ec666 New get_a2av_alg() in place of conditional compilation
Salvatore Filippone 6b2fa31ae1 Internal doc changes.
Cirdans-Home 63885c36c7 psb_geabs corrected version with test
Cirdans-Home f5709a2254 Added psb_geabs, final output not working
Salvatore Filippone cc9ef42464 Renamed macro SP_A2AV_MAT into SP_A2AV_TRIAD
Salvatore Filippone cdaae0b484 Fix and unify SPHALO variants implementations.
Salvatore Filippone d00182ee30 Fix MPI type declaration
Salvatore Filippone 193682a5a5 Fix integer KIND for some temporaries.
Salvatore Filippone 01ffca76d2 Change mat%print interface, and refactor.
Salvatore Filippone d3e4a091e8 Cosmetic cleanup
Salvatore Filippone d342e2d59e Fixed borderline case for PSB_CDALL( VL=())
Code was hanging if VL was empty on some processes.
Salvatore Filippone a59c79a2f8 *** empty log message ***
Salvatore Filippone 2944299aa7 Check sizes in graph_fnd_owner sampling code.
Salvatore Filippone d031ef0763 Fix typo in internal docs.
Salvatore Filippone 76d5c5f3ae Fixes for cases where IPK==LPK
Salvatore Filippone 936ef49e7d Further changes for ambiguous interfaces when IPK==LPK
Salvatore Filippone 3f08263eb6 Pretty-printing fixes
Salvatore Filippone af14080a34 Initial fixes for IPK==LPK
Salvatore Filippone 1d81cf4af9 Cleanup transpose, use coo%ensure_size
Salvatore Filippone 487fa54f06 Define coo%ensure_size method
Salvatore Filippone ae051a2ea1 Optimize data handling in transpose.
Salvatore Filippone 10f47d731d Define versions of global transpose for IPK matrices
Salvatore Filippone e2653b1c60 New clip "in place" method
Salvatore Filippone 77542b9023 New global transpose methods
Salvatore Filippone 3207596a75 Change name to psb_simple_triad
Salvatore Filippone 0aaaa477d4 New triad_a2av method
Salvatore Filippone cea69503a4 New method for cleaning entries with negative indices in COO.
Salvatore Filippone 86872d9939 Define psb_simple_a2av
Salvatore Filippone 7c491f06f9 Fixed implementation of SPGATHER
Salvatore Filippone 4a89e4b1c7 Finish variable replacement
Salvatore Filippone 3cfdc033fd New structure for A2A and graph_fnd_owner
New implementation for A2A: use mpi_allgather and mpi_reduce_scatter,
with two variants: one for variable inputs, one for fixed size
inputs.
Modified graph_fnd_owner to pass padded and uniform sized input to
A2A.
Salvatore Filippone 7c908c0849 Start mods for new fnd_owner
Salvatore Filippone 9a2c1fe0a9 Merge branch 'development' into fnd_owner
# Conflicts:
#	base/internals/psi_extrct_dl.F90
#	base/internals/psi_symm_dep_list.F90
#	base/modules/desc/psb_indx_map_mod.f90
Salvatore Filippone c3321aa981 Take out timings for now.
Salvatore Filippone 555907338e New versions of fnd_owner: do not use MPI_alltoallv
Salvatore Filippone 77cdfd6cae Merge branch 'merge-paraggr' into merge-paraggr-newops
# Conflicts:
#	docs/html/index.html
#	docs/html/userhtml.css
#	docs/html/userhtml.html
#	docs/psblas-3.7.pdf
#	docs/src/psbrout.tex
Salvatore Filippone 41ef94538c Additional improvements to internal docs.
Salvatore Filippone e2bd21d9be Update internal documentation.
Salvatore Filippone 92dae92582 Align with new implementation of extract_dep_list.
Salvatore Filippone e97cab7ddc Take out N from alloc_vect
Salvatore Filippone 4ed1ef4a0d Additional internal docs for fnd_owner
Salvatore Filippone c57aa2ac5c Internal docs for fnd_owner variants.
Salvatore Filippone e60e3c9d91 Changed default maxspace to -1
Salvatore Filippone acae5f9278 Placed timing code in graph_fnd_owner
Salvatore Filippone 2b898aa14f New get_mpi_comm and get_mpi_rank, code and docs
Salvatore Filippone b9514ece40 New extract_dep_list from fnd_owner
Salvatore Filippone 43c1ccfc87 Extract_dep_list new symm
New dependency list symmetrizatoin, two alternatives: distributed, or
replicated after allgather.
Salvatore Filippone 0bacc130e7 Merge branch 'fnd_owner' into merge-paraggr
Salvatore Filippone 59e640c8a1 Fix error message for wrong IRST.
Salvatore Filippone c845a7881e Merge branch 'fnd_owner' of https://github.com/sfilippone/psblas3 into fnd_owner
Salvatore Filippone 70d19c04be graph_fnd_owner cleanup
Salvatore Filippone 703214669a Dead code cleanup
cirdans-home fcbe0d620a Added vector/scalar comparison routine
Salvatore Filippone 5bd6f0cca9 Add comments to adjcncy_fnd_owner
cirdans-home d4fc54e75a Corrected error in inv_vect implementation
Salvatore Filippone f32f8e3387 Cosmetic changes in adjcncy_fnd_owner
Salvatore Filippone caec98e942 New adjcncy and a2a fnd_owner
Reimplement adjcncy_fnd_owner to use alltoallv. Version with
sends/irecv still available under compile time constant.

Reimplement a2a_fnd_owner to use adjcncy_fnd_owner. Older version
still available under compile time constant.
cirdans-home c1f3b2d9d4 Added entrywise inversion and documentation for vec-vec operation
cirdans-home db7b882e9c entrywise divide with zero check
Salvatore Filippone cf3fce32c3 Update for new get_rank
cirdans-home ce6383b7ff Added Element-by-Element divison
Salvatore Filippone 122c154bca Merge branch 'merge-paraggr' into fnd_owner
Salvatore Filippone e95063701b Whitespace fixes
Salvatore Filippone cf6db2ea0b get_rank and get_mpicomm
Make psb_get_rank and  psb_get_mpicomm functions, not
subroutines. Document same.
Salvatore Filippone 4ff817f4f1 Take out debug prints
cirdans-home f66d19e54b added entrywise vector product psb_gemlt
Salvatore Filippone 374786f6ae adjcncy_fnd_owner fix memory allocation
Salvatore Filippone 809e32a6be adjcncy_fnd_owner with irecv
Implement adjcncy_fnd_owner with irecv to improve performance instead
of psb_snd/psb_rcv. To be fully debugged.
Salvatore Filippone 410c0c9995 graph_fnd_owner sweep
Implement initial sweep in graph_fnd_owner based on user-provided
topology.
Cleanup old indx_map implementation.
New test program just for testing cdasb.
Salvatore Filippone 79a25a80ed Cosmetic changes to graph_fnd_owner
Salvatore Filippone 6258b9ff66 use desc_mod instead of indx_map_mod to pull interface of cd_get_maxspace
Salvatore Filippone 31ed911b1e New set/get_maxspace()
Salvatore Filippone e2bd101ded Fix typos in source.
Salvatore Filippone 1da39b8bbf Factored symmetrization of del_list into its own routine.
Salvatore Filippone fc90423305 Make adj() argument allocatable so it can be adjusted for symmetry
Salvatore Filippone 6732106bc2 First version of adjncy_fnd_owner. To be fully tested.
Salvatore Filippone 6c31765b3f First draft of psi_graph_fnd_owner. Need to revise choice of algorithmic thresholds.
Salvatore Filippone 95dffe2f76 Refactor fnd_owner into graph_fnd_owner which may call a2a_ and adjcncy_
Salvatore Filippone 4507a6522a New indxmap component for process adjacency list, setters/getters.
Salvatore Filippone ce115b1318 Put in a safety margin in reallocation of dep_list. To be reworked completely.
Salvatore Filippone 8ae408fa03 Improved memory allocation in extract_dep_list
Salvatore Filippone 3ae846edb5 Start refactoring of crea_index
Salvatore Filippone 65092a42b1 Split hash_impl from desc_impl.
Salvatore Filippone 2529225730 Changed fnd_owner internal names.
Salvatore Filippone 40204a7be6 Moved fnd_owner to internals impl. subdir
Salvatore Filippone 1d04fffbd4 Refactor map_fnd_owner, first step towards new version.
Salvatore Filippone b3d6a970ee Add adjncy component
Salvatore Filippone 4366ac4948 Move psb_indx_map_fnd_owner in modules/desc subdir, update makefiles.
Salvatore Filippone b83ec80619 Fix scan_sum, define V version
Salvatore Filippone d189083816 Check and enforce allocation of indxmap%halo_owner
Salvatore Filippone c54076ed97 Kludge: defined indx_map%cpy method, use same in %clone. To be reviewed
Salvatore Filippone 62c21836f0 Fix REINIT use of array constants with implicit loops using IPK/LPK
Salvatore Filippone 768344d93f Add version of CDINS with lpk NZ
Salvatore Filippone c338e7b799 New LPK set_nzeros for COO
Salvatore Filippone 319d2831b7 New methods for LX%set_nrows with IPK/LPK
Salvatore Filippone 634c2e0aa5 Implement clip_diag for LX
Salvatore Filippone ece66421bf Add len arg in declaration.
Salvatore Filippone a65626c7b0 Merge fnd_halo_owner method and setup
Salvatore Filippone 10b802743e Change constant name to psb_c_Xpk_
Salvatore Filippone 71059dc783 Version of sphalo for LX_csr.
Salvatore Filippone 40755d6279 New method par_csr_spspmm.
Salvatore Filippone 22d76d1e48 Fix SYM handling at spmat level.
Salvatore Filippone dcedab8ae0 New usehash argument in CDALL. Still need to put in a heuristics for
gen_block with too many cores
Salvatore Filippone 2f07fc5220 New scan_sum and exscan_sum collectives.
Salvatore Filippone b97bdf3d2e Added timers facility.
Salvatore Filippone 5a61fbd2c0 Duplicated matrix entries should be ADDED by default.
Salvatore Filippone 7e2ffbf34d New handling of SYMmetry
Salvatore Filippone 239f25a913 Memory allocation for COO/CSC/CSR.
Salvatore Filippone 57d08dc4d7 Formatting source code fixes.
Salvatore Filippone 242b9ec91f New variant of psb_spins in CSR mode. Document same.
Salvatore Filippone 9a6d9ac5c4 Aux space spspmm estimate was wrong, reverted.
Salvatore Filippone 5abe99196c Fix calls to checkvect in data exchange functions, take 2.
Salvatore Filippone 113478ea64 Fix calls to checkvect in data exchange functions.
Salvatore Filippone 08063d4f48 Deallocate output if needed in indxmap%clone.
Salvatore Filippone 3bafaa242a New checkvect interface, and use.
Salvatore Filippone 3ecdb7d026 Explicitly free output descriptor on desc%clone.
Salvatore Filippone 4789277b19 Fixed switch to build state for overlap descriptor.
Salvatore Filippone 51e50120bd Add move_alloc method to sparse matrix.
Salvatore Filippone fd8ce4f3de New linmap internal structure.