You are here

ubuntu 16.04 install

2 posts / 0 new
Last post
ubuntu 16.04 install
#1

Do I assume correctly in a 8 core hyperthreaded machine openmpi runs will be faster than normal static compilations? Has anyone managed to compile  the openmpi version on ubuntu 16.04?   I did have to edit the tools/build/options.settings and add 5.4 otherwise scons wont run.  I assume that the compiler is too new for this? Any work around? Thanks

PS:My tools/build/site.settings is empty

apt-cache policy openmpi-bin
openmpi-bin:
  Installed: 1.10.2-8ubuntu1
  Candidate: 1.10.2-8ubuntu1
  Version table:
 *** 1.10.2-8ubuntu1 500
        500 http://ftp.hosteurope.de/mirror/archive.ubuntu.com xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

 

mpiCC -v
Using built-in specs.
COLLECT_GCC=/usr/bin/g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.9' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)

 

 

rosetta_source > ./scons.py bin mode=release extras=mpi -j 5
scons: Reading SConscript files ...
Running versioning script ... svn: E155007: '/home/frank/pxsoft/64/rosetta/rosetta_source' is not a working copy
Done. (0.0 seconds)
scons: done reading SConscript files.
scons: Building targets ...
mpiCC -o build/src/release/linux/4.13/64/x86/gcc/5.4/mpi/apps/public/AbinitioRelax.o -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -DNDEBUG -DUSEMPI -DEXIT_THROWS_EXCEPTION -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/apps/public/AbinitioRelax.cc
mpiCC -o build/src/release/linux/4.13/64/x86/gcc/5.4/mpi/protocols/init/init.os -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -DUSEMPI -DEXIT_THROWS_EXCEPTION -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/init/init.cc
mpiCC -o build/src/release/linux/4.13/64/x86/gcc/5.4/mpi/protocols/enzdes/AddorRemoveCsts.os -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -DUSEMPI -DEXIT_THROWS_EXCEPTION -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/enzdes/AddorRemoveCsts.cc
mpiCC -o build/src/release/linux/4.13/64/x86/gcc/5.4/mpi/protocols/enzdes/BackboneSampler.os -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -DUSEMPI -DEXIT_THROWS_EXCEPTION -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/enzdes/BackboneSampler.cc
mpiCC -o build/src/release/linux/4.13/64/x86/gcc/5.4/mpi/protocols/enzdes/DesignVsNativeComparison.os -c -isystem external/boost_1_46_1/boost/ -isystem external/boost_1_46_1/boost/ -O3 -ffast-math -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -fPIC -DNDEBUG -DUSEMPI -DEXIT_THROWS_EXCEPTION -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/5.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_46_1 -Iexternal/dbio -I/usr/include -I/usr/local/include src/protocols/enzdes/DesignVsNativeComparison.cc
In file included from external/boost_1_46_1/boost/functional/hash/hash.hpp:535:0,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:33: error: 'template<class T, class A> std::size_t boost::hash_value' conflicts with a previous declaration
     std::size_t hash_value(std::list<T, A> const& v);
                                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:36:17: note: previous declaration 'namespace boost { }::hash_value'
     std::size_t hash_value(std::vector<T, A> const&);
                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:28: error: reference to 'list' is ambiguous
     std::size_t hash_value(std::list<T, A> const& v);
                            ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;
                                               ^
In file included from /usr/include/c++/5/list:63:0,
                 from src/protocols/moves/Mover.hh:41,
                 from src/protocols/ligand_docking/LigandBaseProtocol.hh:29,
                 from src/protocols/enzdes/BackboneSampler.hh:20,
                 from src/protocols/enzdes/BackboneSampler.cc:21:
/usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class _Tp, class _Alloc> class std::__cxx11::list
     class list : protected _List_base<_Tp, _Alloc>
           ^
In file included from external/boost_1_46_1/boost/functional/hash/hash.hpp:535:0,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:39: error: expected primary-expression before ',' token
     std::size_t hash_value(std::list<T, A> const& v);
                                       ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:42: error: expected primary-expression before '>' token
     std::size_t hash_value(std::list<T, A> const& v);
                                          ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:44: error: expected primary-expression before 'const'
     std::size_t hash_value(std::list<T, A> const& v);
                                            ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:52: error: expression list treated as compound expression in initializer [-fpermissive]
     std::size_t hash_value(std::list<T, A> const& v);
                                                    ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:38:17: warning: variable templates only available with -std=c++14 or -std=gnu++14
     std::size_t hash_value(std::list<T, A> const& v);
                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:33: error: 'template<class T, class A> std::size_t boost::hash_value' conflicts with a previous declaration
     std::size_t hash_value(std::list<T, A> const& v)
                                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:51:17: note: previous declaration 'namespace boost { }::hash_value'
     std::size_t hash_value(std::complex<T> const&);
                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:28: error: reference to 'list' is ambiguous
     std::size_t hash_value(std::list<T, A> const& v)
                            ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;
                                               ^
In file included from /usr/include/c++/5/list:63:0,
                 from src/protocols/moves/Mover.hh:41,
                 from src/protocols/ligand_docking/LigandBaseProtocol.hh:29,
                 from src/protocols/enzdes/BackboneSampler.hh:20,
                 from src/protocols/enzdes/BackboneSampler.cc:21:
/usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class _Tp, class _Alloc> class std::__cxx11::list
     class list : protected _List_base<_Tp, _Alloc>
           ^
