I'm trying to run OpenMPI in OSv container (https://github.com/cloudius-systems/osv). It's a single process, single address space VM, without fork, exec, openpty function. With some butchering of OSv and OpenMPI I was able to compile orted.so, and run it inside OSv via mpirun (mpirun is on remote machine). The orted.so loads mpi_hello.so and executes its main() in new pthread.
Which than aborts due to communication failure/timeout - as reported by mpirun. I assume that that mpi_hello.so should connect back to mpirun, and report 'something' about itself. What could that be? Plus, where could I extend that timeout period - once mpirun closes, output from opal_output is not shown any more. Is there some highlevel overview about OpenMPI, how are modules connected, what is 'startup' sequence etc? ompi_info lists compiled modules, but I still don't know how are they connected. So basically - I lack knowledge of OpenMPI internals, and would highly appreciate links for "rookie" developers. Say https://github.com/open-mpi/ompi/wiki/IOFDesign tells me what IOF is, and a bit about its working. So, if someone has any list of such links - could it be shared?