You cannot cascade mpirun cmds like that - the child mpirun picks up envars that causes it to break. You'd have to either use comm_spawn to start the child job, or do a fork/exec where you can set the environment to be some pristine set of values.
> On Jul 11, 2020, at 1:12 PM, John Retterer via users > <users@lists.open-mpi.org> wrote: > > From the rank #0 process, I wish to start another mpi job (to create some > data to be used by the parent job). > I'm trying to do this with the command > > istat= system( "/...path.../mpirun -np 2 /...path.../prog2 args >file.log > 2>&1" ) > > within the code executed by the rank #0 process, where ...path... is the > path to the executables, prog2 is the daughter program, and args its > arguments. > > On return, the status istat = 256, and, although the log file file.log has > been created, it is empty. > > DOes anybody have an idea why this doesn't work?