[mpich-discuss] MPIR_Request_complete(232): INTERNAL ERROR: unexpected value in case statement

Thakur, Rajeev thakur at mcs.anl.gov
Thu Jan 15 23:41:28 CST 2015


I would say the program is erroneous. It is calling MPI_Wait concurrently on the same request, i.e., you are completing one operation twice. You can call MPI_Wait concurrently, but with different requests. 

Rajeev

On Jan 15, 2015, at 11:32 PM, Jeff Hammond <jeff.science at gmail.com>
 wrote:

> I am trying to run the following program.  It's obviously a silly
> program but I wrote it to make an argument about the MPI standard.  I
> don't believe it violates the MPI standard, but please let me know if
> I am mistaken.
> 
> smakramu-mobl:MPI jrhammon$ cat wait-race.c
> #include <stdio.h>
> #include <omp.h>
> #include <mpi.h>
> 
> int main(int argc, char * argv[])
> {
>    int provided;
>    MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided);
>    if (provided<MPI_THREAD_MULTIPLE) {
>        printf("inadequate thread support\n");
>        MPI_Finalize();
>    }
> 
>    MPI_Request req;
>    MPI_Ibarrier(MPI_COMM_WORLD, &req);
>    //req = MPI_REQUEST_NULL;
> #pragma omp parallel num_threads(2) shared(req)
>    {
>        MPI_Wait(&req, MPI_STATUS_IGNORE);
>    }
> 
>    printf("test finished\n");
>    MPI_Finalize();
>    return 0;
> }
> 
> I compile the program with MPICH git master and GCC 4.9.2 from about a week ago:
> 
> smakramu-mobl:MPI jrhammon$ mpicc -fopenmp -g -Wall wait-race.c
> 
> smakramu-mobl:MPI jrhammon$ mpichversion
> MPICH Version:    	3.2a2
> MPICH Release date:	unreleased development copy
> MPICH Device:    	ch3:nemesis
> MPICH configure: 	CC=gcc-4.9 CXX=g++-4.9 FC=gfortran-4.9
> F77=gfortran-4.9 --disable-cxx --enable-fortran
> --enable-threads=runtime --enable-g=dbg --with-pm=hydra
> --prefix=/opt/mpich/dev/gcc/default --enable-wrapper-rpath
> --enable-static --enable-shared
> MPICH CC: 	gcc-4.9    -g -O2
> MPICH CXX: 	no   -g
> MPICH F77: 	gfortran-4.9   -g -O2
> MPICH FC: 	gfortran-4.9   -g -O2
> 
> Sometimes the program runs fine:
> 
> smakramu-mobl:MPI jrhammon$ mpiexec -n 2 ./a.out
> test finished
> test finished
> 
> And sometimes it fails like this:
> 
> smakramu-mobl:MPI jrhammon$ mpiexec -n 2 ./a.out
> test finished
> Fatal error in MPI_Wait: Internal MPI error!, error stack:
> MPI_Wait(187).............: MPI_Wait(request=0x7fff5b51ee88, status=0x1) failed
> MPIR_Wait_impl(84)........:
> MPIR_Request_complete(232): INTERNAL ERROR: unexpected value in case
> statement (value=78309520)
> 
> So either my program violates the MPI standard or there's a bug in
> MPICH.  Please let me know which it is.
> 
> Thanks,
> 
> Jeff
> 
> -- 
> Jeff Hammond
> jeff.science at gmail.com
> http://jeffhammond.github.io/
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss

_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list