ESMCI / mpi-serial

A one-processor version of MPI
BSD 3-Clause "New" or "Revised" License
3 stars 9 forks source link

mpi-serial copy_data2 bug #14

Open jedwards4b opened 4 years ago

jedwards4b commented 4 years ago

I'm getting a memory issue when on MacOS

 thread MCSclimate/MCT#1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x520)
    frame #0: 0x000000010040a8a5 cesm.exe`copy_data2(source=0x00007ffeefbfdc08, src_count=1, src_type=<unavailable>, dest=0x0000000102f9ec1c, dest_count=1, dest_type=1275069467) at copy.c:33:22 [opt]
   30   int copy_data2(void *source, int src_count, MPI_Datatype src_type,
   31                  void *dest, int dest_count, MPI_Datatype dest_type)
   32   {
-> 33     Datatype src_ptr = *(Datatype*) mpi_handle_to_datatype(src_type);
   34     Datatype dest_ptr = *(Datatype*) mpi_handle_to_datatype(dest_type);
   35   
   36     return Pcopy_data2(source, src_count, src_ptr, dest, dest_count, dest_ptr);
jedwards4b commented 4 years ago
frame MCSclimate/MCT#1: 0x00000001004080af cesm.exe`MPI_Allreduce(sendbuf=<unavailable>, recvbuf=<unavailable>, count=<unavailable>, datatype=<unavailable>, op=<unavailable>, comm=<unavailable>) at collective.c:337:3 [opt]
   334    if (sendbuf==MPI_IN_PLACE)
   335      return(MPI_SUCCESS);
   336  
-> 337    copy_data2(sendbuf, count, datatype, recvbuf, count, datatype);
   338  //  memcpy(recvbuf,sendbuf,count * datatype);
   339  
   340    return(MPI_SUCCESS);
(lldb) up
frame MCSclimate/MCT#2: 0x0000000100408083 cesm.exe`mpi_allreduce_(sendbuf=<unavailable>, recvbuf=<unavailable>, count=<unavailable>, datatype=<unavailable>, op=<unavailable>, comm=<unavailable>, ierror=0x00007ffeefbfdc0c) at collective.c:325:11 [opt]
   322                            ( void *sendbuf, void *recvbuf, int *count,
   323                  int *datatype, int *op, int *comm, int *ierror)
   324  {
-> 325    *ierror=MPI_Allreduce(sendbuf, recvbuf, *count,
   326              *datatype, *op, *comm);
   327  
   328  }
(lldb) up
frame MCSclimate/MCT#3: 0x00000001002e28fb cesm.exe`__piolib_mod_MOD_pio_initdecomp_dof_i8 at piolib_mod.F90:1131
   1128        do i=1,ndims
   1129           iosize=iosize*iodesc%count(i)
   1130        end do
-> 1131        call mpi_allreduce(iosize, iodesc%maxiobuflen, 1, mpi_integer, mpi_max, iosystem%io_comm, ierr)
   1132        call checkmpireturn('mpi_allreduce in initdecomp',ierr)
   1133 
   1134        lenblocks=1