Hi,

i tested on a RedHat 6 like linux server and could not observe any
memory leak.

BTW, are you running 32 or 64 bits cygwin ? and what is your configure
command line ?

Thanks,

Gilles

On 2014/10/27 18:26, Marco Atzeri wrote:
> On 10/27/2014 8:30 AM, maxinator333 wrote:
>> Hello,
>>
>> I noticed this weird behavior, because after a certain time of more than
>> one minute the transfer rates of MPI_Send and MPI_Recv dropped by a
>> factor of 100+. By chance I saw, that my program did allocate more and
>> more memory. I have the following minimal working example:
>>
>>     #include <cstdlib>
>>     #include <mpi.h>
>>
>>     const uint32_t MSG_LENGTH = 256;
>>
>>     int main(int argc, char* argv[]) {
>>          MPI_Init(NULL, NULL);
>>          int rank;
>>          MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>>
>>          volatile char * msg  = (char*) malloc( sizeof(char) *
>> MSG_LENGTH );
>>
>>          for (uint64_t i = 0; i < 1e9; i++) {
>>              if ( rank == 1 ) {
>>                  MPI_Recv( const_cast<char*>(msg), MSG_LENGTH, MPI_CHAR,
>>                            rank-1, 0, MPI_COMM_WORLD,
>> MPI_STATUS_IGNORE);
>>                  MPI_Send( const_cast<char*>(msg), MSG_LENGTH, MPI_CHAR,
>>                            rank-1, 0, MPI_COMM_WORLD);
>>              } else if ( rank == 0 ) {
>>                  MPI_Send( const_cast<char*>(msg), MSG_LENGTH, MPI_CHAR,
>>                            rank+1, 0, MPI_COMM_WORLD);
>>                  MPI_Recv( const_cast<char*>(msg), MSG_LENGTH, MPI_CHAR,
>>                            rank+1, 0, MPI_COMM_WORLD,
>> MPI_STATUS_IGNORE);
>>              }
>>              MPI_Barrier( MPI_COMM_WORLD );
>>              for (uint32_t k = 0; k < MSG_LENGTH; k++)
>>                  msg[k]++;
>>          }
>>
>>          MPI_Finalize();
>>          return 0;
>>     }
>>
>>
>> I run this with mpirun -n 2 ./pingpong_memleak.exe
>>
>> The program does nothing more than send a message from rank 0 to rank 1,
>> then from rank 1 to rank 0 and so on in standard blocking mode, not even
>> asynchronous.
>>
>> Running the program will allocate roughly 30mb/s (Windows Task Manager)
>> until it stops at around 1.313.180kb. This is when the transfer rates
>> (not being measured in above snippet) drop significantly to maybe a
>> second per send instead of roughly 1µs.
>>
>> I use Cygwin with Windows 7 and 16Gb RAM. I haven't tested this minimal
>> working example on other setups.
>
> Can someone test on other platforms and confirm me that is a cygwin
> specific issue ?
>
> Regards
> Marco
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2014/10/25602.php

Reply via email to