On Sunday 07 February 2010 10:12:42 pm Cunningham, David wrote:
> That looks like a bug I fixed in the last few months but I can't remember
>  whether I fixed it before or after the last release.  You might try doing
>  an SVN build of X10 or using the PGAS binaries for the svn release with
>  your version of X10.  The error comes from our transport layer which was
>  originally used just for UPC, and the error messages have not been changed
>  to reflect its more general use these days.  If you are using the MPI
>  backend then this should never have occured but I expect you are using
>  mpirun as a launcher to launch the PGAS backend which is not what we mean
>  by the MPI backend.  The MPI backend is a completely different codebase
>  and therefore has a different set of bugs :)
>  ________________________________________
> From: Christoph Pospiech [christoph.pospi...@de.ibm.com]
> Sent: 07 February 2010 06:25
> To: Cunningham, David
> Cc: x10-users@lists.sourceforge.net
> Subject: Re: [X10-users] DistributedRail
> 
> 
> David,
> 
> thanks for your hint to use clocks. Apparently, I am still using the
> DistributedRail class the wrong way. Following your hint to use the
>  collective operation like a "next" statement, I was calling it
>  "collectively" from every place. But this gives me an error message as
>  printed below. Could you please have a look ?
> 

David,

I just got a new X10DT (version 2.0.2) and picked up the trail again. It now 
compiles and runs to completion, but the result is unexpected. I was under the 
impression that "v_tmp.collectiveReduce(Int.+);" would add the values of v_tmp 
across the MPI tasks. The expected value is 0+1+2+3 = 6. The actual value is 
0.

So, apparently, something went wrong. Do you have an explanation ?

<map>
        <host name="sirius" slots="1" max_slots="0">
                <process rank="0"/>
                <process rank="1"/>
                <process rank="2"/>
                <process rank="3"/>
        </host>
</map>
<stdout rank="0">main: before ClockTest</stdout>
<stdout rank="2">Before next</stdout>
<stdout rank="3">Before next</stdout>
<stdout rank="0">Before next</stdout>
<stdout rank="1">Before next</stdout>
<stdout rank="1">After next</stdout>
<stdout rank="1">v_tmp(0)=1</stdout>
<stdout rank="3">After next</stdout>
<stdout rank="3">v_tmp(0)=3</stdout>
<stdout rank="2">After next</stdout>
<stdout rank="2">v_tmp(0)=2</stdout>
<stdout rank="0">After next</stdout>
<stdout rank="0">v_tmp(0)=0</stdout>
<stdout rank="0">After finish</stdout>
<stdout rank="0">v_tmp(0)=0</stdout>
<stdout rank="0">main: after ClockTest</stdout>

-- 

Mit freundlichen Grüßen / Kind regards

Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone:  +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: christoph.pospi...@de.ibm.com
-------------------------------------
IBM Deutschland GmbH
Vorsitzender des Aufsichtsrats: Erich Clementi 
Geschäftsführung: Martin Jetter (Vorsitzender), 
Reinhard Reschke, Christoph Grandpierre, 
Klaus Lintelmann, Michael Diemer, Martina Koederitz 
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB 
14562 WEEE-Reg.-Nr. DE 99369940

import x10.util.DistributedRail;

public class Hello {
        def ClockTest() {
                val c = Clock.make();
                val v_tmp:DistributedRail[Int]
                = new DistributedRail[Int](4,
                                (i:Int) => {(0) as Int});
                finish {
                        for (p in Place.places ) {
                                async (p) clocked (c) {
                                        for (var k:Int=0; k<4; k++) {
                                                v_tmp(k) = p.id();
                                        }
                                        Console.OUT.println("Before next");
                                        next;
                                        Console.OUT.println("After next");
                                        
Console.OUT.println("v_tmp(0)="+v_tmp(0));
                                        next;
                                        v_tmp.collectiveReduce(Int.+);
                                }
                        }
                        c.drop();
                }
                Console.OUT.println("After finish");
                Console.OUT.println("v_tmp(0)="+v_tmp(0));
        }
        
    public static def main(var args: Rail[String]!) {
         Console.OUT.println("main: before ClockTest");
         var h:Hello! = new Hello();
         h.ClockTest();
         Console.OUT.println("main: after ClockTest");
    }
}
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to