Stefan Gavranovic <master308...@gmail.com> wrote on 06/22/2014 12:10:03 PM:
>
> I'm new to x10, so could you help me a little bit with this problem,
> I'm confused a bit. The code with first distribution runs fine,
> while the second, there is an error which I pasted below.
> Code 1 - first distribution val D1= Dist.makeBlock((1..3)*(1..2)*(0..3),
0);
> Code 2 - second distribution val D2= Dist.makeBlockCyclic
((1..3)*(1..2)*(0..3), 0, 1);
> Error for second distribution is:
>
> Uncaught exception at place 0: x10.lang.MultipleExceptions
> x10.lang.UnsupportedOperationException


Hi,

        Apologies for the less than optimal error message.  A while ago we
did a re-implementation of the x10.regionarray Dist classes and ended up
deciding to eliminate support for BlockCyclic distributions from the set of
predefined distributions.  At the time, this was going to be a temporary
change so we left the Dist.makeBlockCyclic method in place and put a "throw
UnsupportedOperationException()" in as the body.  A couple of years later,
it hasn't actually been so temporary so I will cleanup the Dist API for the
next release of X10.

        What is actually provided in x10.regionarray is ConstantDist (map all
points to 1 Place), BlockDist, and BlockBlockDist.


> And one more question, is there a way to distribute the array in
> such way that different places will get blocks of different sizes.
> For example: If we have region (0..2), can we distribute it in such
> way that place 0 will get the block of size 0(nothing), place 1 will
> get the block of size 1(point 0 ), and place 2 will get the block of
> size 2(points 1 and 2)

        There isn't a built in distribution that does this, but the design
point of x10.regionarray is to make it possible for DistArray's to be
defined over arbitrary user-provided Dist subclasses.  If you define a
x10.regionarray.Dist subclass in your own code that does this mapping of
Points in a Region to Places, and then define a DistArray using your Dist
subclass, it should work.

        One note is that x10.regionarray is designed for flexibility and as a
result doesn't provide high performance indexing operations.  For higher
performance, if you can you will want to use the x10.array package.   If
you're interested in the design of the X10 array libraries, we just had a
paper in the ARRAY'14 workshop at PLDI earlier this month.  The paper
hasn't hit the ACM Digital Library yet, but I can send you a copy of (off
list) if you want.

--dave
------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to