<div dir="ltr">Hi Ken,<div><br></div><div>Thanks for your reply.</div><div>Here are attached two files with the arg "-v". <i>BatchOutput.txt </i>has the output which is giving the error message when the code is executed with the command <i>sbatch</i>, while the file <i>InteractiveOutput.txt</i> is the one executed interactively in the node and work as expected. Both of them has been compiled and executed with mpich 3.4.1.</div><div><br></div><div>Thanks, Iker</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El vie, 26 feb 2021 a las 16:15, Raffenetti, Kenneth J. (<<a href="mailto:raffenet@mcs.anl.gov">raffenet@mcs.anl.gov</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
Could you add "-v" to your mpiexec command and provide the output? The "host" info key is handled by the process manager when executing the spawn command.<br>
<br>
Ken<br>
<br>
On 2/24/21, 11:55 AM, "Iker Martín Álvarez via discuss" <<a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a>> wrote:<br>
<br>
    Hi,<br>
    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 sbatch. In both cases with the key "host", as when I do not use the key, it works just fine.<br>
<br>
    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.<br>
<br>
    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.<br>
<br>
    Here is the code I have been using:<br>
<br>
    int main(int argc, char ** argv) {<br>
<br>
      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>
    }<br>
<br>
<br>
    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:<br>
    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<br>
<br>
<br>
    Also, the error code for MPICH 3.3.2:<br>
<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>
    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<br>
<br>
    Thanks, Iker<br>
<br>
</blockquote></div>