[petsc-users] PetscLayou

Barry Smith bsmith at mcs.anl.gov
Sun May 25 13:03:52 CDT 2014


   Looking at your code and the PETSc source code I see nothing wrong. 

> Source and destination overlap in memcpy(0x1e97e784, 0x1e97e788, 44)
> ==80355==    at 0x4C2CFA0: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==80355==    by 0x85AAB7E: ompi_ddt_copy_content_same_ddt (in /usr/lib/openmpi/lib/libmpi.so.0.0.2)
> ==80355==    by 0x159EE48A: ??? (in /usr/lib/openmpi/lib/openmpi/mca_coll_tuned.so)
> ==80355==    by 0x85B15B2: PMPI_Allgather (in /usr/lib/openmpi/lib/libmpi.so.0.0.2)

   I can only guess an error in the MPI implementation at this point.  Maybe more with the MPI then the compiler? But that is guessing

  Barry


On May 25, 2014, at 12:34 PM, Lukasz Kaczmarczyk <Lukasz.Kaczmarczyk at glasgow.ac.uk> wrote:

> Hello,
> 
> I use PetscLayout to set the ranges for matrix partitioning (petsc-3.4.3), however, for one of the problems, I get from warring from valgrind. This warning is only for particular problem, for other code executions with different input data, valgrind do not shows any errors at that point. 
> 
> Could you tell me if this could lead to segmentation fault, for example for code compiled with Intel compiler? Where is my mistake?
> 
> Kind regards,
> Lukasz
> 
> 533      PetscLayout layout;
> 534      ierr = PetscLayoutCreate(PETSC_COMM_WORLD,&layout); CHKERRQ(ierr);
> 535      ierr = PetscLayoutSetBlockSize(layout,1); CHKERRQ(ierr);
> 536      ierr = PetscLayoutSetSize(layout,nb_dofs_row); CHKERRQ(ierr);
> 537      ierr = PetscLayoutSetUp(layout); CHKERRQ(ierr);
> 538      PetscInt rstart,rend;
> 539      ierr = PetscLayoutGetRange(layout,&rstart,&rend); CHKERRQ
> 
> 
> Partition problem COUPLED_PROBLEM
>        create_Mat: row lower 0 row upper 837
>        create_Mat: row lower 837 row upper 1674
>        create_Mat: row lower 1674 row upper 2511
>        create_Mat: row lower 2511 row upper 3347
>        create_Mat: row lower 3347 row upper 4183
>        create_Mat: row lower 4183 row upper 5019
>        create_Mat: row lower 5019 row upper 5855
>        create_Mat: row lower 5855 row upper 6691
>        create_Mat: row lower 6691 row upper 7527
>        create_Mat: row lower 7527 row upper 8363
>        create_Mat: row lower 8363 row upper 9199
>        create_Mat: row lower 9199 row upper 10035
> ==80351== Source and destination overlap in memcpy(0x1e971f94, 0x1e971fa8, 28)
> ==80351==    at 0x4C2CFA0: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==80351==    by 0x85AAB7E: ompi_ddt_copy_content_same_ddt (in /usr/lib/openmpi/lib/libmpi.so.0.0.2)
> ==80351==    by 0x159EE48A: ??? (in /usr/lib/openmpi/lib/openmpi/mca_coll_tuned.so)
> ==80351==    by 0x85B15B2: PMPI_Allgather (in /usr/lib/openmpi/lib/libmpi.so.0.0.2)
> ==80351==    by 0x565C4C8: PetscLayoutSetUp (pmap.c:158)
> ==80355== Source and destination overlap in memcpy(0x1e97e784, 0x1e97e788, 44)
> ==80355==    at 0x4C2CFA0: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==80355==    by 0x85AAB7E: ompi_ddt_copy_content_same_ddt (in /usr/lib/openmpi/lib/libmpi.so.0.0.2)
> ==80355==    by 0x159EE48A: ??? (in /usr/lib/openmpi/lib/openmpi/mca_coll_tuned.so)
> ==80355==    by 0x85B15B2: PMPI_Allgather (in /usr/lib/openmpi/lib/libmpi.so.0.0.2)
> ==80355==    by 0x565C4C8: PetscLayoutSetUp (pmap.c:158)
> ==80355==    by 0xDEFB18: int MoFEM::FieldCore::create_Mat<MoFEM::Idx_mi_tag>(std::string const&, _p_Mat**, char const*, int**, int**, double**, bool, int) (FieldCore.hpp:537)
> 
> 
> Full code source can be viewed from here,
> https://bitbucket.org/likask/mofem-joseph/src/3185671a406bc3f02336b3886775dff037dbd4fe/mofem_v0.1/do_not_blink/FieldCore.hpp?at=release



More information about the petsc-users mailing list