<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 3, 2015 at 10:16 PM, Ilya Ryabinkin <span dir="ltr"><<a href="mailto:igryabinkin@gmail.com" target="_blank">igryabinkin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
I call get_nacs() subroutine from subroutine verlet(), in particular,<br>
past the line 229 of dynamics_module.f90, if the  matters.<br></blockquote><div><br></div><div>it matters. Subroutine verlet is called only by processor 0 ("ionode"), so if you try to do anything in parallel inside it, it will hang for sure. What is not parallel is often done on a single processor, results are then broadcast to the other processors. Why, it is explained in Sec.8.3. of the developer manual<br><br></div><div>Paolo<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> There isn't anything obviously wrong in your piece of code. Is it inside a<br>
> modified version of pw.x, or is it stand-alone? in the latter case, there<br>
> might be some missing initialization.<br>
<br>
</span>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>
<div class="HOEnZb"><div class="h5"><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 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>
</div></div><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></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></div>