Hi Dave,

The simple example works just fine.
In the original code (using ateach over places), it only works for single
place execution.
With multiple places it doesn't get passed the finish(myMulReducer) block,
(half the times it gives seg fault).

Tracing back the files that use Complex I added appropriate lines in
x10.runtime/x10rt/include/{x10rt_cpp.h, x10rt_types.h,
x10_x10rt_TeamSupport.h}. Still no change.

I assume this is a serialisation related problem.Could it be my
naive implementation of hashCode(basic_functions)?
(currently using the hash of the int part of the mpz number)

Please advice. And thank you for your time.

Regards,
Konstantina



2014-06-13 0:11 GMT+01:00 David P Grove <gro...@us.ibm.com>:

> Konstantina Panagiotopoulou <kwno...@hotmail.com> wrote on 06/12/2014
> 05:50:41 PM:
>
> >
> > Hello Dave,
> >
> > I am trying to use my Mpz type inside a collective finish.
> > I have added a MulReducer<T> struct in Reducible.x10
> > but my program is failing either silently or with "Place 0 exited
> > unexpectedly with signal: Segmentation fault"
> >
> > Here is a summary of the code:
> >
> > val finalSum =  finish(myMulReducer()){
> > ateach (z in D_Base) {
> > //calculate myFact - partial factorial in this place
> > offer myFact; //******failing here
> >                     }
> > };
> > return finalSum;
> > //......
> >
> >               static struct myMulReducer implements Reducible[Mpz] {
> >         public def zero() = Mpz(0);
> >         public operator this(a:Mpz, b:Mpz) = (a * b);
> > }
> >
> > Is the offer causing the problem? Also tried to write partial
> > results in a DistArray and used reduce function, in which case I get
> > a Termination error
> >
>
> Hi,
>
>  I guess the first thing to check is that there isn't some
> compiler/runtime bug or bad interaction with invoking the () operator on
> myMulReducer.
>
>  If you write a simpler program that creates a myMulReducer and invokes ()
> a few times, does it get the right answer or crash?
>
>  Some snippet like:
>
>  val red:Reducible[Mpz] = myMulReducer();
>  val v1 = Mpz(10);
>  val v2 = Mpz(20);
>  val v3 = myMulReducer(v1,v2);
>
>  might be enough to test basic functionality and see if you can get a
> crash in a simpler piece of code.
>
> --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
>
>
------------------------------------------------------------------------------
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