You are here

Rosetta 3.4 Install w/ MPI

16 posts / 0 new
Last post
Rosetta 3.4 Install w/ MPI
#1

I hate to add another thread about compiling Rosetta with MPI, but after searching through this forum, and trying a number of potential solutions, I am still stuck.

When I execute the command:

$ ./scons.py bin mode=release extras=mpi

I get the following error:

mpiCC -o build/src/release/linux/2.6/64/x86/gcc/4.1/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 -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/4.1 -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
sh: mpiCC: command not found
scons: *** [build/src/release/linux/2.6/64/x86/gcc/4.1/mpi/apps/public/AbinitioRelax.o] Error 127
scons: building terminated because of errors.

I understand the error is due to not being able to locate the MPI compiler.

mpiCC does not exist on this cluster; however, the following does:

/share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicc
/share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicxx

I feel the solution to this problem is something as simple as telling scons to use mpicc instead of mpiCC.

I have tried a few potential solutions, including:

1) Adding the following to the tools/build/site.settings file

"overrides" : {
"cxx": "/share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicxx",
"cc": "/share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicc",
},

2) creating a symbolic link (mpiCC -> /share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicc) in my home directory, and adding that to my path.

Any guidence on resolving this issue would be greatly appreaciated.

Thanks!
--Eddie

Post Situation: 
Tue, 2012-09-04 10:46
edpryor

The first thing I notice is that you are NOT using cxx=icc, but you appear to be using intel's mpicc. Try scons bin mode=release extras=mpi cxx=icc first thing.

You are 100% trying the right things, but you didn't specifically mention the solution I suggest first - have you tried copying the program/library path stuff out of site.settings.killdevil or site.settings.topsail into your own site.settings? Adding mpiCC to your $PATH won't work without $PATH being in scons's view (which is what the line

"program_path" : os.environ["PATH"].split(":"),

does).

Tue, 2012-09-04 11:06
smlewis

Thanks for the quick reply. I think I was able to get it compiling with your suggestions; hopefully, no errors creep up, although quite a few warnings are being thrown.

For posterity, here is a copy of my site.settings file that seems to be working:

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": "/share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicxx",
"cc": "/share/apps/mpich2/mpich2-1.3.2p1/intel/bin/mpicc",
},
"removes" : {
},
},
}

Finally, running: $./scons.py bin mode=release extras=mpi cxx=icc

Thanks, again.

Tue, 2012-09-04 15:36
edpryor

Hi folks!

I do not want to open a new thread, since I think I have a similar problem.
I cannot compile Rosetta through 'scons bin mode=release extras=mpi -j 8'
Error:
build/src/release/linux/3.2/32/x86/gcc/4.6/mpi/libprotocols.3.so: undefined reference to `MPI_Op_commutative'
build/src/release/linux/3.2/32/x86/gcc/4.6/mpi/libprotocols.3.so: undefined reference to `MPI_Reduce_local'
collect2: ld returned 1 exit status
scons: *** [build/src/release/linux/3.2/32/x86/gcc/4.6/mpi/InterfaceAnalyzer.mpi.linuxgccrelease] Error 1
build/src/release/linux/3.2/32/x86/gcc/4.6/mpi/apps/public/interface_design/anchored_design/AnchorFinder.o: In function `MPI::Op::Is_commutative() const':
AnchorFinder.cc:(.text._ZNK3MPI2Op14Is_commutativeEv[MPI::Op::Is_commutative() const]+0x16): undefined reference to `MPI_Op_commutative'
build/src/release/linux/3.2/32/x86/gcc/4.6/mpi/apps/public/interface_design/anchored_design/AnchorFinder.o: In function `MPI::Op::Reduce_local(void const*, void*, int, MPI::Datatype const&) const':
AnchorFinder.cc:(.text._ZNK3MPI2Op12Reduce_localEPKvPviRKNS_8DatatypeE[MPI::Op::Reduce_local(void const*, void*, int, MPI::Datatype const&) const]+0x33): undefined reference to `MPI_Reduce_local'
collect2: ld returned 1 exit status
scons: *** [build/src/release/linux/3.2/32/x86/gcc/4.6/mpi/AnchorFinder.mpi.linuxgccrelease] Error 1
scons: building terminated because of errors.

Any ideas?
My system is Ubuntu 12.04 32bit on AMD FX8150 processor/16 GB Ram

Thank you very much for your help!
dati

Tue, 2012-11-06 09:15
dati

