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
at x10::lang::CheckedThrowable::fillInStackTrace()
at x10aux::throwException(x10::lang::CheckedThrowable*)
at
at HelloWholeWorld::main(x10::array::Array<x10::lang::String*>*)
at x10aux::BootStrapClosure::__apply()
at x10::lang::VoidFun_0_0::__apply(x10::lang::VoidFun_0_0*)
at x10::lang::Activity::run()
at x10::lang::Runtime__Worker::loop()
at x10::lang::Runtime__Worker::__apply()
at x10::lang::Runtime__Pool::__apply(int)
at x10::lang::Runtime::start(x10::lang::VoidFun_0_0*)
at
at GC_inner_start_routine
at GC_call_with_stack_base
at
at clone
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)