[Trilinos-Users] Trilinos with ATLAS

James Willenbring jmwille at sandia.gov
Tue Jun 5 12:20:02 MDT 2007


I think you might need to put –latlas on the right side of –lcblas and
–lf77blas for the reasons that Ross stated.

 

-lcblas -lf77blas -latlas

 

Not

 

-latlas -lcblas -lf77blas

 

Jim

 

  _____  

From: Bartlett, Roscoe A [mailto:rabartl at sandia.gov] 
Sent: Tuesday, June 05, 2007 1:12 PM
To: Virginia Costa; Willenbring, James M
Cc: Hooper, Russell; trilinos-users at software.sandia.gov
Subject: RE: [Trilinos-Users] Trilinos with ATLAS

 

I would suggest doing an 'nm' on the atlas libraries and seeing what the
symbols are actually called.  Also, it looks like you have -latlas listed
before -lepetra and most linkers do not allow that.  You have to list the
libraries in decending order according to their dependencies.  For exmaple,
I think your link line should look like:

 

   -laztecoo -lepetra -lepetra_test -lepetraext -lifpack -lml -lteuchos
-ltriutils -llapack -L/usr/local/trilinos-7.0.8/linux-serial-atlas/lib
-L/usr/local/atlas/lib -latlas -lcblas -lf77blas

 

The dependencies should be ordered correctly above.  If you still get link
errors, you will have to use 'nm' and see where you find the symbols.

 

You can play with the link line manually to see what works.

 

Cheers,

 

Ross

  _____  

From: trilinos-users-bounces at software.sandia.gov
[mailto:trilinos-users-bounces at software.sandia.gov] On Behalf Of Virginia
Costa
Sent: Tuesday, June 05, 2007 11:50 AM
To: Willenbring, James M
Cc: Hooper, Russell; trilinos-users at software.sandia.gov
Subject: Re: [Trilinos-Users] Trilinos with ATLAS

I did as you said and it work well, but when I try to run ex12.cpp (epetra
example from didasko), it returns the following error