These are linker errors, implying that the MPI libraries are either not present, or not where scons thinks they should be...what MPI libraries did you install?

Tue, 2012-11-06 09:26
smlewis

I just installed open mpi-1.6.3 right from their website. I put it to /usr/local and installed it from there by their discribtion of How to build Open MPI.

Tue, 2012-11-06 09:45
dati

Why did you trying building it yourself instead of using the ubuntu libraries? Here's what I find for OpenMPI on a system in my lab where it works:

> apt-cache search openmpi
libopenmpi-dbg - high performance message passing library -- debug library
libopenmpi-dev - high performance message passing library -- header files
libopenmpi1.3 - high performance message passing library -- shared library
libopenmpi1.5-2 - high performance message passing library -- shared library
libopenmpi1.5-dbg - high performance message passing library -- debug library
libopenmpi1.5-dev - high performance message passing library -- header files
openmpi-bin - high performance message passing library -- binaries
openmpi-checkpoint - high performance message passing library -- checkpoint support
openmpi-common - high performance message passing library -- common files
openmpi-doc - high performance message passing library -- man pages
openmpi1.5-bin - high performance message passing library -- binaries
openmpi1.5-checkpoint - high performance message passing library -- checkpoint support
openmpi1.5-common - high performance message passing library -- common files
openmpi1.5-doc - high performance message passing library -- man pages

You can probably run "sudo apt-get install libopenmpi-dev" and "sudo apt-get install openmpi-bin" and it will likely work out.

Wed, 2012-11-07 06:45
smlewis

Thank you! I'm not an expert on such things. Did not know, that ubuntu comes along with mpi libaries! I will try, if it works. Thank you again!

Wed, 2012-11-07 07:57
dati

Ubuntu has libraries for everything - I've never had to manually install _anything_, you can just use the ubuntu repository.

Wed, 2012-11-07 08:04
smlewis

It worked. Haven't tried to run rosetta with mpi so far. But we'll see! Thank you again!

Wed, 2012-11-07 08:50
dati

Hi,

I have the exact error as edpryor did at first.
Then I tried his suggestion to modify the site.settings and command "scons bin mode=release extras=mpi cxx=icc"

Then, I got the following error message:

File "/working004b/chem_eng3/yingfeic/rosetta/rosetta_source/tools/build/setup_platforms.py", line 83, in select_compiler_version
(actual, compiler)
KeyError: "Unknown version number 12.0 for compiler 'icc'"

Is there anything I need to modify?

Please let me know if you need other information to solve this.

Thanks,
Rita

Mon, 2013-07-08 11:41
ritacc18

Hi Rita,

Are you using Rosetta 3.4 or 3.5?

Can you check the file rosetta_source/tools/build/basic.settings line ~880?

Do you see this block:

"icc, 12.0, linux" : {
"override" : {
"version" : [ "12","0" ],
},
},

If not,
I believe you should be able to add it and it should compile ok. This block should be in 3.5, if not, it will be in the next release version (it is in developers trunk).

-Jared

P.S the forum eats the tabs of the python block, so if you need to add it, follow the tabs like the other blocks in the file.

Mon, 2013-07-08 12:28
jadolfbr

Hi Jared,

I'm using rosetta 3.4.
I was able to add this block in the basic.settings
But I still got the same error, which I have no idea why it still appears.

KeyError: "Unknown version number 12.0 for compiler 'icc'"
scons: done reading SConscript files.

Any suggestions?

Thanks,
Rita

Tue, 2013-07-09 08:52
ritacc18

Hi Rita,

I have forwarded this to someone who may be able to help more than I can (smlewis). In the meantime, you could try 3.5.

Tue, 2013-07-09 17:49
jadolfbr

Thank you Jared.
Since I've already installed the regular Rosetta 3.4 on the machine, I hope there will be a work around towards this.

Thanks again,
Rita

Wed, 2013-07-10 09:34
ritacc18

I have experienced the same sort of error as Rita.

I am trying to compile rosetta-3.5 with mpich2 and icc 12.1

./scons.py bin mode=release extras=mpi cxx=icc

KeyError: "Unknown version number 12.1 for compiler 'icc'"

I edited my tools/build/basic.settings to include icc 12.1

eg:

},
"icc, 12.1, linux" : {
"override" : {
"version" : [ "12","1" ],
},
},

and after editing basic.settings I still see the same error.

Is there something else I can try?

Starr

Thu, 2013-07-11 13:11
hazards