<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. What you call master/slave nodes we call client/server nodes. 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. In general, load balancing does not happen through MPI but through file I/O. The parallel readers in ParaView each read in a partition of data, and that partition is fixed to the process. For structured types of data (data with a regular grid topology), this partitioning can be very even. 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. There is a filter, D3, that will use MPI to redistribute an unstructured data set. 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’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, "chew ping" <<a href="lcp81um@msn.com">lcp81um@msn.com</a>> 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’m doing my master’s research in the University of Malaya, Malaysia. I’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'> </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'> </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'> </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 ‘take’ 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'> </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>
**** Kenneth Moreland<BR>
*** Sandia National Laboratories<BR>
*********** <BR>
*** *** *** email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
** *** ** phone: (505) 844-8919<BR>
*** web: <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>