<div dir="ltr"><div>Sec.8.3 explains why some parts of the code are run on a single processor. You must call parallel code outside regions of code that are running on a single processor.<br><br></div>Paolo<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 3, 2015 at 11:15 PM, Ilya Ryabinkin <span dir="ltr"><<a href="mailto:i.ryabinkin@utoronto.ca" target="_blank">i.ryabinkin@utoronto.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Not sure if I understood how to proceed from there...<br>
I read Sec 8.3 but didn't find answers to my issue.<br>
<br>
Could you direct me more?<br>
<br>
--<br>
I.<br>
<br>
On Tue, Nov 3, 2015 at 4:48 PM, Paolo Giannozzi <<a href="mailto:p.giannozzi@gmail.com">p.giannozzi@gmail.com</a>> wrote:<br>
><br>
><br>
> On Tue, Nov 3, 2015 at 10:16 PM, Ilya Ryabinkin <<a href="mailto:igryabinkin@gmail.com">igryabinkin@gmail.com</a>><br>
> wrote:<br>
>><br>
>><br>
>> I call get_nacs() subroutine from subroutine verlet(), in particular,<br>
>> past the line 229 of dynamics_module.f90, if the  matters.<br>
><br>
><br>
> it matters. Subroutine verlet is called only by processor 0 ("ionode"), so<br>
> if you try to do anything in parallel inside it, it will hang for sure. What<br>
> is not parallel is often done on a single processor, results are then<br>
> broadcast to the other processors. Why, it is explained in Sec.8.3. of the<br>
> developer manual<br>
><br>
> Paolo<br>
>><br>
>><br>
>> > There isn't anything obviously wrong in your piece of code. Is it inside<br>
>> > a<br>
>> > modified version of pw.x, or is it stand-alone? in the latter case,<br>
>> > there<br>
>> > might be some missing initialization.<br>
>><br>
>> It sounds relevant. Indeed, in extrapolate_wfcs() the very first (as<br>
>> well as the very last) line is<br>
>><br>
>>   CALL mp_barrier( intra_image_comm ) ! debug<br>
>><br>
>> I tried to add these lines to my get_nacs() as well, but it doesn't do<br>
>> any good: code hungs immediately, without even going past mp_barrier()<br>
>><br>
>> --<br>
>> Ilya<br>
>><br>
>><br>
>> In the former case...it shouldn't<br>
>> > happen. Anyway: try first of all to figure out where your code hangs.<br>
>> > "calbec" is an interface to several different routines. Maybe it goes<br>
>> > into<br>
>> > the wrong one. It should just do a call to DGEMM or ZGEMM and a call to<br>
>> > mp_sum (wrapper to mpi_reduce)<br>
>> ><br>
>> > Paolo<br>
>> ><br>
>> > On Tue, Nov 3, 2015 at 7:47 PM, Ilya Ryabinkin <<a href="mailto:igryabinkin@gmail.com">igryabinkin@gmail.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> Dear colleagues:<br>
>> >> I'm developing a code to calculate the non-adiabatic couplings using<br>
>> >> finite-difference scheme. The problem I currently stumbled upon is the<br>
>> >> following:<br>
>> >><br>
>> >> I need to calculate the overlap matrix between MOs at t-dt and t,<br>
>> >> gamma_only. What  I'm doing:<br>
>> >><br>
>> >> Code is borrowed from update_pot.f90, subroutine extrapolate_wfcs(),<br>
>> >> lines  595-600<br>
>> >><br>
>> >>       ALLOCATE( evcold( npwx, nbnd ), aux( npwx, nbnd ) )<br>
>> >>       !! Retreive old WF at t-dt from *.oldwfc file<br>
>> >>       CALL davcio( evcold, 2*nwordwfc, iunoldwfc, 1, -1 )<br>
>> >>       !! Get current WF at t<br>
>> >>       aux = evc<br>
>> >>       !<br>
>> >>      ALLOCATE( S( nbnd, nbnd ), O( nbnd, nbnd ) )<br>
>> >>       CALL calbec( npw, aux, evcold, S ) ! Get overlap S(t-dt, t)<br>
>> >>       !<br>
>> >>       O = ANINT( S )    ! O is a rounded S matrix to perform phase and<br>
>> >>                                 ! ordering matching<br>
>> >>       IF ( ANY( diag( O ) == 0.0_dp ) ) THEN<br>
>> >>          ...<br>
>> >><br>
>> >> Essentially, my code hungs at calbec() call if I ran it in parallell<br>
>> >> with # of MPI process >1. gdb shows that processes are in a polling<br>
>> >> loop, which means that they are wait for something. I'm baffled at<br>
>> >> this point, as there is nothing they should wait for.<br>
>> >><br>
>> >> What I am missing?<br>
>> >><br>
>> >> Thanks for the help,<br>
>> >> Ilya<br>
>> >> _______________________________________________<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/listinfo/q-e-developers</a><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > Paolo Giannozzi, Dept. Chemistry&Physics&Environment,<br>
>> > Univ. Udine, via delle Scienze 208, 33100 Udine, Italy<br>
>> > Phone <a href="tel:%2B39-0432-558216" value="+390432558216">+39-0432-558216</a>, fax <a href="tel:%2B39-0432-558222" value="+390432558222">+39-0432-558222</a><br>
>> ><br>
>> > _______________________________________________<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/listinfo/q-e-developers</a><br>
>> ><br>
>><br>
>> _______________________________________________<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/listinfo/q-e-developers</a><br>
>><br>
><br>
><br>
><br>
> --<br>
> Paolo Giannozzi, Dept. Chemistry&Physics&Environment,<br>
> Univ. Udine, via delle Scienze 208, 33100 Udine, Italy<br>
> Phone <a href="tel:%2B39-0432-558216" value="+390432558216">+39-0432-558216</a>, fax <a href="tel:%2B39-0432-558222" value="+390432558222">+39-0432-558222</a><br>
><br>
> _______________________________________________<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/listinfo/q-e-developers</a><br>
><br>
_______________________________________________<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/listinfo/q-e-developers</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><span><span><font color="#888888">Paolo Giannozzi, Dept. Chemistry&Physics&Environment,<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></font></span></span></div></div></div></div>
</div>