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

Reply via email to