Re: [petsc-dev] OpenMP Support
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 <[email protected]> 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.
participants (1)
-
Gerard Gorman