Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] problem with MPI_Iexscan
From: Siegmar Gross (Siegmar.Gross_at_[hidden])
Date: 2013-07-08 13:27:10


Hi,

today I installed openmpi-1.9a1r28730 and tried to test MPI_Iexscan()
on my machine (Solaris 10 sparc, Sun C 5.12). Unfortunately my program
breaks.

tyr xxx 105 mpicc iexscan.c
tyr xxx 106 mpiexec -np 2 iexscan
[tyr:21094] *** An error occurred in MPI_Iexscan
[tyr:21094] *** reported by process [4097966081,0]
[tyr:21094] *** on communicator MPI_COMM_WORLD
[tyr:21094] *** MPI_ERR_INTERN: internal error
[tyr:21094] *** MPI_ERRORS_ARE_FATAL (processes in this communicator
  will now abort,
[tyr:21094] *** and potentially your MPI job)
[tyr.informatik.hs-fulda.de:21092] 1 more process has sent help
  message help-mpi-errors.txt / mpi_errors_are_fatal
[tyr.informatik.hs-fulda.de:21092] Set MCA parameter
  "orte_base_help_aggregate" to 0 to see all help / error messages
tyr xxx 107
tyr xxx 107 ompi_info |grep "MPI: "
                Open MPI: 1.9a1r28730
tyr xxx 108

That's the program I used for my test.

#include <stdio.h>
#include "mpi.h"

#define MAXLEN 10000
 
int main(int argc, char *argv[])
{
   int out[MAXLEN], in[MAXLEN], i, j, k;
   int myself, tasks;
   MPI_Request request;
 
   MPI_Init(&argc, &argv);
   MPI_Comm_rank(MPI_COMM_WORLD, &myself);
   MPI_Comm_size(MPI_COMM_WORLD, &tasks);

   for(j = 1; j <= MAXLEN; j *= 10) {
      for(i = 0; i < j; i++) {
        out[i] = i;
      }
      MPI_Iexscan(out, in, j, MPI_INT, MPI_SUM, MPI_COMM_WORLD, &request);
      MPI_Wait(&request, MPI_STATUS_IGNORE);
      
      if (myself != 0)
        for(k = 0; k < j; k++) {
          if(in[k] != k * myself) {
            fprintf (stderr, "bad answer (%d) at index %d of %d "
                     "(should be %d)\n", in[k], k, j, k*(myself));
            break;
          }
        }
   }
   MPI_Barrier(MPI_COMM_WORLD);
   MPI_Finalize();
   return 0;
}

Do you have any ideas what's going wrong? Is the internal MPI error
a real internal error or is something wrong with my program, which
results in an internal error? Thank you very much for any help in
advance.

Kind regards

Siegmar