On Tue, Mar 13, 2012 at 4:39 PM, Xiangdong Liang <span dir="ltr">&lt;<a href="mailto:xdliang@gmail.com">xdliang@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello everyone,<br>
<br>
Can someone provide me advice on using OpenMP in PETSc? I am solving a<br>
problem like this:<br>
<br>
int main()<br>
{<br>
  vec vsum;<br>
<br>
  for(i=0; i&lt; N; i++)<br>
    {<br>
      vec vi;<br>
      fcomputev(i, vi);<br>
      VecAXPY(vsum, 1.0, vi); // vsum +=vi;<br>
    }<br>
<br>
}<br>
<br>
Can I use OpenMP &quot;omp parallel for&quot; to do the loop in parallel? For<br>
example, suppose I have 8 processes.   It would be nice if each petsc<br>
subrountine fcomputev uses 2 processes while 4 different i&#39;s are<br>
computed in parallel (since different i&#39;s are independent).<br></blockquote><div><br></div><div>PETSc is not threadsafe. This is trivial to do in MPI where the comm for eah</div><div>Vec is a group of 2 procs.</div><div>
<br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Any helps or hints on this would be appreciated.<br>
<br>
Best,<br>
Xiangdong<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>