<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">Dear QE developers,</div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">I have a question concerning the pool-parallelization for linear response calculations, in particular in ph.x and hp.x. </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue"; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">Due to symmetry, every q-point has potentially a different number of k-points (and k+q), and there are different maximal number of pools one could parallelize over for the associated nscf calculation. Ideally, one would choose -npools equal to the number of k-points of every individual q. However, currently -npools is limited to the number of k-points of the preceding SCF calculation, which usually has the lowest number of kpoints. </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue"; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">In fact, the bottleneck stems from when the wavefunction is read from the SCF calculation through "PW/src/read_file_new.f90”. There, "divide_et_impera” is called which fails if -npools is larger than nkstot from the SCF. Later, for the nscf calculation, the nkstot increases and “divide_et_impera” will happily parallelize over larger -npools. <br class="">
<br class="">
Now my question is, can we circumvent the limitation of the number of pools when reading the wave function? Or can we call that specific part with a lower number of pools (i.e., min(npools, nkstot)), and later switch back to the intended pool size for every q-point?</div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue"; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">I believe implementing this feature would help run linear response calculations much more efficiently with very large number of MPI tasks.</div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue"; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">Thanks you very much</div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue"; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Helvetica Neue";" class="">Max Amsler</div></body></html>