arpack

arpack

Utilisation

32 bits 64 bits
version série /local/apps/lib/lib/libarpack_i86pc.a /local/apps/lib/amd64/lib/libarpack_amd64.a
version parallèle /local/apps/lib/lib/parpack_MPI-i86pc.a /local/apps/lib/amd64/lib/parpack_MPI-amd64.a
  • dans /local/apps/src/ARPACK
  • ne pas oublier les patches ~/downloads/patch.tar.gz et ~/downloads/ppatch.tar.gz.
  • compilé avec Sun Studio 12
  • Sun MPI (HPC6)
  • voir les options utilisées dans /local/apps/src/ARPACK/ARmake.inc

Exemple en 32 bits, série:

> diff ARmake.inc-ori  ARMAKES/ARmake.solaris10 
28c28
< home = $(HOME)/ARPACK
---
> home = $(HOME)/src/ARPACK
35c35
< PLAT = SUN4
---
> PLAT = i86pc
46c46
< DIRS        = $(BLASdir) $(LAPACKdir) $(UTILdir) $(SRCdir)
---
> #DIRS        = $(BLASdir) $(LAPACKdir) $(UTILdir) $(SRCdir)
54c54
< #DIRS         = $(UTILdir) $(SRCdir)
---
> DIRS         = $(UTILdir) $(SRCdir)
---
> DIRS         = $(UTILdir) $(SRCdir)
61c61
< LAPACKLIB =
---
> LAPACKLIB = -xlic_lib=sunperf
105c105
< FFLAGS        = -O -cg89
---
> FFLAGS        = -dalign
107c107
< LDFLAGS = 
---
> LDFLAGS = -xlic_lib=sunperf
115c115
< MAKE    = /bin/make
---
> MAKE    = make

pour compiler:

make lib
> file dssimp
dssimp:         ELF 32-bit LSB executable 80386 Version 1 [SSE2 SSE AMD_3DNow CMOV FPU], dynamically linked, not stripped

> ./dssimp 

 _saupd: number of update iterations taken
 -----------------------------------------
    1 -    1:     8


 _saupd: number of "converged" Ritz values
 -----------------------------------------
    1 -    1:     4


 _saupd: final Ritz values
 -------------------------
    1 -    4:   8.912D+02   9.198D+02   9.198D+02   9.484D+02


 _saupd: corresponding error bounds
 ----------------------------------
    1 -    4:   6.399D-24   1.169D-14   7.116D-17   1.637D-35



     ==========================================
     = Symmetric implicit Arnoldi update code =
     = Version Number: 2.4                    =
     = Version Date:   07/31/96               =
     ==========================================
     = Summary of timing statistics           =
     ==========================================


     Total number update iterations             =     8
     Total number of OP*x operations            =   125
     Total number of B*x operations             =     0
     Total number of reorthogonalization steps  =   125
     Total number of iterative refinement steps =     0
     Total number of restart steps              =     0
     Total time in user OP*x operation          =     0.000467
     Total time in user B*x operation           =     0.000000
     Total time in Arnoldi update routine       =     0.005470
     Total time in saup2 routine                =     0.004773
     Total time in basic Arnoldi iteration loop =     0.001817
     Total time in reorthogonalization phase    =     0.000646
     Total time in (re)start vector generation  =     0.000054
     Total time in trid eigenvalue subproblem   =     0.000684
     Total time in getting the shifts           =     0.000054
     Total time in applying the shifts          =     0.002106
     Total time in convergence testing          =     0.000007

 Ritz values and relative residuals
 ----------------------------------
               Col   1       Col   2
  Row   1:    8.91167D+02   1.78240D-15
  Row   2:    9.19781D+02   1.44880D-15
  Row   3:    9.19781D+02   2.07175D-15
  Row   4:    9.48395D+02   2.57489D-15


  _SSIMP
  ======

  Size of the matrix is   100
  The number of Ritz values requested is   4
  The number of Arnoldi vectors generated (NCV) is   20
  What portion of the spectrum: LM
  The number of converged Ritz values is   4
  The number of Implicit Arnoldi update iterations taken is   8
  The number of OP*x is   125
  The convergence criterion is     1.1102230246252D-16

 Note: IEEE floating-point exception flags raised:
    Inexact;  Underflow;
 See the Numerical Computation Guide, ieee_flags(3M)

impossible de compiler les exemples:

slatp:~/projects/tests/arpack/examples/SIMPLE> make dssimp
Making dssimp.o from dssimp.f
g77 -O2 dssimp.o /usr/lib/libarpack.a /usr/lib/liblapack.a /usr/lib/libblas.a  -o dssimp
/usr/lib/libblas.a(xerbla.o): In function `xerbla_':
(.text+0xd0): multiple definition of `xerbla_'
/usr/lib/liblapack.a(xerbla.o):(.text+0x0): first defined here
/usr/bin/ld: Warning: size of symbol `xerbla_' changed from 97 in /usr/lib/liblapack.a(xerbla.o) to 57 in /usr/lib/libblas.a(xerbla.o)
collect2: ld returned 1 exit status
make: *** [dssimp] Error 1

sur slatp, on peut avoir:

atlas3-base - Automatically Tuned Linear Algebra Software,generic shared
lapack3 - library of linear algebra routines 3 - shared version
refblas3 - Basic Linear Algebra Subroutines 3, shared library


slatp:~# dpkg -S libblas
refblas3: /usr/lib/libblas.so.3
refblas3: /usr/lib/libblas.so.3.0
refblas3-dev: /usr/lib/libblas.so
refblas3-dev: /usr/lib/libblas.a
atlas3-base: /usr/lib/atlas/libblas.so.3
atlas3-base: /usr/lib/atlas/libblas.so.3.0

slatp:~# dpkg -S liblapack
lapack3-dev: /usr/lib/liblapack.a
lapack3: /usr/lib/liblapack.so.3
atlas3-base: /usr/lib/liblapack_atlas.so.3.0
lapack3-dev: /usr/lib/liblapack.so
lapack3: /usr/lib/liblapack.so.3.0
atlas3-base: /usr/lib/atlas/liblapack.so.3.0
atlas3-base: /usr/lib/liblapack_atlas.so.3
atlas3-base: /usr/lib/atlas/liblapack.so.3

et ça passe avec atlas:

slatp:~/projects/tests/arpack/examples/SIMPLE> make dssimp                      
g77 -O2 dssimp.o /usr/lib/libarpack.a /usr/lib/atlas/liblapack.so.3 /usr/lib/atlas/libblas.so.3  -o dssimp
  • arpack.txt
  • Dernière modification : 2017/08/25 09:56
  • de 127.0.0.1