g++     -o dist/Debug/GNU-Linux-x86/teste-trilinos-atlas
build/Debug/GNU-Linux-x86/teste- trilinos.o
-L/usr/local/trilinos-7.0.8/linux-serial-atlas/lib -L/usr/local/atlas/lib
-latlas -lcblas -lf77blas -laztecoo -lepetra -lepetra_test -lepetraext
-lifpack -lml -lteuchos -ltriutils -llapack 
/usr/local/trilinos-
7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o): In function
`Epetra_BLAS::TRMM(char, char, char, char, int, int, double, double const*,
int, double*, int) const':
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:174:
undefined reference to `dtrmm_' 
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::TRMM(char, char, char, char, int, int, float,
float const*, int, float*, int) const':
/usr/local/trilinos-7.0.8 /packages/epetra/src/./Epetra_BLAS.cpp:166:
undefined reference to `strmm_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::SYMM(char, char, int, int, double, double const*,
int, double const*, int, double, double*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:158:
undefined reference to `dsymm_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::SYMM(char, char, int, int, float, float const*,
int, float const*, int, float, float*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:149:
undefined reference to `ssymm_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::GEMM(char, char, int, int, int, double, double
const*, int, double const*, int, double, double*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:141:
undefined reference to `dgemm_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::GEMM(char, char, int, int, int, float, float
const*, int, float const*, int, float, float*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:132:
undefined reference to `sgemm_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::GEMV(char, int, int, double, double const*, int,
double const*, double, double*, int, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:123:
undefined reference to `dgemv_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::GEMV(char, int, int, float, float const*, int,
float const*, float, float*, int, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:116:
undefined reference to `sgemv_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::AXPY(int, double, double const*, double*, int,
int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:109:
undefined reference to `daxpy_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::AXPY(int, float, float const*, float*, int, int)
const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:105:
undefined reference to `saxpy_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::IAMAX(int, double const*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:101:
undefined reference to `idamax_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::IAMAX(int, float const*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:97:
undefined reference to `isamax_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::COPY(int, double const*, double*, int, int)
const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:92:
undefined reference to `dcopy_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::COPY(int, float const*, float*, int, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:87:
undefined reference to `scopy_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::SCAL(int, double, double*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:82:
undefined reference to `dscal_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::SCAL(int, float, float*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:77:
undefined reference to `sscal_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::NRM2(int, double const*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:73:
undefined reference to `dnrm2_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::NRM2(int, float const*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:69:
undefined reference to `snrm2_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::DOT(int, double const*, double const*, int, int)
const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:65:
undefined reference to `ddot_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::DOT(int, float const*, float const*, int, int)
const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:61:
undefined reference to `sdot_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::ASUM(int, double const*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:57:
undefined reference to `dasum_'
/usr/local/trilinos-7.0.8/linux-serial-atlas/lib/libepetra.a(Epetra_BLAS.o):
In function `Epetra_BLAS::ASUM(int, float const*, int) const': 
/usr/local/trilinos-7.0.8/packages/epetra/src/./Epetra_BLAS.cpp:53:
undefined reference to `sasum_'
collect2: ld returned 1 exit status
make[1]: ** [dist/Debug/GNU-Linux-x86/teste-trilinos-atlas] Erro 1
make[1]: Saindo do diretório
`/root/Desktop/testes-trilinos/teste-trilinos-atlas' 
make: ** [.build-impl] Erro 2

Build failed. Exit value 2.

Did you have any idea about it?

thanks.
Virginia.

2007/6/5, James Willenbring < jmwille at sandia.gov <mailto:jmwille at sandia.gov>
>: 

Virginia ,

 

When I have built Trilinos using ATLAS I have needed to specify other
libraries along with the main atlas library.  For example:

 

--with-blas="-L/atlas/build/dir/lib/ -lcblas –lf77blas –latlas"

 

You will also need a separate LAPACK library because not all of the
necessary LAPACK routines are available in ATLAS.  If between Russell's
suggestion and my suggestion you don't get it working, you can send me
<build_tree>/packages/teuchos/config.log and I can take a look at that file
if you would like.

 

Jim 

 

  _____  

From: trilinos-users-bounces at software.sandia.gov
[mailto:trilinos-users-bounces at software.sandia.gov] On Behalf Of Russell
Hooper
Sent: Tuesday, June 05, 2007 10:30 AM
To: Virginia Costa; trilinos-users at software.sandia.gov 
Subject: Re: [Trilinos-Users] Trilinos with ATLAS

 


Virginia,

It appears that the version of blas you are trying to link against was built
with a different fortran underscore specification (likely double) than what
is expected by Trilinos (single underscore suffix).

You should be able to tell your fortran compiler to not use double
underscores in the suffix of fortran routines, eg. with the gcc compilers,
you can specify this via,

--with-fflags="-fno-second-underscore"

It may be that this flag or an equivalent for your compiler is set and
should not be, in which case you will need to allow double underscore
suffixes to link against your available blas/lapack libraries.

Hope this helps,

Russell



On 6/5/07 9:03 AM, "Virginia Costa" <virscosta at gmail.com> wrote:

Hi,

Have anybody already used Trilinos with ATLAS?

I´m trying, but, when I configure trilinos with the options
--with-blas=/atlas/build/dir/lib/libatlas.a, it returns

checking for dgemm_ in /usr/local/ATLAS/atlas-build/lib/libatlas.a... no 
configure: error: Cannot find blas library, specify a path using
--with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)
configure: error: /bin/sh './configure' failed for packages/teuchos

Can somebody help me, please?

Thanks.

Virginia.

  _____  

_______________________________________________
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov
http://software.sandia.gov/mailman/listinfo/trilinos-users

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://software.sandia.gov/mailman/private/trilinos-users/attachments/20070605/7faba983/attachment-0001.html


More information about the Trilinos-Users mailing list