You are here

Rosetta on CentOS 7 using GCC-5.5

5 posts / 0 new
Last post
Rosetta on CentOS 7 using GCC-5.5
#1

Hello

I am trying to compile rosetta_src_2017.45.59812 using gcc-5.5 on a centos machine.

First of all,

./rosetta_compiler_test.py /home/ertinaz/gcc-install/gcc-5.5.0/bin/g++-5.5

gives

Summary:
Main Tests:             	16 of 16 passed
Optional Tests:         	5 of 6 passed

REGEX:                  	<<<FAILED! (Compiled but did not run.)>>>

First question is which gcc version would pass the entire test?

Additionally, I have multiple versions of gcc in my pc. I am trying to specify full paths for "g++-5.5" and "gcc-5.5".  I think it is done via overriding paths in "tools/build/site.settings" however I cannot manage to do it successfully. Can you help me with that as well?

import os
settings = {
    "site" : {
            "prepends" : {
            "program_path" : os.environ["PATH"].split(":"),
#           "include_path" : os.environ["INCLUDE"].split(":"),
            "library_path" : os.environ["LD_LIBRARY_PATH"].split(":"),
        },
        "appends" : {
        },
        "overrides" : {
            "cxx" : "/home/ertinaz/gcc-install/gcc-5.5.0/bin/g++-5.5",
            "cc"  : "/home/ertinaz/gcc-install/gcc-5.5.0/bin/gcc-5.5",
        },
        "removes" : {
        },
    },
}
./scons.py -j 2 bin mode=release extras=mpi

scons: Reading SConscript files ...
Traceback (most recent call last):
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/SConstruct", line 150, in main
    build = SConscript("tools/build/setup.py")
  File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 614, in __call__
    return method(*args, **kw)
  File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 551, in SConscript
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 256, in _SConscript
    call_stack[-1].globals)
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/setup.py", line 429, in <module>
    build = setup()
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/setup.py", line 420, in setup
    build.settings = setup_build_settings(build.options)
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/setup.py", line 210, in setup_build_settings
    site = Settings.load("site.settings", "settings")
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/settings.py", line 130, in load
    execfile(file, settings)
  File "site.settings", line 27, in <module>
  File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'INCLUDE'
scons: done reading SConscript files.
scons: Building targets ...
scons: *** Do not know how to make File target `bin' (/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/bin).  Stop.
scons: building terminated because of errors.

Ultimately my aim is to install this code on a Blue Gene / Q cluster which requires a cross-compilation with Mpich. Maybe I should open a new thread for that, but is that possible to cross-compile the Rosetta code and if so which gcc version is recommended for that?

Many thanks

Fatih Ertinaz

Category: 
Post Situation: 
Wed, 2018-05-02 14:14
fertinaz

GCC 5.5 should be good enough to pass all the tests. I'm not quite sure why it isn't. The only thing I can think of is that you compiled GCC in a way that it's not automatically using the GCC 5.5 verison of the C++ standard library. (Earlier versions of the C++ standard library will exhibit behavior like that shown.)

That said, there's relatively little in Rosetta which uses the REGEX features. Unless you're doing things with antibodies, you're unlikely to need it.  (That's why the test is in the "Optional" section.)

You're also right that adjusting the site.settings file is what you should do to get a custom compiler working, and what you're doing looks exactly right to me.  I'm a little confused by the error message you're getting, though, as the site.settings file isn't using the "INCLUDE" (that line is commented out.) I'd double check the file to make sure it's what you think it is, and perhaps try removing the INCLUDE line completely, rather than just commenting it out.

 

Wed, 2018-05-02 14:33
rmoretti

Regarding compiling on Blue Gene / Q, here's what someone who has done it recommends:

The simplest thing is to navigate to Rosetta/main/source/cmake/build_staticmpi_bluegene_clang and to run buildme.sh.  Paths in that script might need to be updated for the particular machine.

Note that this uses a different build system (CMake) versus the standard Scons compile.  There's other bluegene directories in that directory which you may or may not want to also look at.

Wed, 2018-05-02 14:38
rmoretti

Hello, thanks for your replies.

I removed gcc-5.5 and tried with gcc-4.8 however it ends up the same.  Also gcc-4.8 test fails at regex as well.

[ertinaz@supernova source]$   ./scons.py -j 2 bin mode=release extras=mpi cxx=gcc cxx_ver=4.8
scons: Reading SConscript files ...
Traceback (most recent call last):
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/SConstruct", line 150, in main
    build = SConscript("tools/build/setup.py")
  File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 614, in __call__
    return method(*args, **kw)
  File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 551, in SConscript
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/python2.7/site-packages/SCons/Script/SConscript.py", line 256, in _SConscript
    call_stack[-1].globals)
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/setup.py", line 429, in <module>
    build = setup()
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/setup.py", line 420, in setup
    build.settings = setup_build_settings(build.options)
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/setup.py", line 210, in setup_build_settings
    site = Settings.load("site.settings", "settings")
  File "/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/tools/build/settings.py", line 130, in load
    execfile(file, settings)
  File "site.settings", line 27, in <module>
  File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'INCLUDE'
scons: done reading SConscript files.
scons: Building targets ...
scons: *** Do not know how to make File target `bin' (/home/ertinaz/Rosetta/rosetta_src_2017.45.59812_bundle/main/source/bin).  Stop.
scons: building terminated because of errors.

 

I am using default version of "tools/build/site.settings" by the way. So I am not overriding anything.

Is there an alternative way of compiling from source code other than scons?

// Fatih

 

 

Tue, 2018-05-15 11:59
fertinaz

This issue ("KeyError: 'INCLUDE'") normally indicates an issue with your site.settings/user.settings file.  I'd recommend checking those files and commenting out (adding a # to the beginning of) the lines which contain INCLUDE.

Fri, 2018-05-18 09:08
rmoretti