Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: [OMPI users] mpi_group_incl erros
From: maryam moein (maryam_moein2005_at_[hidden])
Date: 2012-08-16 08:07:22


I'm new memeber in this weblog, and I should deliver my assignment as soon as possible, but I have a big problem that I can't solve it. Please help me. In MPI I should divide my group into two groups. But all the time when I want to run a program I got error about mpi_group_incl. This is my error:  [ubuntu:3346] *** An error occurred in MPI_Group_incl [ubuntu:3346] *** on communicator MPI_COMM_WORLD [ubuntu:3346] *** MPI_ERR_RANK: invalid rank [ubuntu:3346] *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort) -------------------------------------------------------------------------- mpiexec has exited due to process rank 0 with PID 3345 on node ubuntu exiting without calling "finalize". This may have caused other processes in the application to be terminated by signals sent by mpiexec (as reported here). I should mention that I run this program with diffrent number of process but I got same errors. In below you can find my c program.  #include <stdio.h> #include "mpi.h" #include <unistd.h> #include <time.h> #include <stdlib.h> #include <string.h> void main(int argc, char *argv[]) {       int Iam, p;       int Neven, Nodd, members[6], even_rank, odd_rank;       MPI_Group group_world, even_group, odd_group; /* Starts MPI processes ... */       MPI_Init(&argc, &argv);                          /* starts MPI */       MPI_Comm_rank(MPI_COMM_WORLD, &Iam);  /* get current process id */       MPI_Comm_size(MPI_COMM_WORLD, &p);    /* get number of processes */       Neven = (p + 1)/2;     /* All processes of MPI_COMM_WORLD are divided */       Nodd = p - Neven;      /* into 2 groups, odd- and even-numbered groups */       members[0] = 2;       members[1] = 0;       members[2] = 4;       MPI_Comm_group(MPI_COMM_WORLD, &group_world);       MPI_Group_incl(group_world, Neven, members, &even_group);       MPI_Group_excl(group_world, Neven, members,  &odd_group);       MPI_Barrier(MPI_COMM_WORLD);       if(Iam == 0) {         printf("MPI_Group_incl/excl Usage Example\n");         printf("\n");         printf("Number of processes is %d\n", p);         printf("Number of odd processes is %d\n", Nodd);         printf("Number of even processes is %d\n", Neven);         printf("\n");         printf("     Iam     even      odd\n");       }       MPI_Barrier(MPI_COMM_WORLD);       MPI_Group_rank(even_group, &even_rank);       MPI_Group_rank( odd_group,  &odd_rank);       printf("%d %d %d\n",Iam, even_rank, odd_rank);       MPI_Finalize();                  /* let MPI finish up ...  */ }