<p dir="ltr">Hi Paolo, thank you for answering. I've actually solved this yesterday, introducing a set of communications orthogonal to the pools, which turned out to be relatively easy. However, since I went on holiday this morning, and because the code needs some more testing, I won't uploas it before next week! If anybody wants to try it, I may be able to put it somewhere.. </p>
<p dir="ltr">Cheers<br></p>
<p dir="ltr">-- <br>
Lorenzo Paulatto<br>
Written on a virtual keyboard with real fingers</p>
<div class="gmail_extra"><br><div class="gmail_quote">On 19 Oct 2016 2:48 p.m., "Paolo Giannozzi" <<a href="mailto:paolo.giannozzi@uniud.it">paolo.giannozzi@uniud.it</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">On Tue, Oct 18, 2016 at 11:52 AM, Lorenzo Paulatto <span dir="ltr"><<a href="mailto:lorenzo.paulatto@impmc.upmc.fr" target="_blank">lorenzo.paulatto@impmc.upmc.<wbr>fr</a>></span> wrote:<br><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, I see, I had to redo all the scatter/collect mechanism anyway because<br>
<beta|psi> products are stored in a derived type, which has not pre-made<br>
subroutines.<br></blockquote><div><br></div><div>likely you will need a complex version. maybe we should consider an interface.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I also noticed that we do:<br>
    IF (npool>1) CALL mp_sum(exxbuff, inter_pool_comm)<br>
should this be followed by a<br>
 CALL mp_bcast(exxbuff, root_pool, intra_pool_comm)<br>
?<br></blockquote><div><br></div><div class="m_4759199414711582732h5">I don;'t think so: exxbuff has three indices and is distributed over the first (PW, inside a band group) and the second (bands, across band groups) indices. The problem is the third index, k+q. Each pool has a subset of k-points, fills a subset of k+q points, needs a different subset of k+q points (except if nq1=nq2=nq3=1, that is, q=0 only). The "mp_sum" above is just filling the third index for all pools. It is dumb but simple; better solutions welcome<br><br></div></div>Paolo<br>-- <br><div class="m_4759199414711582732gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Paolo Giannozzi, <span>Dip. Scienze Matematiche Informatiche e Fisiche</span>,<br>Univ. Udine, via delle Scienze 208, 33100 Udine, Italy<br>Phone <a href="tel:%2B39-0432-558216" value="+390432558216" target="_blank">+39-0432-558216</a>, fax <a href="tel:%2B39-0432-558222" value="+390432558222" target="_blank">+39-0432-558222</a><br><br></div></div></div></div></div>
</div></div>
<br>______________________________<wbr>_________________<br>
Q-e-developers mailing list<br>
<a href="mailto:Q-e-developers@qe-forge.org">Q-e-developers@qe-forge.org</a><br>
<a href="http://qe-forge.org/mailman/listinfo/q-e-developers" rel="noreferrer" target="_blank">http://qe-forge.org/mailman/<wbr>listinfo/q-e-developers</a><br>
<br></blockquote></div></div>