Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
dune [2010/07/28 10:06] – gerard | dune [2017/08/25 09:56] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ====== recompilation de solver-bench sur judith (CentOS7) ====== | ||
+ | dune sur judith, ne pas oublier: | ||
+ | < | ||
+ | [root@judith ~]# yum groupinstall ' | ||
+ | </ | ||
+ | * dans / | ||
+ | * dernière version du solver-bench: | ||
+ | * a besoin de : (voir config.log) | ||
+ | < | ||
+ | --with-umfpack=/ | ||
+ | --with-petsc=/ | ||
+ | --with-dune-istl=/ | ||
+ | --with-slepc=/ | ||
+ | </ | ||
+ | si on essaie de recompiler UMFPACK en utilisant le script de RK: ./ | ||
+ | < | ||
+ | ./ | ||
+ | </ | ||
+ | et: | ||
+ | < | ||
+ | [root@judith ~]# yum provides " | ||
+ | compat-libgfortran-41-4.1.2-44.el7.i686 : Compatibility Fortran 95 runtime | ||
+ | : library version 4.1.2 | ||
+ | Repo : base | ||
+ | Matched from: | ||
+ | Filename | ||
+ | </ | ||
+ | on installe cette lib: | ||
+ | < | ||
+ | [root@judith ~]# yum install compat-libgfortran-41-4.1.2-44.el7 | ||
+ | </ | ||
+ | et on lance l' | ||
+ | \\ | ||
+ | autre erreur, le do_work.sh ne passe pas à cause du compilo fortran qui n' | ||
+ | et ça passe: | ||
+ | < | ||
+ | Found the following Dune-components: | ||
+ | |||
+ | ---------------------------------------- | ||
+ | |||
+ | dune-common.............: | ||
+ | dune-istl...............: | ||
+ | BLAS....................: | ||
+ | METIS...................: | ||
+ | MPI.....................: | ||
+ | PETSC...................: | ||
+ | ParMETIS................: | ||
+ | SLEPC...................: | ||
+ | SuperLU-DIST............: | ||
+ | SuperLU.................: | ||
+ | UMFPACK.................: | ||
+ | </ | ||
+ | |||
+ | ensuite, on lance le make | ||
+ | \\ | ||
+ | autre erreur: | ||
+ | < | ||
+ | / | ||
+ | | ||
+ | ^ | ||
+ | In file included from / | ||
+ | from / | ||
+ | from umfpack.hh: | ||
+ | from mymatrix.hh: | ||
+ | from benchmarkruntime.cc: | ||
+ | / | ||
+ | | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | ça passe, mais il y a un autre problème à l' | ||
+ | |||
+ | on essaie de recompiler petsc, et RK a fourni le script | ||
+ | install_petsc_slepc.sh avec all comme argument | ||
+ | ça passe toujours pas, on essaie autrement (voir wiki) | ||
+ | < | ||
+ | bash-4.2$ export PETSC_DIR=$PWD | ||
+ | bash-4.2$ ./ | ||
+ | ... | ||
+ | Compilers: | ||
+ | C Compiler: | ||
+ | Fortran Compiler: | ||
+ | Linkers: | ||
+ | Static linker: | ||
+ | Dynamic linker: | ||
+ | X11: | ||
+ | Includes: | ||
+ | Library: | ||
+ | BLAS/ | ||
+ | PETSc: | ||
+ | PETSC_ARCH: linux-gnu-c-debug | ||
+ | PETSC_DIR: / | ||
+ | Clanguage: C | ||
+ | Scalar type: real | ||
+ | Precision: double | ||
+ | Memory alignment: 16 | ||
+ | shared libraries: disabled | ||
+ | dynamic libraries: disabled | ||
+ | xxx=========================================================================xxx | ||
+ | | ||
+ | make PETSC_DIR=/ | ||
+ | xxx=========================================================================xxx | ||
+ | </ | ||
+ | il faut aussi ajouter la lib mpi et | ||
+ | Different compiler and linker combinations require different flags. -R works for many GNU compiler and linker combinations, | ||
+ | dans LD_FLAGS dans do_work.sh | ||
+ | pour compiler solver-bench, | ||
+ | < | ||
+ | libtool: link: gfortran -g -O2 -Wl,-rpath -Wl,/ | ||
+ | gfortran: error: unrecognized command line option ' | ||
+ | make[2]: *** [fortrantest] Error 1 | ||
+ | make[2]: Leaving directory `/ | ||
+ | </ | ||
+ | il faut aller dans le Makefile du dossier examples/ et virer --tag=CXX des lignes LD...., avec la nouvelle verson du compilo gfortran ça passe sans problème | ||
+ | |||
+ | on vérifie sur un des benches: | ||
+ | < | ||
+ | --------------------------------------------------------- | ||
+ | RESULTS for `LS-FVM_test1_dkershaw16.xdr' | ||
+ | --------------------------------------------------------- | ||
+ | Contributor and scheme: LS-FVM | ||
+ | Test: 1 | ||
+ | Mesh: dkershaw16 | ||
+ | --------------------------------------------------------- | ||
+ | Problem size: | ||
+ | 1) unknowns: | ||
+ | 2) non-zero Matrix entries: | ||
+ | 3) entries in blocks of size: 1 | ||
+ | Solver + Preconditioner: | ||
+ | Reduction to achieve: 1e-10 | ||
+ | Number of iterations: 409601 | ||
+ | Residual : || b - Ax ||_inf | ||
+ | rel. Res.: || b - Ax ||_inf / || b ||_inf | ||
+ | Computed eigenvalues values: lambda_max = -11.2098, lambda_min = -0.00820027 | ||
+ | Estimated condition number: | ||
+ | CPU time to solve in seconds: 101.545 | ||
+ | Memory used in MB: 4.74609 (program internal) | ||
+ | Memory used in MB: 7.9375 (rusage.ru_maxrss) | ||
+ | --------------------------------------------------------- | ||
+ | </ | ||
+ | à comparer avec [[http:// | ||
+ | | CPU time to solve in seconds| 369.315 | 101.545 | | ||
====== installation sur octopus ====== | ====== installation sur octopus ====== | ||
Ligne 13: | Ligne 156: | ||
</ | </ | ||
+ | |||
+ | ====== installer une nouvelle version de solver-bench ====== | ||
+ | * dans ''/ | ||
+ | * déplacer l' | ||
+ | * récuperer le fichier do_work.sh | ||
+ | * ne pas oublier de rajouter **-lmpi** dans **LIBS** (voir ci-dessous) | ||
====== benchmark ====== | ====== benchmark ====== | ||
Ligne 66: | Ligne 215: | ||
</ | </ | ||
+ | ===== avec umfpack ===== | ||
+ | * ajouter umfpack avec le script fourni par R.K. : [[umfpack_installer.sh]] | ||
+ | * umfpack s' | ||
+ | * on recompile dune et le module solver-bench avec umfpack | ||
+ | * on vérifie que c'est pris en compte: | ||
+ | < | ||
+ | [henry@octopus src]$ ./ | ||
+ | Residual: euclidian = 2.43625e-17 | ||
+ | nR = 93 nC = 93 nZ = 1467 | ||
+ | Rows offset is 0 | ||
+ | Overall time for UMFPACK solve: 0.001 | ||
+ | UMFPACK: | ||
+ | Solution needed 0 seconds. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== petsc ====== | ||
+ | < | ||
+ | [devel1@octopus petsc-3.1-p4]$ export PETSC_DIR=$PWD | ||
+ | [devel1@octopus petsc-3.1-p4]$ ./ | ||
+ | ... | ||
+ | Compilers: | ||
+ | C Compiler: | ||
+ | Fortran Compiler: | ||
+ | Linkers: | ||
+ | Static linker: | ||
+ | X11: | ||
+ | Includes: | ||
+ | Library: | ||
+ | BLAS/ | ||
+ | PETSc: | ||
+ | PETSC_ARCH: linux-gnu-c-debug | ||
+ | PETSC_DIR: / | ||
+ | Clanguage: C | ||
+ | Scalar type: real | ||
+ | Precision: double | ||
+ | Memory alignment: 16 | ||
+ | shared libraries: disabled | ||
+ | dynamic libraries: disabled | ||
+ | xxx=========================================================================xxx | ||
+ | | ||
+ | make PETSC_DIR=/ | ||
+ | xxx=========================================================================xxx | ||
+ | [devel1@octopus petsc-3.1-p4]$ | ||
+ | |||
+ | [devel1@octopus petsc-3.1-p4]$ make PETSC_DIR=/ | ||
+ | Running test examples to verify correct installation | ||
+ | C/C++ example src/ | ||
+ | Fortran example src/ | ||
+ | Completed test examples | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== nouvelle version de solver-bench (0.45) plus slepc ===== | ||
+ | < | ||
+ | |||
+ | < | ||
+ | bash-3.2$ ./ | ||
+ | bash-3.2$ make PETSC_DIR=/ | ||
+ | bash-3.2$ make PETSC_DIR=/ | ||
+ | |||
+ | bash-3.2$ export PETSC_DIR=/ | ||
+ | bash-3.2$ export PETSC_ARCH=linux-gnu-c-debug | ||
+ | bash-3.2$ export SLEPC_DIR=/ | ||
+ | bash-4.2$ cd ../ | ||
+ | bash-3.2$ ./ | ||
+ | bash-3.2$ make | ||
+ | bash-3.2$ make test | ||
+ | Running test examples to verify correct installation | ||
+ | C/C++ example src/ | ||
+ | Fortran example src/ | ||
+ | Completed test examples | ||
+ | |||
+ | </ | ||
+ | |||
+ | après, on essaie: | ||
+ | < | ||
+ | bash-3.2$ ./ | ||
+ | |||
+ | |||
+ | but i saw in the messages that petsc and slepc weren' | ||
+ | |||
+ | Found the following Dune-components: | ||
+ | |||
+ | ---------------------------------------- | ||
+ | |||
+ | dune-common.............: | ||
+ | dune-istl...............: | ||
+ | BLAS....................: | ||
+ | METIS...................: | ||
+ | MPI.....................: | ||
+ | PETSC...................: | ||
+ | ParMETIS................: | ||
+ | SLEPC...................: | ||
+ | SuperLU-DIST............: | ||
+ | SuperLU.................: | ||
+ | UMFPACK.................: | ||
+ | |||
+ | ---------------------------------------- | ||
+ | |||
+ | See ./configure --help and config.log for reasons why a component wasn't found | ||
+ | </ | ||
+ | si on édite config.log: | ||
+ | < | ||
+ | ./configure CXX=g++ CXXFLAGS=-O3 -funroll-loops -finline-functions -DNDEBUG \ | ||
+ | --prefix=/ | ||
+ | --enable-parallel \ | ||
+ | --disable-documentation --disable-compilercheck --disable-mpiruntest \ | ||
+ | --with-umfpack=/ | ||
+ | --with-dune-common=/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | alors que pour la derneire version: | ||
+ | < | ||
+ | ./configure CXX=g++ CXXFLAGS=" | ||
+ | --prefix=/ | ||
+ | --disable-documentation --disable-compilercheck --disable-mpiruntest \ | ||
+ | --with-umfpack=/ | ||
+ | --with-petsc=/ | ||
+ | --with-dune-common=/ | ||
+ | --with-dune-istl=/ | ||
+ | CPPFLAGS=" | ||
+ | LDFLAGS=" | ||
+ | </ | ||
+ | |||
+ | et ca passe donc avec la ligne: | ||
+ | < | ||
+ | ./configure CXX=g++ CXXFLAGS=" | ||
+ | |||
+ | </ | ||
+ | ne pas oublier l' | ||
+ | |||
+ | pour rajouter slepc: | ||
+ | < | ||
+ | ./configure CXX=g++ CXXFLAGS=" | ||
+ | --prefix=/ | ||
+ | --disable-documentation --disable-compilercheck --disable-mpiruntest \ | ||
+ | --with-umfpack=/ | ||
+ | --with-petsc=/ | ||
+ | --with-dune-common=/ | ||
+ | --with-dune-istl=/ | ||
+ | --with-slepc=/ | ||
+ | --with-slepc-includedir=/ | ||
+ | --with-slepc-libdir=/ | ||
+ | CPPFLAGS=" | ||
+ | LDFLAGS=" | ||
+ | LIBS=" | ||
+ | |||
+ | ... | ||
+ | Found the following Dune-components: | ||
+ | |||
+ | ---------------------------------------- | ||
+ | |||
+ | dune-common.............: | ||
+ | dune-istl...............: | ||
+ | BLAS....................: | ||
+ | METIS...................: | ||
+ | MPI.....................: | ||
+ | PETSC...................: | ||
+ | ParMETIS................: | ||
+ | SLEPC...................: | ||
+ | SuperLU-DIST............: | ||
+ | SuperLU.................: | ||
+ | UMFPACK.................: | ||
+ | |||
+ | ---------------------------------------- | ||
+ | |||
+ | See ./configur | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | < | ||
+ | bash-3.2$ diff / | ||
+ | 225c225 | ||
+ | < LIBS = -L/ | ||
+ | --- | ||
+ | > LIBS = -L/ | ||
+ | |||
+ | </ |