[mpich-discuss] Memory leak comparing communicators

VandeVondele Joost joost.vandevondele at mat.ethz.ch
Thu May 1 09:02:58 CDT 2014


Hi Antonio,

I finally reproduced this in a small program. The culprit actually seems to be MPI_Group_translate_ranks, but the leak shows up with a trace to MPI_Comm_compare:

Direct leak of 3072 byte(s) in 96 object(s) allocated from:
    #0 0x7fdab2e213a8 in __interceptor_malloc ../../../../gcc/libsanitizer/lsan/lsan_interceptors.cc:66
    #1 0x7fdab3efaf6b in MPIR_Group_create /data/vjoost/mpich-3.1/src/mpi/group/grouputil.c:77
    #2 0x7fdab3fc8314 in MPIR_Comm_group_impl /data/vjoost/mpich-3.1/src/mpi/comm/comm_group.c:44
    #3 0x7fdab3fc40d3 in PMPI_Comm_compare /data/vjoost/mpich-3.1/src/mpi/comm/comm_compare.c:122
    #4 0x4009de in main /data/vjoost/mpich-3.1/debug/2d.c:23

> cat 2d.c
#include <stdio.h> 
#include <mpi.h>

main(int argc, char **argv)  // needs 2 ranks //
{ 
   MPI_Comm comm_cart, dup_comm_world;
   int result,reorder; 
   int dim[2], period[2], rin[2], rout[2];
   int i,j,k;
   int g1,g2;

   MPI_Init (&argc, &argv); 

   for(i=0;i<100;i++)
   {

      MPI_Comm_dup( MPI_COMM_WORLD, &dup_comm_world);
      dim[0]=2; dim[1]=1;
      reorder=0;
      period[0]=1; period[1]=1;
      rin[0]=0; rin[1]=1;
      MPI_Cart_create(dup_comm_world, 2, dim, period, reorder, &comm_cart);
      MPI_Comm_compare(dup_comm_world, comm_cart, &result );
      MPI_Comm_group(dup_comm_world,&g1);
      MPI_Comm_group(comm_cart,&g2);
      MPI_Group_translate_ranks(g1, 2, rin, g2, rout);
      MPI_Comm_free(&comm_cart);
      MPI_Comm_free(&dup_comm_world);

   }

   MPI_Finalize(); 

}

Thanks,

Joost




________________________________________
From: discuss-bounces at mpich.org [discuss-bounces at mpich.org] on behalf of "Antonio J. Peña" [apenya at mcs.anl.gov]
Sent: Monday, April 28, 2014 6:26 PM
To: discuss at mpich.org
Subject: Re: [mpich-discuss] Memory leak comparing communicators

Hi Joost,

Can you share the smallest fragment of code with which we can reproduce
this?

   Antonio


On 04/28/2014 11:25 AM, VandeVondele Joost wrote:
> Hi,
>
> using mpich 3.1 I notice that my application leaks memory. Compiling it with '-O1 -g -fno-omit-frame-pointer -fsanitize=leak' using gcc 4.9 it appears the sources is comparing communicators, for example:
>
> [0] Direct leak of 38400 byte(s) in 600 object(s) allocated from:
> [0]     #0 0x7f84298d53a8 in __interceptor_malloc ../../../../gcc/libsanitizer/lsan/lsan_interceptors.cc:66
> [0]     #1 0x7f842aabaf6b in MPIR_Group_create /data/vjoost/mpich-3.1/src/mpi/group/grouputil.c:77
> [0]     #2 0x7f842ab88314 in MPIR_Comm_group_impl /data/vjoost/mpich-3.1/src/mpi/comm/comm_group.c:44
> [0]     #3 0x7f842ab840d3 in PMPI_Comm_compare /data/vjoost/mpich-3.1/src/mpi/comm/comm_compare.c:122
> [0]     #4 0x7f842aac8e84 in pmpi_comm_compare_ /data/vjoost/mpich-3.1/src/binding/f77/comm_comparef.c:267
> [0]     #5 0x1bfd447 in __message_passing_MOD_mp_comm_compare /data/vjoost/clean/cp2k/cp2k/src/common/message_passing.F:1084
>
> I'm not seeing other leaks, so is guess something particular is going on here. Any suggestions on a possible fix ?
>
> Thanks,
>
> Joost
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss


--
Antonio J. Peña
Postdoctoral Appointee
Mathematics and Computer Science Division
Argonne National Laboratory
9700 South Cass Avenue, Bldg. 240, Of. 3148
Argonne, IL 60439-4847
apenya at mcs.anl.gov
www.mcs.anl.gov/~apenya

_______________________________________________
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