<div dir="ltr">No problem. I don't think that we could think this more carefully :-) This work started in 2013. We were contemplating it for a while before then. Since then, we have discussed this in multiple venues, had discussion in the ARB, published multiple papers & reports, had a Google Summer of Code project, used it to improve existing filters and write new ones. Furthermore, VTK-m has been pushing things forward more aggressively so we have a very good idea the extreme end of what needs to be done for good performance.<div><br></div><div>If we want VTK to be relevant 5-10 years from now, we can't be chained to legacy ways of doing things for much longer. So I plan to push aggressively for change including C++ 11 adoption at the end of this year and some sort of path to C++ 17 after that. Adoption of VTK-m. Adoption of frameworks like DIY (<a href="https://github.com/diatomic/diy2">https://github.com/diatomic/diy2</a>). Modern OpenGL implementation (check) etc etc.</div><div><br></div><div>In terms of licensing, I  read a lot of stuff on the runtime exception as it applies to libstdc++ etc. I have no concerns about this path. By the way, libstdc++ is not as different as you think. It has a full STL implementation, which is almost entirely embedded in one's code through template instantiation. So without the exception, all binaries compiled with the GNU C++ compiler would be under GPL. And it is possible to link against libstdc++ statically and hence distribute the whole thing as part of the binary. Something we have done. We have also included libstdc++ in binary distributions in the past.</div><div><br></div><div>Best,</div><div>-berk</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 10, 2016 at 10:55 AM, Steve Pieper <span dir="ltr"><<a href="mailto:pieper@isomics.com" target="_blank">pieper@isomics.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">Hi Berk -<div><br></div><div>All I asked is that you think carefully.  Thanks for the info.<span class="HOEnZb"><font color="#888888"><div><br></div><div>-Steve</div></font></span></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 10, 2016 at 10:46 AM, Berk Geveci <span dir="ltr"><<a href="mailto:berk.geveci@kitware.com" target="_blank">berk.geveci@kitware.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>Hi Steve,</div><div><br></div>* The default path will be OpenMP.<div>* If your compiler does not support OpenMP, you will need TBB.</div><div>* If you don't like the performance of OpenMP, you will need TBB.</div><div><br></div><div>Hopefully, in 1-2 years all compilers will support OpenMP 3.1 or greater so this will be a moot point. We don't plan on removing the multi-threader path tomorrow. Currently, VS supports OpenMP 2, which is totally lame. So that's fishy. I am confident that Clang/LLVM will have the necessary OpenMP support before we remove the vtkMultiThreader implementation. So VS users may need an Intel compiler or use TBB unless MS improves its OpenMP support in a couple years.</div><div><br></div><div>Given the direction multi/many core is going, low-level thread management in VTK is a thing of the past. On an Intel KNL processor, soon to be available commercially, good performance will require > 200 threads + 16x2 wide vector processing. We can't sit on legacy parallel implementation to properly utilize these processors.</div><div><br></div><div>Also, please stop the lawyer talk and the nitpicking about the runtime exception. People have been shipping commercial products that utilize libraries with this license for decades without any issues. Furthermore, Intel's intent is clear - they want to enable the sale of their processors - and this is the way they decided to enable it. It is entirely illogical to think that they will then pursue legal action and scare everyone off TBB. If you don't like the TBB license, use OpenMP. Or you are free to implement your own backend outside VTK (the design makes it very easy).</div><div><br></div><div>PS: We will likely ship all of our binaries with TBB as it gives the best performance currently.</div><div><br></div><div>Best,</div><div>-berk</div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 10, 2016 at 10:02 AM, Steve Pieper <span dir="ltr"><<a href="mailto:pieper@isomics.com" target="_blank">pieper@isomics.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">Hi Ken - <div><br></div><div>I agree with Andras that this needs to be carefully considered.  We rely on the robustness and consistency of the multithreader and it maxes out our processors for important use cases.  Having other options is good, but not if it takes away what already works.<div><br></div><div>The no-GPL rule has been very important to the success of VTK and ITK.   I'm not a lawyer either, but libstc++ and the linux kernel are very different because you typically don't ship them with the software because the user has their own copy.  Also the TBB "runtime exception specifically" says it only applies to a "free software library" which it doesn't define [1].  A very common interpretation of "free software library" would be that it means other GPL libraries (at least that's what the FSF and RMS would likely say it means).</div><div><br></div><div>I don't mind the option of linking to TBB, but I wouldn't want to see that be the default path.</div><div><br></div><div>-Steve</div><div><br></div><div>[1] <a href="https://www.threadingbuildingblocks.org/licensing#runtime-exception" target="_blank">https://www.threadingbuildingblocks.org/licensing#runtime-exception</a></div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Feb 10, 2016 at 9:50 AM, Moreland, Kenneth <span dir="ltr"><<a href="mailto:kmorel@sandia.gov" target="_blank">kmorel@sandia.gov</a>></span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div dir="auto"><span>
<div>Andreas,</div>
<div><br>
</div>
<div>I am not a lawyer, so I make no claims to my expertise in this, but I'm pretty sure you should be ok. Looking at that same FAQ link you sent is this:</div>
<div><br>
</div>
<div><span style="background-color:rgba(255,255,255,0)">Intel® TBB is available under the common open-source software license, GPLv2 with the (libstdc++) runtime exception. Specifically, the Intel® TBB open-source license is exactly
 the same as that used by the libstdc++ in gcc 4.2.1 (and earlier). GPLv2 is the same license used for a variety of well-known OSS applications including MySQL, NetBeans, and the Linux kernel. - See more at:
<a href="https://www.threadingbuildingblocks.org/faq/10#sthash.IQJJn2NB.dpuf" target="_blank">https://www.threadingbuildingblocks.org/faq/10#sthash.IQJJn2NB.dpuf</a></span></div>
<div><br>
</div>
<div>So, you if you feel comfortable compiling your code with gcc, you shod be fine. <br>
<br>
<div>-Ken</div>
<div><br>
</div>
Sent from my iPad so blame autocorrect.</div></span><div><div><span>
<div><br>
On Feb 9, 2016, at 5:14 PM, Andras Lasso <<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>> wrote:<br>
<br>
</div>
</span><blockquote type="cite">
<div>


<div><span>
<p class="MsoNormal"><span style="color:#1f497d">Intel TBB price: <a href="https://software.intel.com/en-us/intel-tbb/try-buy" target="_blank">
https://software.intel.com/en-us/intel-tbb/try-buy</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Although the <a href="https://www.threadingbuildingblocks.org/faq/10" target="_blank">
https://www.threadingbuildingblocks.org/faq/10</a> page tries to clarify dual licensing, it’s still not fully clear for me if there is any catch in the open-source license.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Can you confirm that TBB in VTK can be used in a commercial software without any restrictions (paying licensing fees, disclosing source code, etc)?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Andras<u></u><u></u></span></p>
<p class="MsoNormal"><a name="1443124226_1334378223_-1409578760_-512190937__MailEndCompose"><span style="color:#1f497d"><u></u> <u></u></span></a></p>
</span><div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><span><b>From:</b> Moreland, Kenneth [<a href="mailto:kmorel@sandia.gov" target="_blank">mailto:kmorel@sandia.gov</a>]
<br>
<b>Sent:</b> February 9, 2016 6:32 PM<br>
</span><b>To:</b> Andras Lasso <<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>>; Geveci, Berk (External Contact) <<a href="mailto:berk.geveci@kitware.com" target="_blank">berk.geveci@kitware.com</a>>; Ken Martin <<a href="mailto:ken.martin@kitware.com" target="_blank">ken.martin@kitware.com</a>><br>
<b>Cc:</b> VTK Developers <<a href="mailto:vtk-developers@vtk.org" target="_blank">vtk-developers@vtk.org</a>>; David Gobbi <<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>><span><br>
<b>Subject:</b> Re: [vtk-developers] Checking SMP backend at runtime/compiletime?<u></u><u></u></span></p>
</div>
</div><span>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">$700? TBB is open-source, GPLv2 with runtime exception: <a href="https://www.threadingbuildingblocks.org/licensing" target="_blank">https://www.threadingbuildingblocks.org/licensing</a><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"><u></u> <u></u></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">-Ken<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"><u></u> <u></u></span></p>
</div>
</span><div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">vtk-developers <<a href="mailto:vtk-developers-bounces@vtk.org" target="_blank">vtk-developers-bounces@vtk.org</a>> on behalf of Andras Lasso <<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>><span><br>
<b>Date: </b>Tuesday, February 9, 2016 at 3:56 PM<br>
</span><b>To: </b>"Geveci, Berk (External Contact)" <<a href="mailto:berk.geveci@kitware.com" target="_blank">berk.geveci@kitware.com</a>>, Ken Martin <<a href="mailto:ken.martin@kitware.com" target="_blank">ken.martin@kitware.com</a>><br>
<b>Cc: </b>VTK Developers <<a href="mailto:vtk-developers@vtk.org" target="_blank">vtk-developers@vtk.org</a>>, David Gobbi <<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>><span><br>
<b>Subject: </b>[EXTERNAL] Re: [vtk-developers] Checking SMP backend at runtime/compiletime?<u></u><u></u></span></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"><u></u> <u></u></span></p>
</div>
<div>
<div><span>
<p class="MsoNormal"><span style="color:black">></span><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">we'll have to require that people use TBB.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black">Are you talking about Intel TBB – single license starting from $700? Or there are some free replacements?</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black">For most of our projects current performance of VTK is already good enough and it is very important to not have any licensing cost or restrictions. So, I would prefer free vtkMultiThreader over expensive Intel
 TBB, regardless of speed improvements.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:black">Andras<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</span><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><span lang="EN-CA" style="color:black"><br>
<b>From: </b><a href="mailto:berk.geveci@kitware.com" target="_blank">Berk Geveci</a><span><br>
<b>Sent: </b>February 9, 2016 14:56<br>
<b>To: </b><a href="mailto:ken.martin@kitware.com" target="_blank">Ken Martin</a><br>
</span><span><b>Cc: </b><a href="mailto:vtk-developers@vtk.org" target="_blank">VTK Developers</a>; <a href="mailto:david.gobbi@gmail.com" target="_blank">
David Gobbi</a><br>
</span><span><b>Subject: </b>Re: [vtk-developers] Checking SMP backend at runtime/compiletime?<u></u><u></u></span></span></p>
</div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">A few comments:
</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">* I support the path David wants to take. We flushed this out over several months in collaboration with a Google Summer of Code student. It is the
 best transition strategy given that we have several moving components (see below).</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">* The Simple backend of vtkSMPTools is only there for debugging. Helgrind produces lots of false positives when using TBB so I developed the Simple
 backend for use with Helgrind. It is not a production backend and pretty much sucks. Now that we haven an OpenMP backend that can be used with Helgrind, Simple must die. I don't see a reason to deprecate it first since it is there only for debugging. This
 is clearly documented in the PDF will pointed to.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">* For compilers that do not support OpenMP 3.1, one can (and should) use TBB. TBB is the better backend anyway so I recommend it over OpenMP.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">* We will not include TBB in VTK. It is an external dependency similarly to OpenGL & MPI. In the future, folks will have to get it or have OpenMP
 if they want any thread-level parallelism out of VTK. We need to discuss what "in the future" means.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">* Posix threads, C++11 threads etc. are not the way to go. They are way too low level and require management of thread pools and such to get good
 scalability. Things that OpenMP and TBB already to well. In general, for the kind of parallel computing we want in VTK, the best tools are high level ones such as parallel for loops etc. Furthermore, OpenMP will be important where we want to get SIMD (vector)
 parallelism. Auto-vectorization is very imperfect. And there are no C++ primitives that help with SIMD in C++11.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">* At one point, we will have to get rid of vtkMultiThreader (at least of its use in algorithms, it may still be useful for GUI threads and whatnot).
 Hopefully, by then OpenMP 3.1 or above will be universally supported so we can make it the default backend. If not though, we'll have to require that people use TBB.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">Best,</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">-berk</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</span><div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">On Tue, Feb 9, 2016 at 11:33 AM, Ken Martin <<a href="mailto:ken.martin@kitware.com" target="_blank">ken.martin@kitware.com</a>> wrote:</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</span><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">Echoing David's earlier comments it would seem like we would want a nice path to convert existing multithreaded algorithms to use vtkSMPTools knowing
 that vtkSMPTools would not slow down the existing algorithm. Doing </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">#if VTK_SMP_BACKEND == SLOW</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> use vtkMultithreader</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">#else</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">  use vtkSMPTools</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">#endif</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">sounds odd. I did not read the pdf so if that is covered in there apologies.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</div>
</span><div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div><span>
<div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">On Tue, Feb 9, 2016 at 10:56 AM, David Gobbi <<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>> wrote:</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</div>
</span><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">Hi Sujin,
</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">That sounds good.  Even if the choice of backend is transparent as far as using vtkSMPTools is concerned, it's very nice to be able to report which
 backend was configured.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</span><div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> - David</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">On Tue, Feb 9, 2016 at 8:46 AM, Sujin Philip <<a href="mailto:sujin.philip@kitware.com" target="_blank">sujin.philip@kitware.com</a>> wrote:</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</span><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"><span>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">Hi Sean,</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">vtkSMPTools is a framework for implementing multi-threaded algorithms in VTK. It support several backends. The main
 ones are TBB and OpenMP. There are Kaapi and Simple backends which are no longer supported and will be removed soon. Finally, the default backend is Sequential which is just a single threaded implementation of the framework. After removal of the Kaapi and
 Simple backend, if you need multithreading support on Clang you would have to use TBB. The Sequential backend will be supported on all platforms.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">David,<br>
<br>
I have talked with Berk about this and I will soon make a change to have a compile time macro to check for SMP backend type. I will also finally remove Kaapi and Simple backend as part of this change.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">Thanks</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888">Sujin</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</span><div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">On Tue, Feb 9, 2016 at 10:28 AM, Sean McBride <<a href="mailto:sean@rogue-research.com" target="_blank">sean@rogue-research.com</a>> wrote:</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</span><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-bottom:12.0pt"><span><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">On Tue, 9 Feb 2016 09:13:48 -0500, Sujin Philip said:<br>
<br>
>Why would you want to continue using vtkMultiThreader when Sequential or<br>
>Simple is used? In fact, now that there is an openmp backend, we should be<br>
>removing simple. It was only there to ease debugging since tbb had very<br>
>complex back-traces. Openmp back-traces are much more readable. Do you want<br>
>the algorithm to be multithreaded even when Sequential is used?<br>
<br>
I don't know the APIs you're discussing, so this comment is coming mostly from ignorance, but: are you talking about requiring OpenMP to build VTK?  Clang has only very recently added OpenMP support, and IIRC it's not complete.  Also, last I checked, Apple's
 fork of clang doesn't support it at all.<br>
<br>
Cheers,</span></span><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888"><span><br>
<br>
--<br>
____________________________________________________________<br>
Sean McBride, B. Eng                 <a href="mailto:sean@rogue-research.com" target="_blank">sean@rogue-research.com</a><br></span>
Rogue Research                        <a href="http://www.rogue-research.com" target="_blank">
www.rogue-research.com</a><span><br>
Mac Software Developer              Montréal, Québec, Canada<br>
<br>
<br>
</span></span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</blockquote>
</div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</div>
</div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br><span>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
<br>
</span></span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</blockquote>
</div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888"><br>
<br clear="all">
</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:black"> <u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888">--
</span></span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888">Ken Martin PhD
</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div><span>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888">Chairman & CFO<br>
Kitware Inc.<br>
28 Corporate Drive<br>
Clifton Park NY 12065<br>
<a href="tel:518%20371%203971" target="_blank">518 371 3971</a> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#888888"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</span><div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:#888888">This communication, including all attachments, contains confidential and legally privileged information, and it is intended only for the use of the
 addressee.  Access to this email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken in reliance on it is prohibited and may be unlawful. If you received this communication in error
 please notify us immediately and destroy the original message.  Thank you.</span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br><span>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
<br>
</span></span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
</blockquote>
</div>
</div>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"> </span><span lang="EN-CA" style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:black"> <u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div></div></div>

<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><span><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>