<div dir="ltr"><div><div><div>Hi<br></div>   There is no the <vtkSMPTools.h>  in the VTK source file.Is this a unused class,and we have to complete it in the future.<br></div>Best Regard<br></div>     Jianwei Li<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-17 21:54 GMT+08:00 jianwei li <span dir="ltr"><<a href="mailto:ljianweiyx@gmail.com" target="_blank">ljianweiyx@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi<br></div>   Now,in my proposal,I want use the implemented paralle methods to implemente the cutting algorithm.But,do you have a guide line for the implemented paralle methods.<br></div>   Thank you<br></div>Cheers<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888">  Jianwei<br></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2015-03-17 11:17 GMT+08:00 David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Jianwei,<div><br></div><div>You wouldn't directly use TBB or Kaapi, because VTK provides an abstract SMP interface.  This doxygen page provides a brief synopsis. The "Functor" described on the page is a function-like object with the signature "void func(vtkIdType first, vtkIdType last)" where vtkIdType is an integer type.  Basically, the SMP For() function is given a (first,last) range that covers the entire data set, and divides it into smaller (first,last) sub-ranges that the Functor operates on from within the worker threads.</div><div><a href="http://www.vtk.org/doc/nightly/html/classvtkSMPTools.html" target="_blank">http://www.vtk.org/doc/nightly/html/classvtkSMPTools.html</a><br></div><div><br></div><div>To complete the picture, you can take a look at the Kaapi back end and the TBB back end:</div><div><a href="https://gitlab.kitware.com/vtk/vtk/blob/master/Common/Core/SMP/Kaapi/vtkSMPToolsInternal.h.in" target="_blank">https://gitlab.kitware.com/vtk/vtk/blob/master/Common/Core/SMP/Kaapi/vtkSMPToolsInternal.h.in</a></div><div><a href="https://gitlab.kitware.com/vtk/vtk/blob/master/Common/Core/SMP/TBB/vtkSMPToolsInternal.h.in" target="_blank">https://gitlab.kitware.com/vtk/vtk/blob/master/Common/Core/SMP/TBB/vtkSMPToolsInternal.h.in</a><br></div><div><br></div><div>So to answer your question, the proposal would be to write (and then evaluate) an efficient parallel VTK algorithm that uses the abstract interface described on the first web page.</div><div><br></div><div>Cheers,</div><div> - David</div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 16, 2015 at 7:56 PM, jianwei li <span dir="ltr"><<a href="mailto:ljianweiyx@gmail.com" target="_blank">ljianweiyx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">So,do I need to write a proposal to implement anyone algorithm using TBB or XKaapi<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-17 3:59 GMT+08:00 Berk Geveci <span dir="ltr"><<a href="mailto:berk.geveci@kitware.com" target="_blank">berk.geveci@kitware.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Maybe a brief Wiki page describing the overall volume splitting and static thread assignment would be good. We can put a link from the project page. Beyond that, when/if we pick a student for the project and Google funds it, we can elaborate.<span><font color="#888888"><div><br></div><div>-berk</div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 16, 2015 at 3:17 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Mar 16, 2015 at 12:52 PM, Berk Geveci <span dir="ltr"><<a href="mailto:berk.geveci@kitware.com" target="_blank">berk.geveci@kitware.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>David: Is there a reference describing the VTK threaded image algorithm infrastructure or do we just point to the code?</div></div></blockquote><div><br></div></span><div>There's no reference for vtkThreadedImageAlgorithm that I'm aware of, though I can write something up on the wiki.   Even though the code itself isn't very complicated, it would be hard to follow for anyone who isn't familiar with a) the streaming pipeline and b) the vtkMultiThreader.</div><span><font color="#888888"><div><br></div><div> - David</div></font></span></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>