Ceci est une ancienne révision du document !
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 |
Compilation sur nemo
- 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) 105c105 < FFLAGS = -O -cg89 --- > FFLAGS = -fast 107c107 < LDFLAGS = --- > LDFLAGS = -xlic_lib=sunperf 115c115 < MAKE = /bin/make --- > MAKE = make
pour compiler:
make lib
mais l'exemple ne passe pas en 32bits (: ne pas compiler avec l'option fast!), il faut compiler en 64 bits
> file dssimp dssimp: ELF 32-bit LSB executable 80386 Version 1 [SSE2 SSE AMD_3DNow CMOV FPU], dynamically linked, not stripped > ./dssimp Error with _saupd, info = -9999 Check documentation in _saupd Note: IEEE floating-point exception flags raised: Inexact; Invalid Operation; See the Numerical Computation Guide, ieee_flags(3M)
sur slatp
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