<div dir="ltr"><p>Thank you very much, Lisandro. You are right. It look like a little difficult to &quot;transfer&quot; data from one node to &quot;N&quot; nodes or from N nodes to M nodes. My method is to first send all the data in a node and to redistribute it in &quot;N&quot; or &quot;M&quot; nodes. do you have any idea about it? is it time-consuming? In Petsc, how to support such type of operations? thanks a lot.</p>
<p>Regards,<br></p><p>Yujie</p><br><div class="gmail_quote">On Wed, Sep 17, 2008 at 5:05 PM, Lisandro Dalcin <span dir="ltr">&lt;<a href="mailto:dalcinl@gmail.com">dalcinl@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
A long as you create your SLEPc objects with the appropriate<br>
communicator (ie. the one obtained with MPI_Comm_split), then all<br>
should just work. Of course, you will have to make appropriate MPI<br>
calls to &#39;transfer&#39; data from your N group to the many M groups, and<br>
the other way to collect results.<br>
<div><div class="Wj3C7c"><br>
<br>
On Wed, Sep 17, 2008 at 8:25 PM, Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt; wrote:<br>
&gt; You are right :). I am thinking the whole framwork for my codes. thank you,<br>
&gt; Lisandro. In Step 3, there are different M slepc-based process groups, which<br>
&gt; should mean M communication domain for Petsc and Slepc (I have created a<br>
&gt; communication domain for them) is it ok? thanks again.<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; Yujie<br>
&gt;<br>
&gt; On Wed, Sep 17, 2008 at 4:08 PM, Lisandro Dalcin &lt;<a href="mailto:dalcinl@gmail.com">dalcinl@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I bet you have not even tried to actually implent and run this :-).<br>
&gt;&gt;<br>
&gt;&gt; This should work. &nbsp;If not, I would consider that a bug. Let us know of<br>
&gt;&gt; any problem you have.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Sep 17, 2008 at 7:59 PM, Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi, Petsc Developer:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Currently, I am using Slepc for my application. It is based on Petsc.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Assuming I have a cluster with N nodes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; My codes are like<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; main()<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; {<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; step 1: Initialize Petsc and Slepc;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; step 2: Use Petsc; (use all N nodes in one process group)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; step 3: Use Slepc; (N nodes is divided into M process groups. these<br>
&gt;&gt; &gt; groups<br>
&gt;&gt; &gt; are indepedent. However, they need to communicate with each other)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; step 4: Use Petsc; (use all N nodes in one process group)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; }<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; My method is:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; when using Slepc, MPI_Comm_split() is used to divide N nodes into M<br>
&gt;&gt; &gt; process<br>
&gt;&gt; &gt; groups which means to generate M communication domains. Then,<br>
&gt;&gt; &gt; MPI_Intercomm_create() creates inter-group communication domain to<br>
&gt;&gt; &gt; process<br>
&gt;&gt; &gt; the communication between different M process groups.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I don&#39;t know whether this method is ok regarding Petsc and Slepc.<br>
&gt;&gt; &gt; Because<br>
&gt;&gt; &gt; Slepc is developed based on Petsc. In Step 1, Petsc and Slepc is<br>
&gt;&gt; &gt; initialized<br>
&gt;&gt; &gt; with all N nodes in a communication domain. Petsc in Step 2 uses this<br>
&gt;&gt; &gt; communication domain. However, in Step 3, I need to divide all N nodes<br>
&gt;&gt; &gt; and<br>
&gt;&gt; &gt; generate M communication domains. I don&#39;t know how Petsc and Slepc can<br>
&gt;&gt; &gt; process this change? If the method doesn&#39;t work, could you give me some<br>
&gt;&gt; &gt; advice? thanks a lot.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Regards,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Yujie<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Lisandro Dalcín<br>
&gt;&gt; ---------------<br>
&gt;&gt; Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)<br>
&gt;&gt; Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)<br>
&gt;&gt; Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)<br>
&gt;&gt; PTLC - Güemes 3450, (3000) Santa Fe, Argentina<br>
&gt;&gt; Tel/Fax: +54-(0)342-451.1594<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<div><div class="Wj3C7c">Lisandro Dalcín<br>
---------------<br>
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)<br>
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)<br>
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)<br>
PTLC - Güemes 3450, (3000) Santa Fe, Argentina<br>
Tel/Fax: +54-(0)342-451.1594<br>
<br>
</div></div></blockquote></div><br></div>