Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] MPI_Ireduce_scatter_block hangs
From: Mikhail Kurnosov (mkurnosov_at_[hidden])
Date: 2012-07-12 01:46:17


Hello,

In the case of single process the MPI_Ireduce_scatter_block is
segfaulting with v1.9a1r26786.

But in other cases (commsize >= 2) processes hang in
MPI_Ireduce_scatter_block. The NBC_Progress hangs during rounds processing.

The following example illustrates this problem:

$ cat ireduce_scatter_block_test.c
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>

int main(int argc, char **argv)
{
     MPI_Request req;
     MPI_Status status;
     double *sbuf, *rbuf;
     int commsize, i, j, count = 10;

     MPI_Init(&argc, &argv);
     MPI_Comm_size(MPI_COMM_WORLD, &commsize);

     sbuf = malloc(sizeof(*sbuf) * count * commsize);
     rbuf = malloc(sizeof(*rbuf) * count);
     for (i = 0; i < commsize; i++) {
         for (j = 0; j < count; j++) {
             sbuf[i] = 1.0;
         }
     }

     MPI_Ireduce_scatter_block(sbuf, rbuf, count, MPI_DOUBLE,
                               MPI_SUM, MPI_COMM_WORLD, &req);
     MPI_Wait(&req, &status);

     free(rbuf);
     free(sbuf);
     MPI_Finalize();

     return 0;
}

--
Mikhail Kurnosov
Computer Systems Department
Siberian State University of Telecommunications and Information Sciences
Address: 630102, 86 Kirova str., Novosibirsk, Russia
Email: mkurnosov_at_[hidden]
http://cpct.sibsutis.ru/~mkurnosov