Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
dune [2010/09/30 13:38] – gerard | dune [2014/12/29 09:21] – [nouvelle version de solver-bench (0.45) plus slepc] gerard |
---|
| |
</code> | </code> |
| |
| ====== installer une nouvelle version de solver-bench ====== |
| * dans ''/local/apps/src/dune'' |
| * déplacer l'ancienne version |
| * récuperer le fichier do_work.sh |
| * ne pas oublier de rajouter **-lmpi** dans **LIBS** (voir ci-dessous) |
| |
====== benchmark ====== | ====== benchmark ====== |
| |
===== nouvelle version de solver-bench (0.45) plus slepc ===== | ===== nouvelle version de solver-bench (0.45) plus slepc ===== |
| <note>L'exemple ci-dessous est avec le mode debug, voir les fichiers do_work.sh pour le code optimisé</note> |
| |
<code> | <code> |
bash-3.2$ export PETSC_ARCH=linux-gnu-c-debug | bash-3.2$ export PETSC_ARCH=linux-gnu-c-debug |
bash-3.2$ export SLEPC_DIR=/local/apps/src/dune/slepc-3.1-p4 | bash-3.2$ export SLEPC_DIR=/local/apps/src/dune/slepc-3.1-p4 |
| bash-4.2$ cd ../slepc-3.1-p4 |
bash-3.2$ ./configure | bash-3.2$ ./configure |
bash-3.2$ make | bash-3.2$ make |
</code> | </code> |
| |
alors que pouyr la derneire version: | alors que pour la derneire version: |
<code> | <code> |
./configure CXX=g++ CXXFLAGS="-O3 -funroll-loops -finline-functions -DNDEBUG" \ | ./configure CXX=g++ CXXFLAGS="-O3 -funroll-loops -finline-functions -DNDEBUG" \ |
--with-dune-common=/local/apps/src/dune/Dune \ | --with-dune-common=/local/apps/src/dune/Dune \ |
--with-dune-istl=/local/apps/src/dune/Dune \ | --with-dune-istl=/local/apps/src/dune/Dune \ |
CPPFLAGS="-I/local/apps/src/petsc-3.1-p5/linux-gnu-c-debug/include" \ | CPPFLAGS="-I/local/apps/src/petsc-3.1-p5/linux-gnu-c-debug/include -I/usr/lib/openmpi/1.4-gcc/include" \ |
LDFLAGS="-L/local/apps/src/petsc-3.1-p5/linux-gnu-c-debug/lib" | LDFLAGS="-L/local/apps/src/petsc-3.1-p5/linux-gnu-c-debug/lib" |
| </code> |
| |
| et ca passe donc avec la ligne: |
| <code> |
| ./configure CXX=g++ CXXFLAGS="-O3 -funroll-loops -finline-functions -DNDEBUG" --prefix=/local/apps/src/dune/Dune --disable-documentation --disable-compilercheck --disable-mpiruntest --with-umfpack=/local/apps/src/dune/UMFPACK --with-petsc=/local/apps/src/dune/petsc-3.1-p5 --with-dune-common=/local/apps/src/dune/Dune --with-dune-istl=/local/apps/src/dune/Dune CPPFLAGS="-I/local/apps/src/dune/petsc-3.1-p5/linux-gnu-c-debug/include -I/usr/lib/openmpi/1.4-gcc/include" LDFLAGS="-L/local/apps/src/dune/petsc-3.1-p5/linux-gnu-c-debug/lib" |
| |
| </code> |
| ne pas oublier l'include openmpi, car il a besin de mpi.h alors qu'on a demande de compiler petsc sans mpi |
| |
| pour rajouter slepc: |
| <code> |
| ./configure CXX=g++ CXXFLAGS="-O3 -funroll-loops -finline-functions -DNDEBUG" \ |
| --prefix=/local/apps/src/dune/Dune \ |
| --disable-documentation --disable-compilercheck --disable-mpiruntest \ |
| --with-umfpack=/local/apps/src/dune/UMFPACK \ |
| --with-petsc=/local/apps/src/dune/petsc-3.1-p5 \ |
| --with-dune-common=/local/apps/src/dune/Dune \ |
| --with-dune-istl=/local/apps/src/dune/Dune \ |
| --with-slepc=/local/apps/src/dune/slepc-3.1-p4/linux-gnu-c-debug \ |
| --with-slepc-includedir=/local/apps/src/dune/slepc-3.1-p4/include \ |
| --with-slepc-libdir=/local/apps/src/dune/slepc-3.1-p4/linux-gnu-c-debug/lib \ |
| CPPFLAGS="-I/local/apps/src/dune/petsc-3.1-p5/linux-gnu-c-debug/include -I/usr/lib/openmpi/1.4-gcc/include -I/local/apps/src/dune/slepc-3.1-p4/include" \ |
| LDFLAGS="-L/local/apps/src/dune/petsc-3.1-p5/linux-gnu-c-debug/lib -L/usr/lib64/openmpi/1.4-gcc/lib" \ |
| LIBS="-lmpi -lX11" |
| |
| ... |
| Found the following Dune-components: |
| |
| ---------------------------------------- |
| |
| dune-common.............: yes (/local/apps/src/dune/Dune) version 2.0 |
| dune-istl...............: yes (/local/apps/src/dune/Dune) version 2.0 |
| BLAS....................: yes |
| METIS...................: no |
| MPI.....................: no |
| PETSC...................: yes (/local/apps/src/dune/petsc-3.1-p5) |
| ParMETIS................: no |
| SLEPC...................: yes (/local/apps/src/dune/slepc-3.1-p4/linux-gnu-c-debug) |
| SuperLU-DIST............: no |
| SuperLU.................: no |
| UMFPACK.................: yes (/local/apps/src/dune/UMFPACK) |
| |
| ---------------------------------------- |
| |
| See ./configur |
| </code> |
| |
| <note important>Attention, cette compilation échoue, il faut enlever LIBS, lancer le configure, et hacker manuellement les 2 Makefile pour rajouter ces libs!</note> |
| <code> |
| bash-3.2$ diff /tmp/Makefile src/Makefile |
| 225c225 |
| < LIBS = -L/local/apps/src/dune/Dune/lib -ldunecommon -L/local/apps/src/dune/Dune/lib -ldunecommon ${DUNEMPILIBS} -L/local/apps/src/dune/Dune/lib -ldunecommon -L/local/apps/src/dune/Dune/lib -ldunecommon -lm -lumfpack -lamd -lpetsc -lslepc -llapack -lblas |
| --- |
| > LIBS = -L/local/apps/src/dune/Dune/lib -ldunecommon -L/local/apps/src/dune/Dune/lib -ldunecommon ${DUNEMPILIBS} -L/local/apps/src/dune/Dune/lib -ldunecommon -L/local/apps/src/dune/Dune/lib -ldunecommon -lm -lumfpack -lamd -lpetsc -lslepc -llapack -lblas -lmpi |
| |
</code> | </code> |