<div dir="ltr">Hi,<div><br></div><div>I have been working around the MPI_Comm_spawn function with the key "host" along a value in a system with the SLURM resource manager (slurm-wlm 17.11.2). The function works as expected, but when I send to execute the code with the sbatch command, an error arises. This does not happen when I execute directly the code in the same machine SLURM decided to execute it when it was sended with <i>sbatch</i>. In both cases with the key "host", as when I do not use the key, it works just fine.</div><div><br></div><div>The same code has been tested with MPICH 3.3.2 and 3.4.1, which gives different errors. Also, I tried it with other implementations (OpenMPI and Intel MPI), which works as expected creating the processes in the indicated host.</div><div><br></div><div>I would like to create processes by MPI_Comm_spawn in an assigned host, so if there are other key values for the Info argument, I could try them, but I have not found any looking through MPICH documentation.</div><div><br></div><div>Here is the code I have been using:</div><div><br></div><div><font face="arial narrow, sans-serif">int main(int argc, char ** argv) {<br></font></div><div><font face="arial narrow, sans-serif">  int myId, numP;<br>  MPI_Info info;<br>  MPI_Comm comm;<br><br>  MPI_Init(&argc, &argv);<br>  MPI_Comm_rank(MPI_COMM_WORLD, &myId);<br>  MPI_Comm_size(MPI_COMM_WORLD, &numP);  <br><br>  MPI_Comm comm_par;<br>  MPI_Comm_get_parent(&comm_par);<br>  if(comm_par != MPI_COMM_NULL ) {<br>    if(myId == ROOT) {<br>      printf("SONS\n"); fflush(stdout);<br>    }<br>  } else {<br>    if(myId == ROOT) {<br>      printf("FATHERS\n"); fflush(stdout);<br>    }<br>    MPI_Info_create(&info);<br>    MPI_Info_set(info, "host", "n00");<br>    MPI_Comm_spawn(argv[0], MPI_ARGV_NULL, numP, info, ROOT, MPI_COMM_WORLD, &comm, MPI_ERRCODES_IGNORE);<br>  }<br>  MPI_Finalize();<br>  return 0;<br>}</font><br></div><div><font face="arial narrow, sans-serif"><br></font></div><div><font face="arial narrow, sans-serif">For MPICH 3.4.1 there is sometimes no error and the code stops working at MPI_Comm_spawn function, other times this error is shown:</font></div><div>Abort(1615120) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init: Internal MPI error!, error stack:<br>MPIR_Init_thread(152)...:<br>MPID_Init(562)..........:<br>MPIDU_Init_shm_init(195):<br>Init_shm_barrier(94)....: Internal MPI error!  barrier not initialized<font face="arial narrow, sans-serif"><br></font></div><div><font face="arial narrow, sans-serif"><br></font></div><div><font face="arial, sans-serif">Also, the error code for MPICH 3.3.2:</font></div><div><font face="arial, sans-serif"><br></font></div><div>Assertion failed in file src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c at line 683: our_pg_rank < pg->size<br>Assertion failed in file src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c at line 683: our_pg_rank < pg->size<br>Assertion failed in file src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c at line 683: our_pg_rank < pg->size<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>libbacktrace: no debug info in ELF executable<br>internal ABORT - process 0</div><div><br></div><div>Thanks, Iker</div></div>