Hi,

I'll let Dave Cunningham comment on the GPU part, but I'd guess that the 
IndexedMemoryChunk is the one you get from [a local] Array.raw() and 
raw_len allows you to address a subset of the chunk.

Your region literals also need to be 0..(n-1) rather than 0..n-1, now (if 
you're using trunk) or in the future (in an upcoming release), per some 
recent changes in trunk.

Minor




From:   Christoph Pospiech <christoph.pospi...@de.ibm.com>
To:     Mailing list for users of the X10 programming language 
<x10-users@lists.sourceforge.net>
Date:   01/03/2011 06:16 AM
Subject:        Re: [X10-users] array question



On Friday, December 17, 2010, Josh Milthorpe wrote:
> Have a look at the RemoteArray class and the Array.copy(...) and 
> Array.asyncCopy(...) methods.  These support a variety of patterns of 
> local and remote updates - hopefully one of them matches your 
requirement.
> 
> Cheers,
> 
> Josh

Josh (et. al.),

I have just looked at the RemoteArray class, because I need to do a remote 

copy, but this class remains a mystery to me.

It appears that RemoteArray has two constructors,
-  RemoteArray(Array<T> a)
-  RemoteArray(Place gpu, Region reg, IndexedMemoryChunk<T> raw, Int 
raw_len) 

The second (as the Place variable is suspiciously called "gpu") appears to 
be 
designed with GPGPU usage in mind. It is quite unclear to me how to 
specify an 
IndexedMemoryChunk. Does this need to be allocated first (via 
IndexedMemoryChunk.allocate() ) ? On which place ? And how do I determine 
the 
raw_len ?

The first constructor appears to be able to turn any Array into a 
RemoteArray, 
if the constructor is called at the place where the Array lives.

Now I tried the following.
                                 finish ateach(pt in Dv_tmp ) {
                                        val v_1 = new 
Array[Double]((0..n-1),(0.0) as Double); 
                                        v_src(pt) = RemoteArray(v_1);
                                        val v_2 = new 
Array[Double]((0..n-1),(0.0) as Double);
                                        v_dst(pt) = RemoteArray(v_2);
[...some code deleted ...]
                                 }

x10c++ v2.1 complained about this with the following messages.
/home/cp/xample/MatMul/mm_X10/src/matmul.x10:100: Method or static 
constructor 
not found for given call. 
         Call: RemoteArray(x10.array.Array[x10.lang.Double]{self==v_1, 
v_1.region.rect==true, v_1.region.rank==1, v_1.region.zeroBased==true, 
v_1!=null})
/home/cp/xample/MatMul/mm_X10/src/matmul.x10:102: Method or static 
constructor 
not found for given call. 
         Call: RemoteArray(x10.array.Array[x10.lang.Double]{self==v_2, 
v_2.region.rect==true, v_2.region.rank==1, v_2.region.zeroBased==true, 
v_2!=null})
/home/cp/xample/MatMul/mm_X10/src/matmul.x10:174-175: No valid method call 

found for call in given type. 

Can anyone explain these mysteries to me ?

-- 

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, Dieter Scholz,
Gregor Pillen, Michael Diemer, Martina Koederitz 
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, 
HRB 
14562 WEEE-Reg.-Nr. DE 99369940

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, 
and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users



------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to