umfpack

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
umfpack [2009/11/18 18:56] gerardumfpack [2009/12/04 09:45] gerard
Ligne 12: Ligne 12:
   * /usr/local/UMFPACKv4.4/UMFPACK/Include   * /usr/local/UMFPACKv4.4/UMFPACK/Include
   * /usr/local/UMFPACKv4.4/AMD/Include   * /usr/local/UMFPACKv4.4/AMD/Include
 +  * /local/apps/src/UMFPACKv4.4/UMFPACK/Demo/
 +  
 +
 +Utilisation de umfpack dans un code fortran:
 +  * umfpack est écrit en C
 +  * il existe une interface fortran 77, utilisable en fortran 90
 +  * prendre pour exemple le fichier Demo/umf4hb64.f dans /local/apps/src/UMFPACKv4.4/UMFPACK/Demo/ sur nemo
 +  * dans son fichier, ajouter les lignes suivantes:
 +
 +<code>
 +  call umf4def (control) ! met les parametres par defauts
 +  control (1) = 1
 +  call umf4pcon (control)
 +  call umf4sym (N, N, Ap, Ai, Ax, symbolic, control, info) !       pre-order and symbolic analysis
 +  call umf4num (Ap, Ai, Ax, symbolic, numeric, control, info)
 +  call umf4fsym (symbolic)
 +  call umf4sol (sys, x, RHSV, numeric, control, info)
 +  call umf4fnum (numeric)
 +  call umf4pinf (control, info)
 +</code>
 +Pour cela, il faut bien entendu lier votre programme avec le programme umf4_f77wrapper.c, de la facon suivante:
 +<code>
 +cc -o umf4_f77wrapper.o -DDLONG -m64 -I/usr/local/UMFPACKv4.4/UMFPACK/Include -c umf4_f77wrapper.c
 +f90 -o poisson3d_umfpack.o -g -fast -C -e -fpp -stackvar -xcheck=init_local -fpover -ftrap=%none -Xlist -fsimple=0 -fns=no -dalign -O4 -KPIC -xmodel=medium -m64 -c poisson3d_umfpack.f90
 +f90 -g -fast -C -e -fpp -stackvar -xcheck=init_local -fpover -ftrap=%none -Xlist -fsimple=0 -fns=no -dalign -O4 -KPIC -xmodel=medium -m64 -o poisson3d_umfpack poisson3d_umfpack.o umf4_f77wrapper.o /usr/local/UMFPACKv4.4/UMFPACK/Lib/libumfpack.a /usr/local/UMFPACKv4.4/AMD/Lib/libamd.a -xlic_lib=sunperf
 +
 +</code>
  
 ====== Config ====== ====== Config ======
   * on édite Make.include et Make.solaris (voir lien sur Make.solaris_amd64) avant de compiler    * on édite Make.include et Make.solaris (voir lien sur Make.solaris_amd64) avant de compiler 
 +<code>
 +diff /local/apps/src/UMFPACKv4.4/UMFPACK/Make/Make.include-ori /local/apps/src/UMFPACKv4.4/UMFPACK/Make/Make.include
 +50c50
 +< CONFIG = -DNBLAS
 +---
 +> CONFIG = 
 +63c63
 +< # include ../Make/Make.solaris
 +---
 +> include ../Make/Make.solaris
 +
 +</code>
 +et
 +<code>
 +diff /local2/fboyer/UMFPACKv4.4/UMFPACK/Make/Make.solaris /local/apps/src/UMFPACKv4.4/UMFPACK/Make/Make.solaris
 +5a6
 +
 +11,13c12,14
 +<  CC = cc
 +<  CFLAGS = -Xc -xO5 -KPIC -dalign -xtarget=generic64
 +<  F77FLAGS =   -xO5 -KPIC -dalign -m64
 +---
 +> CC = cc
 +> CFLAGS = -xO5 -xdepend -DLP64 -xprefetch=auto -xprefetch_level=3 -xipo=2 -m64 -xmodel=medium
 +> F77FLAGS =   -xO5 -xdepend -DLP64 -xprefetch=auto -xprefetch_level=3 -xipo=2 -m64 -xmodel=medium
 +22d22
 +< #LIB = -xlic_lib=sunperf -lfai -lfsu -lfui -lsunperf -lm -lsunmath
 +30c30
 +<  LIB =  -xlic_lib=sunperf -lfai -lfsu -lfui -lm
 +---
 +> LIB = -L/opt/studio12/SUNWspro/lib/amd64 -R/opt/studio12/SUNWspro/lib/amd64 -lsunperf -lm -lpicl -lmtsk
 +
 +</code>
 +
   * 64 bits uniquement   * 64 bits uniquement
 +  * il y a un bug dans les programmes de test, corrige dans umf4hb64.f
 +<code>
 +diff  /local/apps/src/UMFPACKv4.4/UMFPACK/Demo/umf4hb64.f-ori  /local/apps/src/UMFPACKv4.4/UMFPACK/Demo/umf4hb64.f
 +331c331
 +<      $      n, nz, Ap (n+1), Ai (n), j, i, p
 +---
 +>      $      n, nz, Ap (n+1), Ai (nz), j, i, p
 +</code>
 +
 +====== Tests ======
 +===== en C =====
 +
 +  * prendre le source [[http://iusti.polytech.univ-mrs.fr/~jobic/dokuwiki/doku.php?id=librairies_installees&#umfpack|ici]]
 +<code>
 +module load ss12
 +cc -o umfpack_simple -m64 umfpack_simple.c -I/usr/local/UMFPACKv4.4/UMFPACK/Include -R/usr/local/UMFPACKv4.4/UMFPACK/Lib -L/usr/local/UMFPACKv4.4/UMFPACK/Lib -R/usr/local/UMFPACKv4.4/AMD/Lib -L/usr/local/UMFPACKv4.4/AMD/Lib -lumfpack -lamd -xlic_lib=sunperf
 +</code>
 +ou
 +<code>
 +module load ss12u1
 +cc -o umfpack_simple -m64 umfpack_simple.c -I/usr/local/UMFPACKv4.4/UMFPACK/Include -R/usr/local/UMFPACKv4.4/UMFPACK/Lib -L/usr/local/UMFPACKv4.4/UMFPACK/Lib -R/usr/local/UMFPACKv4.4/AMD/Lib -L/usr/local/UMFPACKv4.4/AMD/Lib -lumfpack -lamd -xlic_lib=sunperf -lm
 +</code>
  
 +===== en fortran =====
  
  
  • umfpack.txt
  • Dernière modification : 2017/08/25 09:56
  • de 127.0.0.1