Vous êtes ici : Accueil / Recherches / Equipes / Echanges Côte-Large / Outils/Produits / poc-solvers

poc-solvers

Par ecola — Dernière modification 15/05/2015 11:36

Main contributors:

Cyril Nguyen : cyril.nguyen@aero.obs-mip.fr

Florent Lyard: florent.lyard@legos.obs-mip.fr

Damien Allain : damien.allain@legos.obs-mip.fr

 

poc-solvers is an interface to the most recent linear system solvers, with a special interest for sparse matrix solvers. It allows for including standardized solver request inside codes, thus avoid endless copies of libraries handling routines. It contains a standalone solver (so it can function without additional libraries) that is a copy of CXsparse. Sources management is based on Mercurial distributed version control system.

To integrate more solvers, the package must be downloaded from solver's home pages, and Makefile needs to be modified to activate (as well to de-activate if wished so) a given solver by changing a single flag from NO to YES.

It integrates the following solvers:

  • sequential :
    • CXsparse
    • MUMPS
    • UMFPACK (OpenMP optimisation through BLAS)
    • PASTIX (OpenMP native optimisation) DO NOT USE pastix_release_3725 !
  • parallel (MPI)
    • MUMPS
    • HIPS

 

 

Download

 

poc-solvers sources and configuration files are available through the Mercurial depot at https://hg.legos.obs-mip.fr/poc-solvers. See foolowing instructions for installation and compiling.

 

Instruction for poc-solvers installation

 

poc-solvers comes with a built-in linear solver (cxsparse) but it is preferable to install more efficient sparse matrix solvers for heavy computational applications.

Mandatory pre-requisite

blas, lapack

Optional pre-requisite

 suite-sparse, pastix

Instructions for depot installation and update

At first installation, you need to clone the depot by using in a local directory: 

poc-solvers-depot> hg clone https://hg.legos.obs-mip.fr/poc-solvers .

cmake suite is necessary to install the local depot. First create a compilation directory (cmade in our tutorial) and edit src/CMakeLists.txt to select available linear solvers (previously installed on your computer). At the head of the file you will find a series of set instructions, and choose YES or NO to actually includes the various solvers listed :

set(STATIC NO CACHE BOOL "Set to YES to have a static library. Disables PASTIX.")
set(HIPS NO CACHE BOOL "Set to YES to auto-detect HIPS. If found, it will enable MPI.")
set(ARPACK YES CACHE BOOL "Set to YES to auto-detect ARPACK.")
set(PARPACK YES CACHE BOOL "Set to YES to auto-detect PARPACK. If found, it will enable MPI.")
set(PASTIX YES CACHE BOOL "Set to YES to enable PASTIX. If it can not find it or if PASTIX is disabled, it will enable UMFPACK instead. PASTIX may enable MPI.")
set(MUMPS YES CACHE BOOL "Set to YES to enable MUMPS. It will enable MPI.")
set(MPI NO CACHE BOOL "Set to YES to enable MPI. Enabled by MUMPS anyway.")
set(UMFPACK YES CACHE BOOL "Set to YES to enable UMFPACK. Needed by TUGO. It will enable LAPACK.")
set(LAPACK YES CACHE BOOL "Set to YES to enable LAPACK. Enabled by UMFPACK anyway.")

Save the modifications if any. Then generate the poc-solvers Makefile by executing :

poc-solvers-depot/cmade> cmake ../src

Latter on, you can follow poc-solvers developments and fixing by routinely updating the depot:

poc-solvers-depot> hg pull https://hg.legos.obs-mip.fr/poc-solvers

poc-solvers-depot> hg update

After depot update, you will need to re-compile (see next section).


Instructions for compiling

poc-solvers-depot/cmade> make install

 

Useful websites:

SuiteSparse (provides UMFPACK, CXsparse, etc...)

HIPS, SCOTCH

GotoBlas

MUMPS, SCALAPACK

 

Actions sur le document

logo cnes logo IRD Logo université de Toulouse Logo université Paul Sabatier Logo CNRS
Logo bibliothèque OBS Logo Observatoire Midi Pyrénées