[petsc-dev] Apparent bug with PGI on Titan with each thread calling a serial LU solve

Barry Smith bsmith at mcs.anl.gov
Thu May 8 18:07:47 CDT 2014


  Yup, doesn’t work in debug mode, this is a documented feature.  Because debug mode has lots more global variable like things.

   Barry

On May 8, 2014, at 3:18 PM, Mark Adams <mfadams at lbl.gov> wrote:

> Barry, the test code works in OPT but in debug mode it gets this error.
> Thanks,
> Mark
> 
> 
> 
> On Wed, May 7, 2014 at 1:02 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
>    Mark,
> 
>    Are you sure the PGI version is built with the correct branch of barry/make-petscoptionsobject-nonglobal ?
> 
>     In that branch line 516 of aoptions.c has         case OPTION_INT:   not a PetscFree
> 
>   Meanwhile in master line 516 has   ierr = PetscFree(PetscOptionsObject.title);CHKERRQ(ierr);
> 
> 
>   Barry
> 
> 
> On May 7, 2014, at 2:47 PM, Mark Adams <mfadams at lbl.gov> wrote:
> 
> > Barry, made the LU solver "thread safe" in that each thread calls a serial solve, for Ed (cc'ed).
> >
> > Ed has a test code (attached) that can be run with 16 threads (aprun -n 1 -d 16) and NUM_OPENMP_THREADS=16.  This code seems to work with Intel compilers but fails with PGI.
> >
> > I've appended a stack trace.  Any ideas?
> >
> > Mark
> > Note, the line numbers are not quite right in tpetsc.F90 but the rest look OK.
> >
> > #11 tpetsc () at /autofs/na3_home1/adams/petsc/src/ksp/ksp/examples/tutorials/tpetsc.F90:144 (at 0x0000000000422afa)
> > #10 matcreateseqaij_ () at /autofs/na3_home1/adams/petsc/src/mat/impls/aij/seq/ftn-custom/zaijf.c:14 (at 0x0000000000474e95)
> > #9 MatCreateSeqAIJ () at /autofs/na3_home1/adams/petsc/src/mat/impls/aij/seq/aij.c:3574 (at 0x000000000053c8b1)
> > #8 MatSetType () at /autofs/na3_home1/adams/petsc/src/mat/interface/matreg.c:71 (at 0x000000000050b292)
> > #7 MatCreate_SeqAIJ () at /autofs/na3_home1/adams/petsc/src/mat/impls/aij/seq/aij.c:4129 (at 0x000000000053f24a)
> > #6 MatCreate_SeqAIJ_Inode () at /autofs/na3_home1/adams/petsc/src/mat/impls/aij/seq/inode2.c:99 (at 0x000000000058b205)
> > #5 PetscOptionsEnd_Private () at /autofs/na3_home1/adams/petsc/src/sys/objects/aoptions.c:516 (at 0x000000000043fc25)
> > #4 PetscFreeAlign () at /autofs/na3_home1/adams/petsc/src/sys/memory/mal.c:72 (at 0x0000000000483f89)
> > #3 free () from /dsl/lib64/libc-2.11.3.so (at 0x00002aaab5bcc4fc)
> > #2 malloc_printerr () from /dsl/lib64/libc-2.11.3.so (at 0x00002aaab5bc7558)
> > #1 __libc_message () from /dsl/lib64/libc-2.11.3.so (at 0x00002aaab5bc1e2f)
> > #0 abort () from /dsl/lib64/libc-2.11.3.so (at 0x00002aaab5b85fb0)
> >
> >
> >
> > <tpetsc.F90>
> 
> 
> <error_in_debug_mode>




More information about the petsc-dev mailing list