Re: [AMBER] Trouble installing Amber 18

From: Scott Brozell <sbrozell.iqb.rutgers.edu>
Date: Wed, 18 Sep 2019 19:48:00 +0000

Hi,

0.
The simplest solution to cpptraj build issues is to use a recent gnu
compiler. Here are some known to work gnu/7.3.0, gnu/8.1.0, gnu/9.1.0.


1.
As Dan indicated an issue with intel compilers is their behind
the scenes use of gnu tools. Use -v to see what's under the hood:

icc -v
icc version 15.0.3 (gcc version 4.4.7 compatibility)

A common gotcha on computers with multiple compilers is having a new
intel compiler use an old gnu tool set. Here's some background:
===
Intel compilers use the GNU tools on the cluster: header files, libraries, and linker. The details o f Intel and GNU compatibility and interoperability can be controlled in several ways. On our clusters the default mechanism of control is based on modules. The most noticeable aspect of interoperability is that some parts of the C++11 and C++14 standards are available by default in various versions of the Intel compilers; others require you to load an extra module.
...
An alternative way to control compatibility and interoperability is with Intel compiler options; see t
he "GNU gcc Interoperability" section of the Intel compiler man pages for details.
===


2.
When using older Intel compilers, one generally has to pick GNU
compatibility in the same time frame as that intel compiler. So for
intel 15.0.3, gcc 4.4.7 is too old to build cpptraj, but gcc 6.3.0
seems to be too new. I have access to some old compilers, so maybe I
can be of use to Dan, but I'd be interested to know of info on how many
users really hit this wall ?


3.
Intel 15 is so old that i no longer routinely test with it, but i
did try it for this thread. Only cpptraj, memembed, parmed, and
xparmed were missing from amber/bin. But other python tools,
eg pytraj, also had build failures.

On the other hand most things work:

Finished serial test suite for Amber 18 at Tue Sep 17 20:55:27 EDT 2019.

