title: MPI Segmentation fault in MPI_Isend()
body: <p>I'm new to MPI programming! I tried to measure the point-to-point communication bandwidth
   beetween to processors for practical. But now I get a Segmentation Fault! I don't understand why this is happen. I also tried valgrind on ubuntu, however no idea. So maybe someone can help me :D</p>
  
  <blockquote>
    <p>thanks for the fast response, but this doesn't change the problem :(
    I just updated the error!</p>
  </blockquote>
  
  <p>Here the source code</p>
  
  <pre><code>#include "mpi.h"
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  int main(int argc, char *argv[]){
  
   int myrank, size;
   MPI_Init(&amp;argc, &amp;argv);
   MPI_Comm_rank(MPI_COMM_WORLD, &amp;myrank);
   MPI_Comm_size(MPI_COMM_WORLD, &amp;size);
  
   int *arraySend = (int *)malloc(25000*sizeof(int));
   int *arrayRecv = (int *)malloc(25000*sizeof(int));
   double startTime = 0.0, endTime = 0.0;
   MPI_Status status,statusSend, statusRecv;
   MPI_Request requestSend, requestRecv;
  
   if(size != 2){
     if(myrank == 0){
         printf("only two processors!\n");
         MPI_Finalize();  
         return 0;
      }
   }
  
   if(myrank == 0){
       startTime = MPI_Wtime();
       MPI_Send(&amp;arraySend, 25000, MPI_INT, 1, 0,MPI_COMM_WORLD);
   }else{
       MPI_Recv(&amp;arrayRecv, 25000, MPI_INT, 0, 0, MPI_COMM_WORLD, &amp;status);
   } 
  
   if(myrank == 0){
     endTime = MPI_Wtime();
     printf("100k Bytes blocking: %f Mb/s\n", 0.1/(endTime-startTime));
     startTime = MPI_Wtime();
     MPI_Isend(&amp;arraySend, 25000, MPI_INT, 1, 0, MPI_COMM_WORLD, &amp;requestSend);
     MPI_Wait(&amp;requestSend, &amp;statusSend);
    }else{
     MPI_Irecv(&amp;arrayRecv,25000,MPI_INT,0,0,MPI_COMM_WORLD, &amp;requestRecv);
     MPI_Wait(&amp;requestRecv, &amp;statusRecv);
    }
  
   if(myrank == 0){
      endTime = MPI_Wtime();
      printf("100k Bytes non-blocking: %f Mb/s\n", 0.1/(endTime-startTime));
   }
   free(arraySend);
   free(arrayRecv);
   MPI_Finalize();
   return 0;
  }
  </code></pre>
  
  <p>and here the error updated!</p>
  
  <pre><code>$ mpirun -np 2 nr2
  [P90:05046] *** Process received signal ***
  [P90:05046] Signal: Segmentation fault (11)
  [P90:05046] Signal code: Address not mapped (1)
  [P90:05046] Failing at address: 0x7fff54fd8000
  [P90:05046] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10060) [0x7f8474777060]
  [P90:05046] [ 1] /lib/x86_64-linux-gnu/libc.so.6(+0x131b99) [0x7f84744f7b99]
  [P90:05046] [ 2] /usr/lib/libmpi.so.0(ompi_convertor_pack+0x14d) [0x7f84749c75dd]
  [P90:05046] [ 3] /usr/lib/openmpi/lib/openmpi/mca_btl_sm.so(+0x1de8) [0x7f846fe14de8]
  [P90:05046] [ 4] /usr/lib/openmpi/lib/openmpi/mca_pml_ob1.so(+0xd97e) [0x7f8470c6c97e]
  [P90:05046] [ 5] /usr/lib/openmpi/lib/openmpi/mca_pml_ob1.so(+0x8900) [0x7f8470c67900]
  [P90:05046] [ 6] /usr/lib/openmpi/lib/openmpi/mca_btl_sm.so(+0x4188) [0x7f846fe17188]
  [P90:05046] [ 7] /usr/lib/libopen-pal.so.0(opal_progress+0x5b) [0x7f8473f330db]
  [P90:05046] [ 8] /usr/lib/openmpi/lib/openmpi/mca_pml_ob1.so(+0x6fd5) [0x7f8470c65fd5]
  [P90:05046] [ 9] /usr/lib/libmpi.so.0(PMPI_Send+0x195) [0x7f84749e1805]
  [P90:05046] [10] nr2(main+0xe1) [0x400c55]
  [P90:05046] [11] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f84743e730d]
  [P90:05046] [12] nr2() [0x400ab9]
  [P90:05046] *** End of error message ***
  --------------------------------------------------------------------------
  mpirun noticed that process rank 0 with PID 5046 on node P90 exited on signal 11 
  (Segmentation fault).
  </code></pre>