<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Dear Santiago,</p>
    <p>Thanks a lot for your reply.<br>
    </p>
    <p>I was hoping it would be a bit easier than this to get openMP
      working.. but I'll give it a shot.. if by any chance it works,
      I'll get back to you :)</p>
    <p>Warm wishes, Shubhangi<br>
    </p>
    <div class="moz-cite-prefix">On 25.06.20 18:38, Santiago Ospina
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALyMesU-Dq=TQ2Je_0c2ZrQ7whsT7gGb_cwUiXvGLEOzVMuH+A@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi Shubhangi,</div>
        <div><br>
        </div>
        <div>as far as I can tell, the main PDELab is not able to do so.
          I know that this was tried out in the EXADUNE project but I
          don't know the outcome of that implementation. Perhaps someone
          else may comment on that one. But in general, you need that
          each thread owns a copy of a LocalFunctionSpace, an LFSCache,
          an assembler_engine and an entity (this may need some
          modifications on these classes). Once that is done, most of
          the assembler loop can be done in parallel. Binds, loads and
          assemble methods should be OK with multiple threads. The
          problematic part comes on the unbind. There is when the local
          container from assembler_engine are scattered to the global
          container. Since contiguous entities are likely to have common
          DOFs or be very near in memory in the global container, data
          races may appear. Thinkthreads most of that is possible with
          the C++ thread, but I might be wrong.</div>
        <div><br>
        </div>
        <div>Please let us know if you get that working ;-)<br>
        </div>
        <div><br>
        </div>
        <div>Best,</div>
        <div>Santiago Ospina<br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Jun 25, 2020 at 2:10
          PM Shubhangi Gupta <<a href="mailto:sgupta@geomar.de"
            target="_blank" moz-do-not-send="true">sgupta@geomar.de</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear
          all,<br>
          <br>
          The matrix assembly is the main bottleneck for my numerical <br>
          implementation in pdelab. So, I am thinking of parallelizing
          this part <br>
          using openMP.. I understand that dune-pdelab is already
          capable of doing <br>
          this...but I don't know where to start and I have only very
          superficial <br>
          understanding of openMP.<br>
          <br>
          Is there an example that I can look at? Or can someone give me
          a quick <br>
          outline of how to proceed?<br>
          <br>
          Thanks, and warm wishes, Shubhangi<br>
          <br>
          <br>
          _______________________________________________<br>
          dune-pdelab mailing list<br>
          <a href="mailto:dune-pdelab@lists.dune-project.org"
            target="_blank" moz-do-not-send="true">dune-pdelab@lists.dune-project.org</a><br>
          <a
            href="https://lists.dune-project.org/mailman/listinfo/dune-pdelab"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.dune-project.org/mailman/listinfo/dune-pdelab</a></blockquote>
      </div>
    </blockquote>
  </body>
</html>