hypre

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/07 13:48] gerardhypre [2009/10/20 12:54] gerard
Ligne 1: Ligne 1:
- 
 ====== 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 ======
Ligne 8: Ligne 7:
   * /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 + 
-  * 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)+^ 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/hypre/2.0.0/hpc6/lib/amd64/opt0 | 64bits | /local/apps/src/hypre-2.0.0/src/do_workopt0.sh | a cause de l'underscore dans l'interface C/fortran, 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 
 +<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 M64 pour 64 bits):
 <code> <code>
 nemo-henry% mprun -np 2 ex1 nemo-henry% mprun -np 2 ex1
Ligne 48: Ligne 68:
 </code> </code>
  
-  * modifié le Makefile du répertoire exemples pour que ça marche:+==== ex5 ==== 
 +avec SS12u1 et HPC6.0
 <code> <code>
-nemo-henry% diff Makefile-dist Makefile  +mpcc -g  -m64 -I$HYPRE/include -DHAVE_CONFIG_H -DHYPRE_TIMING -c ex5.c 
-4,6c4,6+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> 
 + 
 +==== ex5b77 ==== 
 +en 64 bits: 
 +<code> 
 +nemo-henry% module purge; module load hypre2.0.0_hpc6 
 +nemo-henry% mpf77 -g -m64 -dalign -I$HYPRE/include -DHAVE_CONFIG_H -DHYPRE_TIMING -c ex5b77.f 
 +nemo-henry% mpf77 -v -m64 -fast -fsimple=0 -fns=no -xnolibmopt -xalias=actual -dalign -o ex5b77 ex5b77.o -L$HYPRE/lib -lbHYPREClient-C -lbHYPREClient-CX -lbHYPREClient-F -lbHYPRE -lsidl -ldl -lxml2 -lmpi -g -R$HYPRE/lib -L$HYPRE/lib -lHYPRE -lmpi -xlic_lib=sunperf 
 +</code> 
 + 
 +====== Modifications ====== 
 +  * récupérer le répertoire exemples et modifier le Makefile: 
 +<code> 
 +nemo-henry% diff Makefile-ori Makefile  
 +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
Ligne 75: Ligne 114:
 >  -L/opt/SUNWhpc/lib \ >  -L/opt/SUNWhpc/lib \
 >  -lmpi >  -lmpi
-37a40 +
-+
  
 </code> </code>
Ligne 111: Ligne 149:
  
 </code> </code>
 +
 +dans le répertoire lapack:
 +<code>
 +> diff lapack/Makefile.ori lapack/Makefile 104c104,105
 +<  xerbla.c
 +---
 +>  xerbla.c\
 +>  dlamch.c
 +112c113
 +< all: ${OBJS} dlamch.o
 +---
 +> all: ${OBJS}
 +127,129d127
 +< dlamch.o : dlamch.c ${LAPACK_HEADERS}
 +<       ${CC} -c dlamch.c
 +<
 +</code>
 +
 +====== 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.
 +Mais la compilation échoue à cause du problème suivant:
 +<code>
 +"/local/apps/src/hypre-2.0.0/src/babel-runtime/sidl/sidl_io_Serializer.h", line 1411: Error: 'sidl_io_Serializer__connectI' referenced in #pragma should be global and previously declared.
 +</code>
 +This error is due to these lines:
 +<code>
 +#pragma weak sidl_io_Serializer__connectI
 +struct sidl_io_Serializer__object*
 +sidl_io_Serializer__rmicast(...);
 +</code>
 +
 +if we invert the two preceding lines:
 +<code>
 +struct sidl_io_Serializer__object*
 +sidl_io_Serializer__rmicast(...);
 +#pragma weak sidl_io_Serializer__connectI
 +</code>
 +
 +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!)
 +<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
 +
  
  • hypre.txt
  • Dernière modification : 2017/08/25 09:56
  • de 127.0.0.1