make[2]: Leaving directory `/tmp/amber/test'
185 file comparisons passed
1 file comparisons failed (0 ignored)
0 tests experienced errors

Summary of AmberTools serial tests:

1384 file comparisons passed
15 file comparisons failed (1 ignored)
9 tests experienced errors

scott

On Wed, Sep 18, 2019 at 11:22:15AM -0400, Daniel Roe wrote:
> Hi Rob (and everyone else having issues compiling the
> helpme_standalone part of cpptraj).
>
> The problem here is probably that your GNU backend is too old and not
> fully C++11 compliant. It's a bit confusing, but Intel compilers use a
> large part of the GNU infrastructure (see
> https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsoftware.intel.com%2Fen-us%2Fcpp-compiler-developer-guide-and-reference-gcc-compatibility-and-interoperability&amp;data=02%7C01%7Csbrozell%40iqb.rutgers.edu%7Cdcdc91ed74684dc05ca008d73c4c1c1c%7Cb92d2b234d35447093ff69aca6632ffe%7C1%7C1%7C637044169901079705&amp;sdata=vca8IZ9DuaCI%2B%2FLXuDvfqsBpYyQgpCvsvJfLyrI0wLc%3D&amp;reserved=0).
> I'm actually having trouble finding versions older than 4.8.5 to test
> with so I'm uncertain, but I think the oldest version of GNU that is
> fully C++11 compliant is 4.8.1 (see
> https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fprojects%2Fcxx-status.html%23cxx11&amp;data=02%7C01%7Csbrozell%40iqb.rutgers.edu%7Cdcdc91ed74684dc05ca008d73c4c1c1c%7Cb92d2b234d35447093ff69aca6632ffe%7C1%7C1%7C637044169901079705&amp;sdata=BDoROCWREvqWDIzpmmFPo99JOcEzYluI33%2FdEtDT2cs%3D&amp;reserved=0). The check in
> cpptraj configure only checks a few C++11 features, not the GNU
> backend (like it probably should) so it thinks that C++11 support is
> fully there when it's actually not.
>
> So, if you want to get things working 100% you should upgrade your GNU
> backend. If that's not possible or not something you want to do, you
> can either disable the cpptraj build in the
> $AMBERHOME/AmberTools/src/Makefile, or edit
> $AMBERHOME/AmberTools/src/configure2 and add '-noc++11' to CPPTRAJOPTS
> (down around line 3391), e.g.
>
> CPPTRAJOPTS="-noc++11"
>
> (This should probably be added to Amber's configure as well).
>
> Hope this helps,
>
> -Dan
>
> On Wed, Sep 18, 2019 at 9:44 AM Groner, Rob <rug262.psu.edu> wrote:
> >
> >
> > I'm attempting to install in RHEL6. I've followed the directions, but perhaps I've missed something.
> >
> > I'm using:
> > icc v16.0.3 20160415
> > impi 5.1.3
> > mkl 11.3.3
> > tbb 4.4.4
> >
> >
> > $: AMBERHOME=/rpmbuild/BUILD/amber18/amber18 ./configure -intelmpi intel
> > $: . amber.sh
> > $: AMBERHOME=/rpmbuild/BUILD/amber18/amber18 make
> >
> >
> > This is the error I get after "make":
> >
> > ====================================================================
> > CXX Ewald_ParticleMesh.cpp
> > helpme_standalone.h(2133): error: more than one instance of overloaded function "std::to_string" matches the argument list:
> > function "std::to_string(long long)"
> > function "std::to_string(unsigned long long)"
> > function "std::to_string(long double)"
> > argument types are: (int)
> > msg += std::to_string(derivativeLevel + 2);
> > ^
> > detected during:
> > instantiation of "void helpme::BSpline<Real>::update(short, Real, short, short) [with Real=double]" at line 2142
> > instantiation of "helpme::BSpline<Real>::BSpline(short, Real, short, short) [with Real=double]" at line 2279
> > instantiation of "helpme::SplineCacheEntry<Real>::SplineCacheEntry(int, int) [with Real=double]" at line 111 of "/usr/include/c++/4.4.7/ext/new_allocator.h"
> > instantiation of "void __gnu_cxx::new_allocator<_Tp>::construct(__gnu_cxx::new_allocator<_Tp>::pointer, _Args &&...) [with _Tp=helpme::SplineCacheEntry<double
> > >, _Args=<int &, int &>]" at line 96 of "/usr/include/c++/4.4.7/bits/vector.tcc"
> > instantiation of "void std::vector<_Tp, _Alloc>::emplace_back(_Args &&...) [with _Tp=helpme::SplineCacheEntry<double>, _Alloc=std::allocator<helpme::SplineCac
> > heEntry<double>>, _Args=<int &, int &>]" at line 2532
> > instantiation of "void helpme::PMEInstance<Real>::filterAtomsAndBuildSplineCache(int, const helpme::PMEInstance<Real>::RealMat &) [with Real=double]" at line
> > 4205
> > instantiation of "Real helpme::PMEInstance<Real>::computeERec(int, const helpme::PMEInstance<Real>::RealMat &, const helpme::PMEInstance<Real>::RealMat &) [wi
> > th Real=double]" at line 191 of "Ewald_ParticleMesh.cpp"
> >
> > helpme_standalone.h(2447): error: class "std::vector<std::pair<short, short>, std::allocator<std::pair<short, short>>>" has no member "shrink_to_fit"
> > splineIterator.shrink_to_fit();
> > ^
> > detected during:
> > instantiation of "void helpme::PMEInstance<Real>::common_init(int, Real, int, int, int, int, Real, int) [with Real=double]" at line 4429
> > instantiation of "void helpme::PMEInstance<Real>::setup(int, Real, int, int, int, int, Real, int) [with Real=double]" at line 179 of "Ewald_ParticleMesh.cpp"
> >
> > helpme_standalone.h(2451): error: class "std::vector<std::vector<std::pair<short, short>, std::allocator<std::pair<short, short>>>, std::allocator<std::vector<std::pair<s
> > hort, short>, std::allocator<std::pair<short, short>>>>>" has no member "shrink_to_fit"
> > gridIterator.shrink_to_fit();
> > ^
> > detected during:
> > instantiation of "void helpme::PMEInstance<Real>::common_init(int, Real, int, int, int, int, Real, int) [with Real=double]" at line 4429
> > instantiation of "void helpme::PMEInstance<Real>::setup(int, Real, int, int, int, int, Real, int) [with Real=double]" at line 179 of "Ewald_ParticleMesh.cpp"
> >
> > compilation aborted for Ewald_ParticleMesh.cpp (code 2)
> >
> >
> > ==============================================================================

_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Wed Sep 18 2019 - 13:00:02 PDT
Custom Search