You are here

parallelization with mpi

2 posts / 0 new
Last post
parallelization with mpi
#1

Dear colleagues, I try to set parallelization by mpi, using the follow command:  "./scons.py bin mode=release extras=mpi ".

them I got back:

scons: Reading SConscript files ...
Running versioning script ... Release package detected, using rosetta/main/.release.json to acquire version information...
Done. (0.0 seconds)
file ./options.dox being updated
file ./full-options-list.md being updated
Number of option files updated: 2
Total 4580 options.
Finished updating ResidueProperty code
-- no changes needed
Finished updating VariantType code
-- no changes needed
scons: done reading SConscript files.
scons: Building targets ...
mpiCC -o build/src/release/linux/4.15/64/x86/gcc/7/mpi/AbinitioRelax.mpi.linuxgccrelease -Wl,--disable-new-dtags -Wl,-rpath=/home/biomol/rosetta_bin_linux_2021.16.61629_bundle/main/source/build/src/release/linux/4.15/64/x86/gcc/7/mpi -Wl,-rpath=/home/biomol/rosetta_bin_linux_2021.16.61629_bundle/main/source/build/external/release/linux/4.15/64/x86/gcc/7/mpi -Wl,-rpath=\$ORIGIN -Wl,-rpath=\$ORIGIN/../lib build/src/release/linux/4.15/64/x86/gcc/7/mpi/apps/public/AbinitioRelax.o -Lexternal/lib -Lbuild/src/release/linux/4.15/64/x86/gcc/7/mpi -Lsrc -Lbuild/external/release/linux/4.15/64/x86/gcc/7/mpi -Lexternal -L/usr/lib -L/usr/local/lib -ldevel -lprotocols.8 -lprotocols.7 -lprotocols_e.6 -lprotocols_d.6 -lprotocols_c.6 -lprotocols_b.6 -lprotocols_a.6 -lprotocols_h.5 -lprotocols_g.5 -lprotocols_f.5 -lprotocols_e.5 -lprotocols_d.5 -lprotocols_c.5 -lprotocols_b.5 -lprotocols_a.5 -lprotocols.4 -lprotocols.3 -lprotocols_b.2 -lprotocols_a.2 -lprotocols.1 -lcore.6 -lcore.5 -lcore.4 -lcore.3 -lcore.2 -lcore.1 -lbasic -lnumeric -lutility -lObjexxFCL -lz -lzlib -lcppdb -lsqlite3 -lcifparse -lxml2 -lzmq -lrdkit
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols_a.2.so: undefined reference to `ompi_mpi_unsigned'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols.1.so: undefined reference to `ompi_mpi_unsigned_long'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols.3.so: undefined reference to `ompi_mpi_float'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols_b.6.so: undefined reference to `ompi_mpi_char'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols.1.so: undefined reference to `ompi_mpi_group_null'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols_b.6.so: undefined reference to `ompi_mpi_int'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols.1.so: undefined reference to `ompi_mpi_double'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols_b.6.so: undefined reference to `ompi_mpi_comm_world'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols.3.so: undefined reference to `ompi_mpi_op_sum'
build/src/release/linux/4.15/64/x86/gcc/7/mpi/libprotocols.1.so: undefined reference to `ompi_mpi_comm_null'
collect2: error: ld returned 1 exit status
scons: *** [build/src/release/linux/4.15/64/x86/gcc/7/mpi/AbinitioRelax.mpi.linuxgccrelease] Error 1
scons: building terminated because of errors.
 

Please, can someone help me?

Thanks in advance.

Ricardo

Category: 
Post Situation: 
Fri, 2022-03-04 06:01
rtorquato

In order to compile for MPI, you need to have the MPI libraries availible. The errors you're seeing are because the compiler can't find the MPI libraries to link the Rosetta code against.

I would have expected that the mpiCC compiler would have automatically included those libraries in the search path, but it might not. My suggestion would be to figure out where you have the library files (e.g. the .so files) for your MPI installation installed, and then add that path to your LD_LIBRARY_PATH environment variable prior to launching scons. That should (probably) prompt the compiler to include that path in the search path when it's compiling/linking.

The other thing I'd double check is to make sure that the mpiCC compiler that it's using is the proper compiler for the version of MPI you want to use. (There's multiple different implementations of MPI, and some computers have multiple MPI compilers, even though they only use one MPI runtime.)

Fri, 2022-03-04 09:43
rmoretti