Hi Joesph,

I don’t have a solution to your issue, but I’ve found that the valgrind mpi 
wrapper is necessary to eliminate many of the false positives that the 
suppressions file can’t.

http://valgrind.org/docs/manual/mc-manual.html#mc-manual.mpiwrap.gettingstarted

You should LD_PRELOAD the libmpiwrap from your installation. If it’s not there 
then you can rebuild valgrind with CC=mpicc to have it built.

Hope this helps move you towards a solution.

Luke

> On Nov 14, 2016, at 5:49 AM, Joseph Schuchart <schuch...@hlrs.de> wrote:
> 
> All,
> 
> I am investigating an MPI application using Valgrind and see a load of memory 
> leaks reported in MPI-related code. Please find the full log attached. Some 
> observations/questions:
> 
> 1) According to the information available at 
> https://www.open-mpi.org/faq/?category=debugging#valgrind_clean the 
> suppression file should help get a clean run of an MPI application despite 
> several buffers not being free'd by MPI_Finalize. Is this assumption still 
> valid? If so, maybe the suppression file needs an update as I still see 
> reports on leaked memory allocated in MPI_Init?
> 
> 2) There seem to be several invalid reads and writes in the 
> opal_shmem_segment_* functions. Are they significant or can we regard them as 
> false positives?
> 
> 3) The code example attached allocates memory using MPI_Win_allocate_shared 
> and frees it using MPI_Win_free. However, Valgrind reports some memory to be 
> leaking, e.g.:
> 
> ==4020== 16 bytes in 1 blocks are definitely lost in loss record 21 of 234
> ==4020==    at 0x4C2DB8F: malloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==4020==    by 0xCFDCD47: component_select (osc_sm_component.c:277)
> ==4020==    by 0x4F39FC3: ompi_osc_base_select (osc_base_init.c:73)
> ==4020==    by 0x4E945DC: ompi_win_allocate_shared (win.c:272)
> ==4020==    by 0x4EF6576: PMPI_Win_allocate_shared (pwin_allocate_shared.c:80)
> ==4020==    by 0x400E96: main (mpi_dynamic_win_free.c:48)
> 
> Can someone please confirm that we the way the shared window memory is free'd 
> is actually correct? I noticed that the amount of memory that is reported to 
> be leaking scales with the number of windows that are allocated and free'd. 
> In our case this happens in a set of unit tests that all allocate their own 
> shared memory windows and thus the amount of leaked memory piles up quite a 
> bit.
> 
> I build the code using GCC 5.4.0 using OpenMPI 2.0.1 and ran it on a single 
> node. How to reproduce:
> 
> $ mpicc -Wall -ggdb mpi_dynamic_win_free.c -o mpi_dynamic_win_free
> 
> $ mpirun -n 2 valgrind --leak-check=full 
> --suppressions=$HOME/opt/openmpi-2.0.1/share/openmpi/openmpi-valgrind.supp 
> ./mpi_dynamic_win_free
> 
> Best regards,
> Joseph
> 
> -- 
> Dipl.-Inf. Joseph Schuchart
> High Performance Computing Center Stuttgart (HLRS)
> Nobelstr. 19
> D-70569 Stuttgart
> 
> Tel.: +49(0)711-68565890
> Fax: +49(0)711-6856832
> E-Mail: schuch...@hlrs.de
> 
> <valgrind_mpi.log><mpi_dynamic_win_free.c>_______________________________________________
> users mailing list
> users@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to