<HTML>
<HEAD>
<TITLE>Re: [Paraview] PV &amp; multiple video cards</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>I think this is a good suggestion. &nbsp;I don&#8217;t think the fact that it relies on processes being assigned in a particular order is a big deal. &nbsp;The default allocation is usually to place contiguous ranks in the same node anyway. &nbsp;The tiled display options also have heavy reliance on the order in which processes are assigned, and I don&#8217;t recall complaints about that.<BR>
<BR>
The only change I would suggest is to <I>not </I>have an option named --number-of-gpu-per-host change the display parameter. &nbsp;The option name should reflect the fact that it is going to override the display environment variable. &nbsp;Offhand, I cannot think of a single option name that reflects both the fact that you are changing the display and providing the number of screen ids to use. &nbsp;Perhaps you would have two options, the --number-of-gpu-per-host as you described and a something like --set-display-server-id-by-process-id. &nbsp;Since one does not make sense without the other, you could give an error if one is used independently.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 6/22/10 12:31 PM, &quot;burlen&quot; &lt;<a href="burlen.loring@gmail.com">burlen.loring@gmail.com</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Hi,<BR>
<BR>
I realized that my suggestion relies on processes being assigned in a<BR>
particular order. So something slightly more complicated would need to<BR>
be done to determine the number of processes running on each host. Still<BR>
it would be pretty simple way to make folks lives easier. Let me know<BR>
what you think.<BR>
<BR>
Burlen<BR>
<BR>
burlen wrote:<BR>
&gt; Hi,<BR>
&gt;<BR>
&gt; currently we suggest users rely on details particular to specific MPI<BR>
&gt; implementations<BR>
&gt; (<a href="http://paraview.org/Wiki/Setting_up_a_ParaView_Server#Multiple_GPUs_Per_Node">http://paraview.org/Wiki/Setting_up_a_ParaView_Server#Multiple_GPUs_Per_Node</a>)<BR>
&gt; to set up PV server on clusters with multiple graphics cards per node.<BR>
&gt; It seems to me that this reliance on non standard implementation<BR>
&gt; details isn't necessary for the most common case and it can introduce<BR>
&gt; some complication to get PV running on various installations.<BR>
&gt;<BR>
&gt; There is something simple that we could do to make users life easier.<BR>
&gt; ParaView could handle a common configuration of multiple graphics<BR>
&gt; cards seamlessly with very little effort via an additional command<BR>
&gt; line option.<BR>
&gt;<BR>
&gt; Two common ways to address multiple video devices in X11 via the<BR>
&gt; DISPLAY variable are, 1) by server id (&quot;:[server].0&quot;) or 2) by screen<BR>
&gt; id (&quot;:0.[screen]&quot;). &nbsp;It depends on how X11 is setup, but I think the<BR>
&gt; latter is the most common.<BR>
&gt;<BR>
&gt; If the user were to tell PV how many video devices are available on<BR>
&gt; each node via the following command line variable, PV could assign<BR>
&gt; rendering contexts cyclically across the available devices by setting<BR>
&gt; the DISPLAY variable for the user.<BR>
&gt;<BR>
&gt; --number-of-gpu-per-host=N<BR>
&gt;<BR>
&gt; as each server starts he will make the computation to set the DISPLAY<BR>
&gt; variable so that render contexts are cycled across the available devices.<BR>
&gt;<BR>
&gt; For example, something like the folowing could be added to<BR>
&gt; Filters/vtkPVMain.cxx<BR>
&gt;<BR>
&gt; if (numGpuPerHost)<BR>
&gt; &nbsp;{<BR>
&gt; &nbsp;int screenId=LocalProcId%numGpuPerHost<BR>
&gt; &nbsp;setenv(&quot;DISPALY=:0.%i&quot;,screenId)<BR>
&gt; &nbsp;}<BR>
&gt;<BR>
&gt; This would conflict with the &quot;-display&quot; option, if both are present PV<BR>
&gt; would exit and print some error message.<BR>
&gt;<BR>
&gt; Do you guys think this would be a reasonable approach to handle a<BR>
&gt; common use case?<BR>
&gt; Burlen<BR>
&gt;<BR>
<BR>
_______________________________________________<BR>
Powered by www.kitware.com<BR>
<BR>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><BR>
<BR>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView">http://paraview.org/Wiki/ParaView</a><BR>
<BR>
Follow this link to subscribe/unsubscribe:<BR>
<a href="http://www.paraview.org/mailman/listinfo/paraview">http://www.paraview.org/mailman/listinfo/paraview</a><BR>
<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
&nbsp;&nbsp;&nbsp;**** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kenneth Moreland<BR>
&nbsp;&nbsp;&nbsp;&nbsp;*** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sandia National Laboratories<BR>
*********** &nbsp;<BR>
*** *** *** &nbsp;email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
** &nbsp;*** &nbsp;** &nbsp;phone: (505) 844-8919<BR>
&nbsp;&nbsp;&nbsp;&nbsp;*** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web: &nbsp;&nbsp;<a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a><BR>
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT>
</BODY>
</HTML>