mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-07 07:04:57 +00:00
Changelog LICENSE Make.inc.in README base/Makefile base/internals/psi_bld_tmphalo.f90 base/internals/psi_bld_tmpovrl.f90 base/internals/psi_crea_bnd_elem.f90 base/internals/psi_crea_index.f90 base/internals/psi_crea_ovr_elem.f90 base/internals/psi_fnd_owner.F90 base/modules/Makefile base/modules/psb_base_mod.f90 base/modules/psb_desc_type.f90 base/modules/psb_hash_mod.f90 base/modules/psb_linmap_mod.f90 base/modules/psb_linmap_type_mod.f90 base/modules/psb_penv_mod.F90 base/modules/psb_psblas_mod.f90 base/modules/psb_realloc_mod.F90 base/modules/psb_serial_mod.f90 base/modules/psb_sort_mod.f90 base/modules/psb_spmat_type.f03 base/modules/psb_spmat_type.f90 base/modules/psb_tools_mod.f90 base/modules/psi_mod.f90 base/psblas/Makefile base/psblas/psb_cspmm.f90 base/psblas/psb_dspmm.f90 base/psblas/psb_sspmm.f90 base/psblas/psb_zspmm.f90 base/serial/Makefile base/serial/aux/Makefile base/serial/psb_ccoins.f90 base/serial/psb_ccsprt.f90 base/serial/psb_cgelp.f90 base/serial/psb_cipcoo2csc.f90 base/serial/psb_cipcoo2csr.f90 base/serial/psb_cipcsr2coo.f90 base/serial/psb_cneigh.f90 base/serial/psb_ctransc.f90 base/serial/psb_ctransp.f90 base/serial/psb_dcoins.f90 base/serial/psb_dcsmm.f90 base/serial/psb_dcsprt.f90 base/serial/psb_dcsrp.f90 base/serial/psb_dgelp.f90 base/serial/psb_dipcoo2csc.f90 base/serial/psb_dipcoo2csr.f90 base/serial/psb_dipcsr2coo.f90 base/serial/psb_dneigh.f90 base/serial/psb_dtransp.f90 base/serial/psb_getrow_mod.f90 base/serial/psb_scoins.f90 base/serial/psb_scsnmi.f90 base/serial/psb_scsprt.f90 base/serial/psb_sgelp.f90 base/serial/psb_sipcoo2csc.f90 base/serial/psb_sipcoo2csr.f90 base/serial/psb_sipcsr2coo.f90 base/serial/psb_sneigh.f90 base/serial/psb_stransp.f90 base/serial/psb_update_mod.f90 base/serial/psb_zcoins.f90 base/serial/psb_zcsprt.f90 base/serial/psb_zcsrp.f90 base/serial/psb_zgelp.f90 base/serial/psb_zipcoo2csc.f90 base/serial/psb_zipcoo2csr.f90 base/serial/psb_zipcsr2coo.f90 base/serial/psb_zneigh.f90 base/serial/psb_ztransc.f90 base/serial/psb_ztransp.f90 base/tools/Makefile base/tools/psb_ccdbldext.F90 base/tools/psb_cd_lstext.f90 base/tools/psb_cd_reinit.f90 base/tools/psb_cdals.f90 base/tools/psb_cdren.f90 base/tools/psb_dcdbldext.F90 base/tools/psb_icdasb.F90 base/tools/psb_inter_desc.f90 base/tools/psb_linmap.f90 base/tools/psb_map.f90 base/tools/psb_scdbldext.F90 base/tools/psb_zcdbldext.F90 config/pac.m4 configure.ac configure krylov/psb_scgstab.F90 prec/psb_cdiagsc_bld.f90 prec/psb_cprc_aply.f90 prec/psb_cprecbld.f90 prec/psb_ddiagsc_bld.f90 prec/psb_dprc_aply.f90 prec/psb_dprecbld.f90 prec/psb_sdiagsc_bld.f90 prec/psb_sprc_aply.f90 prec/psb_sprecbld.f90 prec/psb_zdiagsc_bld.f90 prec/psb_zprc_aply.f90 prec/psb_zprecbld.f90 test/fileread/cf_sample.f90 test/fileread/df_sample.f90 test/fileread/sf_sample.f90 test/fileread/zf_sample.f90 test/pargen/ppde.f90 test/pargen/runs/ppde.inp test/pargen/spde.f90 util/psb_mat_dist_mod.f90 psblas3: first batch of changes to accommodate NAG compiler. Now the real work is about to start...
142 lines
4.5 KiB
Plaintext
142 lines
4.5 KiB
Plaintext
This directory contains the PSBLAS library, version 3.0
|
|
|
|
|
|
Version 1.0 of the library was described in:
|
|
S. Filippone, M. Colajanni
|
|
PSBLAS: A library for parallel linear algebra computation on sparse matrices
|
|
ACM Trans. on Math. Software, 26(4), Dec. 2000, pp. 527-550.
|
|
|
|
PLATFORMS:
|
|
|
|
The compilation process relies on the choice of an appropriate
|
|
Make.inc file; we have tested with AIX XLF, Intel ifort/Linux, Nag
|
|
f95/Linux, GNU Fortran/Linux, Sun Forte 6.2. If you succeed in
|
|
compiling with other compiler/operating systems please let us know.
|
|
|
|
|
|
LINUX:
|
|
|
|
|
|
|
|
UTILITIES
|
|
The test/util directory contains some utilities to convert to/from
|
|
Harwell-Boeing and MatrixMarket file formats.
|
|
|
|
|
|
DOCUMENTATION
|
|
|
|
See docs/psblas-2.3.pdf; an HTML version of the same document is
|
|
available in docs/html.
|
|
Please consult the sample programs, especially test/pargen/ppde.f90.
|
|
|
|
|
|
OTHER SOFTWARE CREDITS
|
|
|
|
We include our modified implementation of some of the Sparker (serial
|
|
sparse BLAS) material, e.g. Jagged diagonal, plus a number of
|
|
extensions of our own design. The original file spblas.f can be
|
|
downloaded from matisa.cc.rl.ac.uk; of course any bugs in our
|
|
implementation are our own to fix. The main reference for the serial
|
|
sparse BLAS is:
|
|
Duff, I., Marrone, M., Radicati, G., and Vittoli, C.
|
|
Level 3 basic linear algebra subprograms for sparse matrices: a user
|
|
level interface
|
|
ACM Trans. Math. Softw., 23(3), 379-401, 1997.
|
|
|
|
INSTALLING
|
|
|
|
To compile and run our software you will need the following
|
|
prerequisites (see also SERIAL below):
|
|
|
|
1. A working version of MPI
|
|
|
|
2. The MPI version of the BLACS; some systems (e.g. IBM SP) provide
|
|
a specific version, otherwise you can find it at
|
|
http://www.netlib.org/blacs/index.html
|
|
|
|
3. A version of the BLAS; if you don't have a specific version for
|
|
your platform you may try ATLAS available from
|
|
http://math-atlas.sourceforge.net/
|
|
|
|
4. We have had good results with the METIS library, from
|
|
http://www-users.cs.umn.edu/~karypis/metis/metis/main.html
|
|
This is optional; it is used in the util and test/fileread
|
|
directories but only if you define the HAVE_METIS directive.
|
|
|
|
The configure script will generate a Make.inc file suitable for
|
|
building the library.
|
|
The script is capable of recognizing the needed libraries with their
|
|
default names; if they are in unusual places consider adding the paths
|
|
with --with-lib, or explicitly specifying the names in --with-blas,
|
|
--with-blacs etc.
|
|
Please note that a common way for the configure script to fail is to
|
|
specify inconsistent MPI vs. plain compilers, either directly or
|
|
indirectly via environment variables; e.g. specifying the Intel
|
|
compiler with FC=ifort while at the same time having an MPIFC=mpif90
|
|
which points to GNU Fortran.
|
|
The best way to avoid this situation is (in our opinion) to use the
|
|
environment modules package (see http://modules.sourceforge.net/), and
|
|
load the relevant variables with (e.g.)
|
|
module load gnu42 mpich
|
|
This will delegate to the modules setup to make sure that the version
|
|
of mpich in use is the one compiled with the gnu42 compilers.
|
|
After the configure script has completed you can always tweak the
|
|
Make.inc file yourself.
|
|
|
|
After you have Make.inc fixed, run
|
|
make
|
|
to compile the library; go to the test directory and its
|
|
subdirectories to get test programs done.
|
|
If you specify --prefix=/path you can do make install and the
|
|
libraries will be installed under /path/lib, while the module files
|
|
will be installed under /path/include.
|
|
|
|
|
|
KNOWN ISSUES.
|
|
|
|
An annoying problem exists with some versions of MPI: if the configure
|
|
script sets -DMPI_MOD the MPI call interfaces will be resolved by
|
|
using the MPI Fortran module.
|
|
However usage of the module may cause compilation to fail when
|
|
coupled with the debugging option -g, because the compiler complains
|
|
that it cannot find a matching interface for some of the
|
|
communication routines.
|
|
The solution: either take out the -g option, or, if you really need to
|
|
debug, edit Make.inc to force -DMPI_H in place of -DMPI_MOD.
|
|
|
|
|
|
TODO:
|
|
Fix all reamining bugs. Bugs? We dont' have any ! ;-)
|
|
|
|
|
|
The PSBLAS team.
|
|
|
|
RELATED SOFTWARE
|
|
|
|
If you are looking for more sophisticated preconditioners, you may be
|
|
interested in the package MLD2P4 from http://www.mld2p4.it
|
|
|
|
|
|
|
|
Contact: Salvatore Filippone salvatore.filippone@uniroma2.it
|
|
|
|
Credits for version 2.2:
|
|
Michele Martone contributed the initial version of the configure
|
|
machinery.
|
|
|
|
Credits for version 2.0:
|
|
Salvatore Filippone
|
|
Alfredo Buttari
|
|
|
|
|
|
Credits for version 1.0:
|
|
|
|
Salvatore Filippone
|
|
Michele Colajanni
|
|
Fabio Cerioni
|
|
Stefano Maiolatesi
|
|
Dario Pascucci
|
|
|
|
|
|
|
|
k |