<!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>