|
|
|
# How to compile on Arch Linux
|
|
|
|
|
|
|
|
## Packages
|
|
|
|
We need to install some packages, from the regular repositories and from AUR
|
|
|
|
|
|
|
|
We need the following packages :
|
|
|
|
* openmpi
|
|
|
|
* cmake
|
|
|
|
* mumps (version 5, from AUR)
|
|
|
|
* Scalapack ( version >= 2, from AUR)
|
|
|
|
* Superlu (version 4, from AUR)
|
|
|
|
* parmetis
|
|
|
|
* metis4 (from AUR)
|
|
|
|
* openblas (from AUR)
|
|
|
|
|
|
|
|
## Compile Taucs
|
|
|
|
Unfortunately, we need to compile Taucs (which is not maintained anymore). We can follow the installation README from softserver.
|
|
|
|
|
|
|
|
The associated config file is attached: [linux_Arch.mk](/uploads/7164ec3bb9c95d5da4bf6e5031788252/linux_Arch.mk)
|
|
|
|
|
|
|
|
In order to work with gcc >= 6, `src/taucs.h` must be modified. You must comment `extern int isnan(double);` and `extern int isinf(double);`
|
|
|
|
|
|
|
|
Everything is installed into `$(DEVROOT)/myLibs/TAUCS_2.2`.
|
|
|
|
|
|
|
|
## Superlu
|
|
|
|
Installed from AUR (**version 4 !!!**)
|
|
|
|
|
|
|
|
Then, you must modify `xLinearSystemSolverSuperLu.cc` and chose `#define SUPERLU_VERSION 4`
|
|
|
|
|
|
|
|
**Attention:** The only supported version is version 3. Version 4 works (except the conditioning number estimation), but this is experimental
|
|
|
|
|
|
|
|
## CMakeLists.txt
|
|
|
|
My `CmakeLists.txt` is in `GEMUtil`. Basically, only the next lines differ from the default options:
|
|
|
|
|
|
|
|
```cmake
|
|
|
|
option(MUMPSV5 "use mumps version 5 or above (scotch/metis new API integration)" ON)
|
|
|
|
|
|
|
|
###############
|
|
|
|
# sclalapack version
|
|
|
|
# with version 2 and above scalapack integrate blacs
|
|
|
|
option(SCALAPACKV2 "Use scalapack version 2 or above" ON)
|
|
|
|
###############
|
|
|
|
|
|
|
|
|
|
|
|
SET(ENV{TAUCSLIB} "${DEVROOT}/myLibs/TAUCS_2.2/lib/linux_Arch/libtaucs.a")
|
|
|
|
SET(ENV{TAUCSINC} "${DEVROOT}/myLibs/TAUCS_2.2/src")
|
|
|
|
SET(ENV{TAUCSCONFIG} "${DEVROOT}/myLibs/TAUCS_2.2/build/linux_Arch")
|
|
|
|
SET(ENV{TAUCSTESTINC} "${DEVROOT}/myLibs/TAUCS_2.2/build/linux_Arch")
|
|
|
|
|
|
|
|
SET(ENV{SUPERLUINC} "/usr/include/superlu")
|
|
|
|
SET(ENV{MPIHOME} "/usr/bin")
|
|
|
|
```
|
|
|
|
|
|
|
|
And that's all... |