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 |
hypre [2008/01/22 15:47] – gerard | hypre [2009/10/15 15:21] – gerard |
---|
| |
====== Site ====== | ====== Site ====== |
[[http://www.llnl.gov/CASC/linear_solversm|Lien externe]] | [[https://computation.llnl.gov/casc/hypre/|Lien externe]] |
| |
====== Version 1.6.0 ====== | ====== Version 1.6.0 ====== |
* /local/henry/hypre-1.6.0-amd64/src/hypre compilé avec Sun MPI | * /local/henry/hypre-1.6.0-amd64/src/hypre compilé avec Sun MPI |
* les exemples et la doc sont accessibles: /local/henry/hypre-1.6.0/src et /local/henry/hypre-1.6.0/docs | * les exemples et la doc sont accessibles: /local/henry/hypre-1.6.0/src et /local/henry/hypre-1.6.0/docs |
| |
| |
| |
| |
====== Version 2.0.0 ====== | ====== Version 2.0.0 ====== |
* installé sur nemo | * installé sur nemo |
* /local/apps/src/hypre-2.0.0/src | |
| ^ chemin ^ précision ^ script pour recompiler ^ features ^ compilateurs ^ MPI ^ |
| | /local/henry/hypre-2.0.0/src/hypre/lib | 32bits | /local/henry/hypre-2.0.0/src/do_work.sh | sans babel | sunstudio | Sun HPC 6.0 | |
| | /local/apps/lib/hypre/2.0.0/openmpi/sun/1.3.3/ | 32bits | /local/apps/src/hypre-2.0.0/src/do_work32_openmpi.sh | ? | SS12u1 | HPC8.2 (openmpi de sun) | |
| | /local/apps/debug | 32bits | /local/apps/src/hypre-2.0.0/src/do_work32_debug.sh | avec babel | studio12 | SUNWhpc | |
| | /local/apps/lib | 32bits | /local/apps/src/hypre-2.0.0/src/do_work32.sh | avec babel | studio12 | SUNWhpc | |
| | /local/apps/lib/amd64/ss12 | 64bits | /local/apps/src/ss12/hypre-2.0.0/src/do_work.sh | sans babel? | sunstudio 12 | Sun HPC 6.0 | |
| | /local/apps/lib/amd64/opt0 | 64bits | /local/apps/src/hypre-2.0.0/src/do_work_opt0.sh | sans babel | studio12 | SUNWhpc | |
| | /local/apps/hypre/2.0.0/hpc6/lib/amd64 | 64bits | /local/apps/src/hypre-2.0.0/src/do_work.sh | avec babel | studio12 | HPC6.0 | |
| | | | /local/apps/src/hypre-2.2.0b/src/do_work_opt0.sh | | | | |
| |
| |
| ===== Exemples ===== |
* les exemples dans /local/apps/src/hypre-2.0.0/src/examples | * les exemples dans /local/apps/src/hypre-2.0.0/src/examples |
* le configure se fait à partir du script [[http://www.latp.univ-mrs.fr/~henry/Solaris/hypre/do_work32.sh|/local/apps/src/hypre-2.0.0/do_work32.sh]] (32 bits par defaut), et [[http://www.latp.univ-mrs.fr/~henry/Solaris/hypre/do_work.sh|/local/apps/src/hypre-2.0.0/do_work.sh]] (en 64 bits) | <del> * le configure se fait à partir du script |
| [[http://www.latp.univ-mrs.fr/~henry/Solaris/hypre/do_work32.sh|/local/apps/src/hypre-2.0.0/do_work32.sh]] (32 bits par defaut), et [[http://www.latp.univ-mrs.fr/~henry/Solaris/hypre/do_work.sh|/local/apps/src/hypre-2.0.0/do_work.sh]] (en 64 bits)</del> |
* penser à utiliser le compilateur Studio 12, avec la commande | * penser à utiliser le compilateur Studio 12, avec la commande |
<code> | |
> module load ss12 | |
| |
| <code> |
| module load ss12 |
</code> | </code> |
Le **path** idéal devrait au moins contenir: | Le **path** idéal devrait au moins contenir: |
<code> | <code> |
PATH=/opt/studio12/SUNWspro/bin:/usr/bin::/usr/local/wrapper/bin:/opt/SUNWhpc/bin | PATH=/opt/studio12/SUNWspro/bin:/usr/bin::/usr/local/wrapper/bin:/opt/SUNWhpc/bin |
| |
</code> | </code> |
| * [[hypre_patches|patches]] |
| |
| |
| ==== ex1 ==== |
| |
* testé l'exemple ex1 dans le repertoire exemples: | * testé l'exemple ex1 dans le repertoire exemples (utiliser Makefile pour une version 32 bits et Makefile.mod pour 64 bits): |
<code> | <code> |
nemo-henry% mprun -np 2 ex1 | nemo-henry% mprun -np 2 ex1 |
</code> | </code> |
| |
===== Modifications ===== | ==== ex5 ==== |
| avec SS12u1 et HPC6.0 |
| <code> |
| mpcc -g -m64 -I$HYPRE/include -DHAVE_CONFIG_H -DHYPRE_TIMING -c ex5.c |
| mpcc -m64 -fast -fsimple=0 -fns=no -xnolibmopt -o ex5 ex5.o -g -L$HYPRE/lib -lHYPRE -lm -lmpi_mt -lfsu -lsunmath -lm -lmtsk |
| mprun -np 4 ex5 |
| </code> |
| |
* modifié le Makefile du répertoire exemples pour que ça marche: | ====== Modifications ====== |
| * récupérer le répertoire exemples et modifier le Makefile: |
<code> | <code> |
nemo-henry% diff Makefile-dist Makefile | nemo-henry% diff Makefile-ori Makefile |
4,6c4,6 | 4,7c4,7 |
< CC = mpicc | < CC = mpicc |
< F77 = mpif77 | < F77 = mpif77 |
< CXX = mpiCC | < CXX = mpiCC |
| < HYPRE_DIR = ../hypre |
--- | --- |
> CC = mpcc | > CC = mpcc |
> F77 = mpf77 | > F77 = mpf77 |
> CXX = mpCC | > CXX = mpCC |
| > HYPRE_DIR = /local/apps/lib |
12c12 | 12c12 |
< COPTS = -g -pedantic -Wall | < COPTS = -g -pedantic -Wall |
> -L/opt/SUNWhpc/lib \ | > -L/opt/SUNWhpc/lib \ |
> -lmpi | > -lmpi |
37a40 | |
> | |
| |
</code> | </code> |
< | < |
</code> | </code> |
===== problèmes ===== | |
==== interface babel ne compile pas ==== | ====== problèmes ====== |
| ===== version 2.2.0b zero-sized struct/union cc: acomp failed ===== |
| cette erreur: |
| <code> |
| mpcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/libxml2 -I/usr/java/include -I/usr/java/include/solaris -I./../sidlx -xO3 -xdepend -xprefetch=auto -xprefetch_level=3 -xvector -ftrap=common -m64 -D_REENTRANT -c sidl_rmi_InstanceRegistry_Impl.c -KPIC -DPIC -o .libs/sidl_rmi_InstanceRegistry_Impl.o |
| "sidl_rmi_InstanceRegistry_Impl.h", line 75: zero-sized struct/union |
| cc: acomp failed for sidl_rmi_InstanceRegistry_Impl.c |
| make[3]: *** [sidl_rmi_InstanceRegistry_Impl.lo] Error 1 |
| </code> |
| est [[http://forum.java.sun.com/thread.jspa?threadID=5182898|prise en compte]] dans Studio 12, donc il faut ajouter -features=extensions |
| |
| ===== interface babel ne compile pas ===== |
Pour compiler avec l'interface babel, il suffit d'ajouter "--with-babel" sur la ligne configure, dans do_work.sk. | Pour compiler avec l'interface babel, il suffit d'ajouter "--with-babel" sur la ligne configure, dans do_work.sk. |
Mais la compilation échoue à cause du problème suivant: | Mais la compilation échoue à cause du problème suivant: |
| |
C'est ce qui est expliqué [[http://forum.java.sun.com/thread.jspa?threadID=5251468&tstart=0|Error with #pragma weak ]], mais faire cette modification manuellement est trop long (plus de 20 fichiers!) | C'est ce qui est expliqué [[http://forum.java.sun.com/thread.jspa?threadID=5251468&tstart=0|Error with #pragma weak ]], mais faire cette modification manuellement est trop long (plus de 20 fichiers!) |
Pour l'instant, pas d'in terface babel... | <del>Pour l'instant, pas d'interface babel...</del> |
| Les hacks ont été faits par [[http://www.latp.univ-mrs.fr/~jobic/dokuwiki/doku.php?id=hypre#interface_babel|Yann]] |
| \\ |
| Attention, pour utiliser les libs optimisées du constructeur (sun perflib), ne pas oublier les lignes suivantes en argument du configure: |
| <code> |
| > --with-blas-libs="sunperf" \ |
| > --with-blas-lib-dirs="/opt/SUNWhpc/lib/amd64" \ |
| > --with-lapack-libs="sunperf" \ |
| > --with-lapack-lib-dirs="/opt/SUNWhpc/lib/amd64" \ |
| </code> |
| |
| |
| ====== Utilisation de l'interface babel ====== |
| Comme cela manque d'exemples, il faut fouiller dans les sources de hypre. On peut s'inspirer de: |
| * src/test/f77_ij_b.f |
| |
| |