[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