You are here

Mpi serialization works but not detected by mpi executables

4 posts / 0 new
Last post
Mpi serialization works but not detected by mpi executables

I tried it with rna_denovo.mpi.linuxgccrelease and it threw an error after searching for database.


core.init: (0) Checking for fconfig files in pwd and ./rosetta/flags
core.init: (0) Rosetta version: rosetta.binary.linux.release-231 r231 2019.35+release.767c1ea 767c1ea25c572fbc078db45ad65dddb507240ad3 2019-08-30T12:04:30.133343
core.init: (0) command: rna_denovo.mpi.linuxgccrelease @flags
basic.random.init_random_generator: (0) 'RNG device' seed mode, using '/dev/urandom', seed=1660569085 seed_offset=0 real_seed=1660569085
basic.random.init_random_generator: (0) RandomGenerator:init: Normal mode, seed=1660569085 RG_type=mt19937
core.init: (0) Resolved executable path: /home/harald/Documents/rosetta_bin_linux_3.11_bundle/rosetta_bin_linux_2019.35.60890_bundle/main/source/build/src/release/linux/4.15/64/x86/gcc/7/mpi/rna_denovo.mpi.linuxgccrelease
core.init: (0) Looking for database based on location of executable: /home/harald/Documents/rosetta_bin_linux_3.11_bundle/rosetta_bin_linux_2019.35.60890_bundle/main/database/
protocols.jd3.JobDistributorFactory: (0) [ ERROR ] JD3 cannot be used with MPI but without serialization; you must add "extras=mpi,serlization" to your ./ build command


But when i run rna_denovo.mpiserializaition.linuxgccrelase everything works fine, my job finishes optimally. Problem is some applications do not work with mpiserialization and i need mpi executables to work.

what could be the issue?

Post Situation: 
Wed, 2020-02-19 01:14

The mpiserialization executable that you said works fine IS MPI.  It just ALSO has serialization (which is used to send data between nodes).  Just use that.

Wed, 2020-02-19 06:35

So wait, remodel in mpi serialization works by employing all but 1 core to do one iteration at a time, compared to rna_denovo where there are x-1 cores and iterations being executed? I tought serialization was just sending multiple iterations to multiple cores while mpi was the former.

Wed, 2020-02-19 14:32

Serialization is used for JD3, which hasn't been published yet.  rna_denovo uses this Job Distribution machinery to better divide work (which used to be a set of python scripts).  For JD3 apps, there are a few nodes that are doing writing of PDBs vs instructions coming from the head node to write pdbs for JD2.  It's much, much more complicated than standard JD2 apps like remodel.  Different cores can run different sets of protocols, wheras for JD2  - every core essentially runs on the same thing, but perhaps a different input PDB.

However, you should be able to run the serialization build with JD2 apps.  The serialization build just has extra lines compiled for serializable objects.  IE - objects that are able to be transmitted from one node to another. 

Wed, 2020-02-19 14:50