AMBER Archive (2009)

Subject: Re: [AMBER] Compiling AmberTools 1.2 with intel compilers for Mac Osx in 64 bits

From: Alan (
Date: Thu Jul 30 2009 - 08:39:03 CDT

Hi David W. and List,

On Wed, Jul 29, 2009 at 17:21, David Watson <> wrote:

> Until Snow Leopard comes out, and perhaps even then, you will need to
> compile and link in 32-bit mode for library compatibility.
> Make sure that you source the appropriate scripts in
> /opt/intel/Compiler/11.1/0.58/bin in your ~/.bash_profile.
> You also need to source
> /Library/Frameworks/Intel_MKL.framework/Versions/Current/tools/environment/

I tested with 64 and 32 bits. I get all set by doing:

source /opt/intel/Compiler/11.1/058/bin/ ia32 # or intel64 is automatically sourced by script above

For ambertools to test with MKL I have to set:

export MKL_HOME=/opt/intel/Compiler/11.1/058/Frameworks/mkl/lib/32


export MKL_HOME=/opt/intel/Compiler/11.1/058/Frameworks/mkl/lib/em64t

Starting always with fresh uncompressed ambertools folder.

You should definitely see the following to determine which link line you
> need to use in the FLIBS variable in config.h:
> I found it so useful I bookmarked it!

Excellent link, thank you very much. Based on it, in configure_at for
flibs_mkl I have to have:

(32 bits)
flibs_mkl="-L\$(MKL_HOME) \$(MKL_HOME)/libmkl_solver_sequential.a
-lmkl_intel -lmkl_sequential -lmkl_core -lpthread"


(64 bits)
flibs_mkl="-L\$(MKL_HOME) \$(MKL_HOME)/libmkl_solver_ilp64_sequential.a
-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"


> I was able to get it to work with gcc and MKL, but not icc and MKL.
> Perhaps you will have better luck.

I didn't try with gcc and MKL so far. That said, both 32 and 64 bits
compilation with "configure_at icc" worked with MKL, however doing "make -f
Makefile_at test" I had some surprises:

1) With 32 bits and MKL, almost everything worked fine, even the FAILURES
(when I compared with my ambertools gcc without MKL and 32 bits) excepted
for '1rrb_vac_mwcovarmat_evecs.dat.dif' in 'ptraj_matrix'. I got the
absolute values identical to except for
the sign where with MKL they were inverted (like a matrix multiplied by -1),

< 0.00237 -0.00485 0.00133 0.00259 -0.00563 0.00178
 0.00236 (save)
> -0.00237 0.00485 -0.00133 -0.00259 0.00563 -0.00178
-0.00236 (mine)

Is it OK?

The compilation with 32 bits with gcc and without MKL has not such a diff.

If compiled with icc and NO mkl I got no such a diff either.

CONCLUSION 1: Intel MKL libs 32 bits has a strange effect in
ptraj_matrix: 1rrb_vac_mwcovarmat_evecs.dat

1) With 64 bits, icc, with or without MKL nab failed:
make -f Makefile_at test
( cd nab; make test )
Running test to make dna duplex:

/bin/sh: line 1: 80769 Segmentation fault ./duplex <
make[1]: *** [duplex_test] Error 139
make: *** [] Error 2

For ptraj_matrix:

Without MKL: it works perfectly.

With MKL: it failed
cd ptraj_matrix && ./Run.matrix

ptraj: analyze fluctuation matrices
Bus error
  ./Run.matrix: Program error

CONCLUSION 2: Intel MKL libs 64 bits doesn't work.

>> NOTE2:
>> I didn't find more documentation about './configure_at -h' for options
>> '-mpi' or '-openmp'. It would enable some programmes in ambertools to use
>> multi-cores? Which programmes could take advantage of these options?
Any comments about NOTE2 above?


Alan Wilter S. da Silva, D.Sc. - CCPN Research Associate
Department of Biochemistry, University of Cambridge.
80 Tennis Court Road, Cambridge CB2 1GA, UK.
AMBER mailing list