<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
It seems to be working. I've tested it for
$WIENROOT/example_struct_files/cd16te15sb.struct on 1 node with 8 cpus.<br>
<br>
Regards,<br>
Sergiu Arapan<br>
<br>
Robert Laskowski wrote:
<blockquote cite="mid:201001062210.21017.rolask@theochem.tuwien.ac.at"
 type="cite">
  <pre wrap="">Hi,
I agree iatm_proc_pack is "color" for MPI_Comm_split and according to the specification it should be non negative.
The idea behind the code around line 319

     if (jatom.le.nat.and.myid_vec.eq.0) then
        iatm_proc_pack=jatom_pe
     else if (jatom.le.nat) then
        iatm_proc_pack=nat+npe+jatom_pe
     else
        iatm_proc_pack=-(nat+npe+jatom_pe)
     endif

is to extract the first processors from suncommunicators used to split eigenvectors.
Only communicators that comes from  iatm_proc_pack=jatom_pe are used latter in the code,
but the rest must be separated. I suggest to change this part of the code to:

     if (jatom.le.nat.and.myid_vec.eq.0) then
        iatm_proc_pack=jatom_pe
     else if (jatom.le.nat) then
        iatm_proc_pack=nat+npe+jatom_pe
     else
        iatm_proc_pack=nat+npe+jatom_pe + npe       !!!! change
     endif

I do not have openmpi installed so please test it.

regards

Robert

 


On Tuesday 05 January 2010, Andres Saul wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Dear wien users:
   I can also confirm that there is a problem with lapw2_mpi and
openmpi for some specific combinations of
the number of atoms and number of processors. The same calculations
with mpich or hpmpi work fine.
   Looking at the source files I concluded that the problem was
related to using a negative second argument
in MPI_COMM_SPLIT in line 327 of l2main.F (wien2k v9.1).

   I have found that a simple dirty solution consisting in changing
line 319 from
         iatm_proc_pack=-(nat+npe+jatom_pe)
to
         iatm_proc_pack=10000-(nat+npe+jatom_pe)
   was enough to solve the problem. I my opinion the occurrence of the
error for a given number of atoms or specific number of processors is
related to the "if then else" structure around this line.

Regards
Andres Saul
_______________________________________________
Wien mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Wien@zeus.theochem.tuwien.ac.at">Wien@zeus.theochem.tuwien.ac.at</a>
<a class="moz-txt-link-freetext" href="http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien">http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien</a>


    </pre>
  </blockquote>
  <pre wrap=""><!---->


  </pre>
</blockquote>
<br>
</body>
</html>