Hi, 
    I meet a weird problem. I am "salloc mpirun" to start a mpi task on Slurm 
cluster. And then, if I cancel the job by running "scancel <jobid>" and after 
waiting about 30 seconds, there prints "srun: error: HK-IDC1-10-1-72-101: task 
0: Killed". But I find that it only kill the first process that mpi creates and 
doesn't kill the other processes including the "mpirun" and "salloc". Then all 
the process are just like been frozen but the status providing by "ps" has show 
that these processes are in status "Rsl". Then I decide to kill one of the rest 
mpi processes to trigger the mpi failure for cleanning up the rest mpi 
processes, I find that is not worked (That should be work since our process are 
always doing ALL_REDUCE.). Then if I send Ctrl-C to (twice) the shell running 
"salloc", i will kill "salloc" and "mpirun" but leave the rest processes that 
mpirun created. So I have to kill them one by one at every node where I just 
running it. However, if I cancel the job by send Ctrl-C at the shell running 
"salloc" at first it do work and clean up all processes.
    Here are the command I run salloc:
    salloc -n12 --ntasks-per-node=4 /usr/local/mvapich2-2.2rc1/bin/mpirun ./aa
    
    The code of aa are following:
    
#include <stdio.h>
#include <unistd.h>
#include <mpi.h>
int main(int argc,char **argv)
{
    int rank,size;
    double in=1.0,out;
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    while (1)
    {
        MPI_Barrier(MPI_COMM_WORLD);
        MPI_Allreduce(&in, &out, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
        printf("Running! %lf\n",out);
        sleep(1);
    }
    MPI_Finalize();
    return 0;
}

      The MPI we using are MVAPICH2-2.2rc1 which is the latest version of 
mvapich.
      The SLURM we using are slurm-15.08.11.tar.bz2 which is also the latest 
version of slurm15

Any one have an idea?

Thanks
Yingdi Guo

Reply via email to