AMBER Archive (2006)Subject: RE: AMBER: Error when installing
From: Ross Walker (ross_at_rosswalker.co.uk)
Date: Tue Feb 14 2006 - 12:30:29 CST
Dear Brian,
> Here is the actual error message from the computer:
>
>
> ../../exe/sander: relocation error: ../../exe/sander:
> undefined symbol: ?0_memcopyA
As a guess I would say that you are using the Intel ifort compiler v9.0 but
with MKL v8.0. Is this true?
If it is then the problem you are seeing is a function of Intel including
two copies of libguide.so with MKL and with the ifort 9.0 compiler. The
wrong one is being used when running the code. To quote Bob Duke:
"
Anyway, here's
the deal. Ifort ships with a libguide.<so,a> in it's libraries. So does
MKL. If you look at the MKL examples, Intel recommends linking against
libguide.<a,so> when you build something that uses MKL, so pmemd does this
and so does sander. Now, this will come in as a .so unless you specify a
full path (since both .a and .so are available), and the version you get
will depend on your rpath setting. We set rpath based on LD_LIBRARY_PATH.
LD_LIBRARY_PATH is set by the various *vars.<csh,sh> scripts for the intel
products that you include in your .login or .profile. So now the copy of
libguide you get depends on the order of intel script invocations in your
.login or .profile. Well, if you have ifort 8 and mkl 8, the libguide's are
equivalent and it does not matter. If you upgrade to ifort 9 (and the last
mkl release is 8, so you can't upgrade), then the libguide's are different,
and if you pick up the libguide.so from the new ifort 9, it apparently is
missing some things (special versions of memset, memcpy that they have
renamed in going from 8-->9) that mkl will attempt to call if libguide is
being included (must be conditional initialization code of some sort, I
would guess). So you either have to get the LD_LIBRARY_PATH "right" (done
such that MKL takes precedence over ifort), or you can specify the full path
(including .a or .so to the libguide under MKL). I ultimately solved the
problem by just leaving out libguide completely, since it apparently is only
needed if you are using OpenMP (something I did not glean from the current
release notes, but somehow stumbled upon googling the net to help figure out
where the heck the problem was coming from). So you guys may want to look
into this for sander; trust me, it can wreck a day. The reason I mentioned
conditional init code above is that you can run this stuff without libguide
entirely, so the stuff that does not resolve is not actually needed, but if
you pick up the "wrong" libguide, some other code attempts to get stuff from
the other libguide.
"
So you could try removing the -lguide from the LOADLIB line of your config.h
file that configure generated in the amber8/src directory for you. Then make
clean and recompile things.
If you are not using ifort v9.0 and MKL then we will need more information
in order to find out what the problem is. (Operating System, CPU, compiler
versions, config.h file etc.)
All the best
Ross
/\
\/
|\oss Walker
| Department of Molecular Biology TPC15 |
| The Scripps Research Institute |
| Tel: +1 858 784 8889 | EMail:- ross_at_rosswalker.co.uk |
| http://www.rosswalker.co.uk | PGP Key available on request |
Note: Electronic Mail is not secure, has no guarantee of delivery, may not
be read every day, and should not be used for urgent or sensitive issues.
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
|