<HTML>
<HEAD>
<TITLE>Re: [Paraview] Question on distributed processing and rendering using Paraview and MPI</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Chewping,<BR>
<BR>
Let me start with a nomenclature normalization. &nbsp;What you call master/slave nodes we call client/server nodes. &nbsp;We make this distinction because the client needs to be nowhere near the server nodes (I have attached a client to a server running on the other side of the country).<BR>
<BR>
Your question is difficult to answer succinctly because it depends on the type of data. &nbsp;In general, load balancing does not happen through MPI but through file I/O. &nbsp;The parallel readers in ParaView each read in a partition of data, and that partition is fixed to the process. &nbsp;For structured types of data (data with a regular grid topology), this partitioning can be very even. &nbsp;For unstructured data, the partitioning is usually limited to how the data is lain out in the data files, so even partitioning is not guaranteed. &nbsp;There is a filter, D3, that will use MPI to redistribute an unstructured data set. &nbsp;No data is passed through the client in this process.<BR>
<BR>
For more information, you can consult <I>The ParaView Guide</I>, which has a couple of chapters on parallel processing and rendering: <a href="http://www.kitware.com/products/books.html">http://www.kitware.com/products/books.html</a><BR>
<BR>
You may also take a look at the Supercomputing tutorial, which talks about the parallel visualization from a User&#8217;s perspective: <a href="http://www.paraview.org/Wiki/SC08_ParaView_Tutorial">http://www.paraview.org/Wiki/SC08_ParaView_Tutorial</a><BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 2/5/09 9:51 PM, &quot;chew ping&quot; &lt;<a href="lcp81um@msn.com">lcp81um@msn.com</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>Hi,<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'> <BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>My name is chewping and I&#8217;m doing my master&#8217;s research in the University of Malaya, Malaysia. I&#8217;m using ParaView and MPI to visualize a relatively large medical data set in a homogeneous cluster environment. It consists of one master node and 9 slave nodes in a Local Area Network with class C IP address. Most nodes are similar to each other (32 bits processor, running on Linux). I would like to manipulate MPI to make the performance better (faster distributions of data and collections of results). As I am new to MPI and parallel processing system, there are a few questions that I would like to ask:<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'> <BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>1.</SPAN></FONT></FONT><FONT FACE="Times New Roman"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></FONT><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>How MPI distribute the work load?<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>2.</SPAN></FONT></FONT><FONT FACE="Times New Roman"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></FONT><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>Does the master node divide the work load evenly first, then distribute to each slave node?<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>3.</SPAN></FONT></FONT><FONT FACE="Times New Roman"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></FONT><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>Or the master node pass the whole chunk of work load to every slave node, then the slave node &#8216;take&#8217; their own piece of work to process?<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>4.</SPAN></FONT></FONT><FONT FACE="Times New Roman"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></FONT><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>Can the work load being distributed according to priority (load balancing)? Or give a bigger portion of work load to the node with higher processing speed?<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'> <BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>Can MPI do the above and how? Where can I learn more on how to use MPI to tune for best performance for distributed processing and rendering?<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'> <BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="4"><FONT FACE="Times New Roman"><SPAN STYLE='font-size:14pt'>Thanks in advance for your feedback!<BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT></FONT></BLOCKQUOTE><FONT SIZE="2"><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:10pt'><BR>
</SPAN></FONT><SPAN STYLE='font-size:10pt'><FONT FACE="Consolas, Courier New, Courier"><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>
</FONT></SPAN></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT>
</BODY>
</HTML>