ESMCI / mpi-serial

A one-processor version of MPI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mpi-serial copy_data2 bug

jedwards4b opened this issue · comments

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);
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