<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div>
<div>$700? TBB is open-source, GPLv2 with runtime exception: <a href="https://www.threadingbuildingblocks.org/licensing">https://www.threadingbuildingblocks.org/licensing</a></div>
<div><br>
</div>
</div>
</div>
<div>-Ken</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>vtk-developers <<a href="mailto:vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a>> on behalf of Andras Lasso <<a href="mailto:lasso@queensu.ca">lasso@queensu.ca</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, February 9, 2016 at 3:56 PM<br>
<span style="font-weight:bold">To: </span>"Geveci, Berk (External Contact)" <<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>>, Ken Martin <<a href="mailto:ken.martin@kitware.com">ken.martin@kitware.com</a>><br>
<span style="font-weight:bold">Cc: </span>VTK Developers <<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>>, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>><br>
<span style="font-weight:bold">Subject: </span>[EXTERNAL] Re: [vtk-developers] Checking SMP backend at runtime/compiletime?<br>
</div>
<div><br>
</div>
<div xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.hoenzb
{mso-style-name:hoenzb;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1745493455;
mso-list-type:hybrid;
mso-list-template-ids:2045181354 -1 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:1941639744;
mso-list-type:hybrid;
mso-list-template-ids:-1364567780 -1 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l1:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style>
<div lang="EN-CA" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">></span><span lang="EN-US" style="font-size: 12pt; font-family: 'Times New Roman', serif;"></span><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">we'll have to require that people use TBB.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Are you talking about Intel TBB – single license starting from $700? Or there are some free replacements?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">Andras</p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;border:none;padding:0cm">
<br>
<b>From: </b><a href="mailto:berk.geveci@kitware.com">Berk Geveci</a><br>
<b>Sent: </b>February 9, 2016 14:56<br>
<b>To: </b><a href="mailto:ken.martin@kitware.com">Ken Martin</a><br>
<b>Cc: </b><a href="mailto:vtk-developers@vtk.org">VTK Developers</a>; <a href="mailto:david.gobbi@gmail.com">
David Gobbi</a><br>
<b>Subject: </b>Re: [vtk-developers] Checking SMP backend at runtime/compiletime?</p>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">A few comments:
</span><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">* 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).<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">* 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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">* 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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">* 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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">* 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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">* 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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">Best,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">-berk<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">On Tue, Feb 9, 2016 at 11:33 AM, Ken Martin <<a href="mailto:ken.martin@kitware.com">ken.martin@kitware.com</a>> wrote:<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">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 <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">#if VTK_SMP_BACKEND == SLOW<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"> use vtkMultithreader<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">#else<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"> use vtkSMPTools<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">#endif<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">sounds odd. I did not read the pdf so if that is covered in there apologies.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">On Tue, Feb 9, 2016 at 10:56 AM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>> wrote:<o:p></o:p></span></p>
</div>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">Hi Sujin,
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"> - David<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">On Tue, Feb 9, 2016 at 8:46 AM, Sujin Philip <<a href="mailto:sujin.philip@kitware.com">sujin.philip@kitware.com</a>> wrote:<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">Hi Sean,<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">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.<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">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.<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">Thanks<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);">Sujin</span><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">On Tue, Feb 9, 2016 at 10:28 AM, Sean McBride <<a href="mailto:sean@rogue-research.com">sean@rogue-research.com</a>> wrote:<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">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 style="color:#888888"><br>
<br>
--<br>
____________________________________________________________<br>
Sean McBride, B. Eng <a href="mailto:sean@rogue-research.com">sean@rogue-research.com</a><br>
Rogue Research <a href="http://www.rogue-research.com" target="_BLANK">
www.rogue-research.com</a><br>
Mac Software Developer Montréal, Québec, Canada<br>
<br>
</span><o:p></o:p></span></p>
</blockquote>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;">_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_BLANK">www.kitware.com</a><br>
<br>
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>
<o:p></o:p></span></p>
</blockquote>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);"><br>
<br clear="all">
</span><span class="hoenzb"><span style="color:#888888"><o:p></o:p></span></span></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><span class="hoenzb"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);">--
</span><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);">Ken Martin PhD
</span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);">Chairman & CFO<br>
Kitware Inc.<br>
28 Corporate Drive<br>
Clifton Park NY 12065<br>
<a href="tel:518%20371%203971">518 371 3971</a> <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: rgb(136, 136, 136);">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 style="font-size: 12pt; font-family: 'Times New Roman', serif; color: rgb(136, 136, 136);"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_BLANK">www.kitware.com</a><br>
<br>
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>
<o:p></o:p></span></p>
</blockquote>
</div>
</div>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</span>
</body>
</html>