In file included from external/boost_1_46_1/boost/functional/hash/hash.hpp:535:0,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:39: error: expected primary-expression before ',' token
     std::size_t hash_value(std::list<T, A> const& v)
                                       ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:42: error: expected primary-expression before '>' token
     std::size_t hash_value(std::list<T, A> const& v)
                                          ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:44: error: expected primary-expression before 'const'
     std::size_t hash_value(std::list<T, A> const& v)
                                            ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:52: error: expression list treated as compound expression in initializer [-fpermissive]
     std::size_t hash_value(std::list<T, A> const& v)
                                                    ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:69:17: warning: variable templates only available with -std=c++14 or -std=gnu++14
     std::size_t hash_value(std::list<T, A> const& v)
                 ^
external/boost_1_46_1/boost/functional/hash/extensions.hpp:70:5: error: expected ';' before '{' token
     {
     ^
In file included from src/core/pack/rotamer_set/RotamerSetOperation.hh:19:0,
                 from src/core/pack/rotamer_set/UnboundRotamersOperation.hh:23,
                 from src/protocols/enzdes/BackboneSampler.cc:36:
src/core/pack/rotamer_set/RotamerSetOperation.fwd.hh:34:9: error: reference to 'list' is ambiguous
 typedef std::list< RotamerOperationOP > RotamerOperations;
         ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;
                                               ^
In file included from /usr/include/c++/5/list:63:0,
                 from src/protocols/moves/Mover.hh:41,
                 from src/protocols/ligand_docking/LigandBaseProtocol.hh:29,
                 from src/protocols/enzdes/BackboneSampler.hh:20,
                 from src/protocols/enzdes/BackboneSampler.cc:21:
/usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class _Tp, class _Alloc> class std::__cxx11::list
     class list : protected _List_base<_Tp, _Alloc>
           ^
In file included from src/core/pack/rotamer_set/RotamerSetOperation.hh:19:0,
                 from src/core/pack/rotamer_set/UnboundRotamersOperation.hh:23,
                 from src/protocols/enzdes/BackboneSampler.cc:36:
src/core/pack/rotamer_set/RotamerSetOperation.fwd.hh:39:9: error: reference to 'list' is ambiguous
 typedef std::list< RotamerSetOperationOP > RotSetOperationList;
         ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;
                                               ^
In file included from /usr/include/c++/5/list:63:0,
                 from src/protocols/moves/Mover.hh:41,
                 from src/protocols/ligand_docking/LigandBaseProtocol.hh:29,
                 from src/protocols/enzdes/BackboneSampler.hh:20,
                 from src/protocols/enzdes/BackboneSampler.cc:21:
/usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class _Tp, class _Alloc> class std::__cxx11::list
     class list : protected _List_base<_Tp, _Alloc>
           ^
In file included from src/core/pack/rotamer_set/RotamerSetOperation.hh:19:0,
                 from src/core/pack/rotamer_set/UnboundRotamersOperation.hh:23,
                 from src/protocols/enzdes/BackboneSampler.cc:36:
src/core/pack/rotamer_set/RotamerSetOperation.fwd.hh:40:9: error: reference to 'list' is ambiguous
 typedef std::list< RotamerSetOperationOP >::const_iterator RotSetOperationListIterator;
         ^
In file included from external/boost_1_46_1/boost/functional/hash/extensions.hpp:17:0,
                 from external/boost_1_46_1/boost/functional/hash/hash.hpp:535,
                 from external/boost_1_46_1/boost/functional/hash.hpp:6,
                 from src/core/kinematics/FoldTree.hh:34,
                 from src/protocols/enzdes/BackboneSampler.cc:34:
external/boost_1_46_1/boost/detail/container_fwd.hpp:85:47: note: candidates are: template<class T, class Allocator> class std::list
     template <class T, class Allocator> class list;

 

Category: 
Post Situation: 
Mon, 2018-06-04 08:55
frankfurter1

Generally speaking, MPI builds in Rosetta aren't used for speed. Most applications in Rosetta are "trivially parallel", in that each output structure is generated independently of any other. As such, if you want 10,000 output structures and 10 CPUs availible,  it really doesn't matter if you do 10 single processor serial jobs of 1000 structures each or one 10 CPU job of 10,000 structures. (Actually, due to overhead of coordinating processors, the multiple serial jobs are likely to complete sooner than the MPI job.)

The downside of the multiple-serial job is that you need to manually coordinate input and output such that the multiple processes don't overwrite each other. There's various ways of doing that, from running each in a separate directory, or using commandline options like -out:prefix and -out:suffix. (Another use is if your cluster admins have things set up to require MPI-only runs, though that's relatively infrequent.)

That said, there's certain protocols in Rosetta which do take non-trivial advantage of multiple processors, and if you're running one of those, you'll want to use the MPI compile. But those are the exception, rather than the rule, and it should be clear from the documentation that the protocol requires (or takes great advantage of) MPI.

 

Regarding your compilation error, the issue is that your system-installed Boost is conflicting with the Rosetta-included Boost library.  I don't know which version of Rosetta you're attempting to compile, but I believe that we fixed a bug related to this recently.  What you can do is add the following two lines

                    "isystem /usr/include",
                    "isystem /usr/local/include",

to Rosetta/main/source/tools/build/basic.settings  at approximately line 148 and line 156, after the two "isystem external/dbio/" lines. This should rearrange the header search order such that the Rosetta-provided Boost is used in preference to the system one.

Mon, 2018-06-04 11:26
rmoretti