<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p>Hi Chuck,</p>
<p><br>
</p>
<p>Thank you for your help.</p>
<p>Indeed, I built PVSB 5.2 with the <span>intel 2016.2.181 and intelmpi <span>5.1.3.181 compilers, then </span></span><span style="font-size: 12pt;">ran the resulting pvserver </span><span style="font-size: 12pt;">on
</span><span style="font-size: 12pt;">Haswell CPU nodes (</span><span style="font-size: 12pt;">Intel E5-2680v3) which supports AVX2 instructions.  </span><span style="font-size: 12pt;">So this fits exactly the known issue you mentioned in your email. </span></p>
<p><span style="font-size: 12pt;"><span><span><br>
</span></span></span></p>
<p><span style="font-size: 12pt;"><span><span>Exporting the GALIIUM_DRIVER env variable to swr then leads to an interesting behavior. </span></span></span><span style="font-size: 12pt;">With the swr driver</span><span style="font-size: 12pt;">, the good news
 is that I can connect my pvserver built in release mode without crashing. </span><span style="font-size: 12pt;">For the recollection, the llvmpipe driver compiled in release mode crashes during the client/server connection, whereas the llvmpipe driver compiled
 in debug mode works fine.</span></p>
<p><br>
</p>
<p>However, our PBS scheduling killed quickly my interactive job because the virtual memory was exhausted, which was puzzling. <span style="font-size: 12pt;">Increasing the number of cores requested for my job and keeping some of them idle allowed me to increase
 the available memory at the cost of wasted cpu resources.</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p>I could then compare the virtual and resident memory of the three following configurations: </p>
<p>1) pvserver using the<span style="font-size: 12pt;"> llvmpipe driver compiled in debug </span></p>
<p><span style="font-size: 12pt;">2) pvserver using swr driver compiled in debug mode</span></p>
<p></p>
<div>3) pvserver using swr driver compiled in release mode</div>
<div><br>
</div>
The memory consumption (in MB) of the pvserver before and after the connection to the client is the following: 
<p></p>
<p><span style="font-size: 12pt;"><span>1) llvmpipe  dbg</span></span></p>
<p><span style="font-size: 12pt;"><span>before connection : Virtual 814  -  Resident 71</span></span></p>
<p><span style="font-size: 12pt;"><span>after connection: <span>Virtual</span> 875 - Resident 128</span></span></p>
<p><br>
</p>
<p>2) swr dbg</p>
<p></p>
<div>before connection: Virtual <span>814</span>  - Resident 93</div>
<div>after connection: Virtual <span>2407 (!!)</span> - Resident 171</div>
<p></p>
<p><br>
</p>
<p><span>3) swr rls</span><br>
</p>
<p><span></span></p>
<div>before connection: Virtual 643  - Resident 76</div>
<div>after connection: Virtual 2235 (!!) - Resident 127</div>
<p></p>
<p><span><br>
</span></p>
<p><span>As you can see, there is a big jump in terms of virtual memory consumption when the pvserver with the swr driver connects to the client, which is not the case for the pvserver with the llvmpipe driver. </span><span style="font-size: 12pt;">Since the
 maximum virtual memory available per core is around 2</span><span style="font-size: 12pt;">670MB minus whatever is needed by the system, it quickly exhausts the available virtual memory as soon as data are loaded (virtual memory keeps increasing). Note also
 the big gap between the virtual and the resident memory consumption for the swr driver.</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">Have you already observed this behavior and is it possible to reduce the virtual memory consumption of the swr driver?</span></p>
<p><span style="font-size: 12pt;"></span></p>
<p>Would you also know if this known issue with the llvmpipe driver will be fixed of PV 5.3 (agreeing on the fact that the swr driver should be faster on intel CPU provided that it does not exhaust the memory consumption).</p>
<p><span><br>
</span></p>
<p><span>Thank you.</span></p>
<p><span><br>
</span></p>
<p><span>Best regards,</span></p>
<p><span><br>
</span></p>
<p><span>Michel</span></p>
<p><span><br>
</span></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Chuck Atkins <chuck.atkins@kitware.com><br>
<b>Sent:</b> Monday, February 6, 2017 5:06:35 PM<br>
<b>To:</b> Michel Rasquin<br>
<b>Cc:</b> paraview@paraview.org<br>
<b>Subject:</b> Re: [Paraview] Issues with PVSB 5.2 and OSMesa support</font>
<div> </div>
</div>
<div>
<div dir="ltr">Hi Michel,<br>
<br>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
However, it starts to become tricky when I use pvserver with OSMesa support.<br>
It appears the resulting pvserver with OSMesa support compiled in Release mode always crashes when I try to load data,<br>
</blockquote>
<br>
</div>
<div class="gmail_quote">Which compiler are you building with and type of CPUs are available on the node you're running on?  There is a known issue with llvmpipe and the Intel compiler causing segfaults.  If youre CPU is new enough (supports AVX) then you can
 use the swr driver.  See <a href="http://www.paraview.org/Wiki/ParaView_And_Mesa_3D#Using_the_llvmpipe_and_swr_drivers" id="LPlnk859904" previewremoved="true">
http://www.paraview.org/Wiki/ParaView_And_Mesa_3D#Using_the_llvmpipe_and_swr_drivers</a> for details on switching between llvmpipe and swr drivers and adjusting the number of threads used by each one.<br>
</div>
<br>
</div>
</div>
</div>
</div>
</body>
</html>