Hi,

The right place to unilaterally halt the computation is MasterCompute, of which 
only one instance exists for the whole job.
I haven't had any experience with aggregators yet, but you should be able to 
read their values from inside MasterCompute#compute().

Alessandro

From: Etienne Dumoulin 
<[email protected]<mailto:[email protected]>>
Reply-To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Date: Sunday, July 22, 2012 9:16 PM
To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: How to use an aggregator to halt ?

Hi everyone,

I implement a pagerank very similar to the one given
in the example package.

However I would like to do a halt condition with an aggregator:
I am calculating the sum of all the vertex values at each step.
I am stopping when the average of the difference is bellow a certain
point.

So I have extended a WorkerContext class. It does not look like
I can stop the process from the method postSuperStep(), so I try
to set a boolean somewhere readable by the vertex.
Where can I set it?

-I tried to do a getWorkerContext, cast into my type and then call my own 
method:
if ( ((MyWorkerContext)getWorkerContext()).isEnd();
    ) {
       voteToHalt();
}else{...
}

-I tried to set a boolean into the Configuration from the WorkerContext and
get it back into the Vertex.
if ( getWorkerContext().getContext().getConfiguration().getBoolean("end", false)
    ) {
       voteToHalt();
}else{...
}

Thanks,

Etienne

Reply via email to