[petsc-dev] OpenMP Support

Dave Nystrom dnystrom1 at comcast.net
Wed May 9 23:55:14 CDT 2012


Hi Gerard,

Thanks for the info.  Is there any documentation on how to use the petsc
OpenMP support?  I would be interested in trying it out.

Thanks,

Dave

Gerard Gorman writes:
 > Hi Dave
 > 
 > OpenMP support exists for vec and mat (only AIJ so far). There is a big
 > difference in performance depending on available memory bandwidth and
 > the compiler OpenMP implementation. In application codes (such as
 > Fluidity which is our main target code for this work) there are other
 > significant costs such as matrix assembly. So in general you have to
 > consider how easy it will be to thread to the other computationally
 > expensive sections of your code, otherwise the overall speed-up of your
 > application will be modest.
 > 
 > Cheers
 > Gerard
 >  
 > Dave Nystrom emailed the following on 09/05/12 04:29:
 > > Is the pthreads support further along than the OpenMP support?  I have not
 > > tried the pthreads support yet.  Does either the pthreads support or the
 > > OpenMP support implement the matvec or do they just do vector type
 > > operations?
 > >
 > > Jed Brown writes:
 > >  > On Tue, May 8, 2012 at 9:23 PM, Dave Nystrom <dnystrom1 at comcast.net> wrote:
 > >  > 
 > >  > > I see that petsc-dev now has some OpenMP support.  Would a serial, non-mpi
 > >  > > code that uses petsc-dev be able to gain much performance improvement from
 > >  > > it
 > >  > > now for the case of doing sparse linear solve with cg and jacobi
 > >  > > preconditioning?
 > >  > >
 > >  > 
 > >  > The kernels are being transitioned to use the threadcomm, which enables
 > >  > OpenMP and other threading models.
 > >  > 
 > >  > We anticipate that pthreads will provide the best performance because
 > >  > operations can be less synchronous than with OpenMP (for which a parallel
 > >  >  region implies barrier semantics). But if other parts of an application
 > >  > are using OpenMP, it would be preferable for PETSc to also use OpenMP so
 > >  > that it can share the same thread pool. The same applies to TBB.
 > 



More information about the petsc-dev mailing list