<div dir="ltr">OK, then we should optimize this case.  VecScatterCreateToZero() uses MPI_Gather/Gatherv.  But in your case, petsc will use individual MPI send/recvs, though it is possible to use Gather/Gatherv.<div>I created a follow-up issue <a href="https://gitlab.com/petsc/petsc/-/issues/950">https://gitlab.com/petsc/petsc/-/issues/950</a><br></div><div><br></div><div>Thanks.</div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">--Junchao Zhang</div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 30, 2021 at 9:07 AM Peder Jørgensgaard Olesen <<a href="mailto:pjool@mek.dtu.dk">pjool@mek.dtu.dk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



<div>

<div id="gmail-m_-5235952703797918387divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p>Dear Junchao Zhang</p>
<p><br>
</p>
<p>I'm distributing a set of independent tasks over different processes, so I'm afraid sending everything to the zeroth process would rather thoroughly defeat the purpose of what I'm doing.</p>
<p><br>
</p>
<p>Med venlig hilsen / Best regards</p>
<p>Peder</p>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-5235952703797918387divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Fra:</b> Junchao Zhang <<a href="mailto:junchao.zhang@gmail.com" target="_blank">junchao.zhang@gmail.com</a>><br>
<b>Sendt:</b> 30. juni 2021 16:00:25<br>
<b>Til:</b> Peder Jørgensgaard Olesen<br>
<b>Cc:</b> Matthew Knepley; <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>
<b>Emne:</b> Re: [petsc-users] Scatter parallel Vec to sequential Vec on non-zeroth process</font>
<div> </div>
</div>
<div>
<div dir="ltr">That should work. But VecScatterCreateToZero() is more efficient. So if possible, better refactor your code in such a way. 
<div><br clear="all">
<div>
<div dir="ltr">
<div dir="ltr">--Junchao Zhang</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Jun 30, 2021 at 7:13 AM Peder Jørgensgaard Olesen via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div id="gmail-m_-5235952703797918387gmail-m_6232111265244509509divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p>Dear Matt</p>
<p><br>
</p>
<p>Thank you for your reply. I'm guessing that the line</p>
<pre width="80"><font color="#4169E1">if</font> (rank) N = 0;</pre>
should be changed to something like
<p></p>
<p></p>
<pre width="80"><font color="#4169E1">if</font> (rank != target_rank) N = 0;</pre>
such that an empty SEQVEC and scatter are created on each rank other than target_rank.
<p></p>
<p><br>
</p>
<p>Med venlig hilsen / Best regards</p>
<p>Peder</p>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-5235952703797918387gmail-m_6232111265244509509divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Fra:</b> Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>><br>
<b>Sendt:</b> 30. juni 2021 13:58:49<br>
<b>Til:</b> Peder Jørgensgaard Olesen<br>
<b>Cc:</b> <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>
<b>Emne:</b> Re: [petsc-users] Scatter parallel Vec to sequential Vec on non-zeroth process</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">On Wed, Jun 30, 2021 at 6:49 AM Peder Jørgensgaard Olesen via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br>
</div>
<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">
<div dir="ltr">
<div id="gmail-m_-5235952703797918387gmail-m_6232111265244509509gmail-m_-8023515525886516286divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p>Hello</p>
<p><br>
</p>
<p>I have a parallel vector, and I'd like to copy its data to a sequential vector located on a given process that is not necessarily the 0th process, so using VecScatterCreateToZero wouldn't do here.</p>
<p><br>
</p>
<p>How might one approach this?</p>
</div>
</div>
</blockquote>
<div>The function is very short: <a href="https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/sf/interface/vscat.c.html#VecScatterCreateToZero" target="_blank">https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/sf/interface/vscat.c.html#VecScatterCreateToZero</a></div>
<div>Just go in and replace '0' by the rank you want.</div>
<div><br>
</div>
<div>  Thanks,</div>
<div><br>
</div>
<div>     Matt </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div id="gmail-m_-5235952703797918387gmail-m_6232111265244509509gmail-m_-8023515525886516286divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<div id="gmail-m_-5235952703797918387gmail-m_6232111265244509509gmail-m_-8023515525886516286Signature">
<div id="gmail-m_-5235952703797918387gmail-m_6232111265244509509gmail-m_-8023515525886516286divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p>Med venlig hilsen / Best Regards</p>
<p><br>
</p>
<p>Peder Jørgensgaard Olesen</p>
<p><span style="font-size:10pt;color:rgb(117,123,128)">PhD Student, Turbulence Research Lab</span></p>
<p><span style="font-size:10pt;color:rgb(117,123,128)">Dept. of Mechanical Engineering</span></p>
<p><span style="font-size:10pt;color:rgb(117,123,128)">Technical University of Denmark</span></p>
<p><span style="font-size:10pt;color:rgb(117,123,128)">Koppels Allé</span></p>
<p><span style="font-size:10pt;color:rgb(117,123,128)">Bygning 403, Rum 105</span></p>
<p><span style="font-size:10pt;color:rgb(117,123,128)">DK-2800 Kgs. Lyngby</span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener</div>
<div><br>
</div>
<div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>

</blockquote></div>