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. >
