|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
es.udc.gii.common.eaf.algorithm.operator.evaluate.EvaluationOperator
es.udc.gii.common.eaf.algorithm.parallel.operator.MasterSlaveEvaluationOperator
public abstract class MasterSlaveEvaluationOperator
Nested Class Summary | |
---|---|
private class |
MasterSlaveEvaluationOperator.CommunicationThread
|
Field Summary | |
---|---|
private java.util.concurrent.CyclicBarrier |
barrier
Barrier for synchronizing the threads. |
private int[] |
chunkIndex
Stores the first index of a chunk for each process. |
private int |
chunkSize
|
private boolean |
commThreadMustWait
|
private java.lang.Thread |
communicationThread
The communication thread. |
protected boolean |
finished
|
private int |
firtstInd
Pointer to the first not operated individual. |
private java.util.List<Individual> |
individualsToOperate
The individuals to be operated. |
private static int |
NO_CHUNK
Special value for process with no chunk in chunkIndex . |
private int |
operatedIndividuals
Number of operated individuals so far. |
private EvaluationOperator |
operator
|
private int |
popSize
The amount of individuals for the operation. |
private MSTopology |
topology
|
Constructor Summary | |
---|---|
MasterSlaveEvaluationOperator()
|
|
MasterSlaveEvaluationOperator(EvaluationOperator operator,
int chunkSize)
|
Method Summary | |
---|---|
void |
configure(org.apache.commons.configuration.Configuration conf)
|
void |
finish()
|
private java.util.List<Individual> |
getChunk(int forRank)
Retrives a chunk from the not operated part of the individual's list. |
int |
getChunkSize()
|
java.util.List<Individual> |
getIndividualsToEvaluate()
|
EvaluationOperator |
getOperator()
|
MSTopology |
getTopology()
|
boolean |
isFinished()
|
boolean |
isMaster()
|
protected void |
master(EvolutionaryAlgorithm alg,
java.util.List<Individual> individuals)
|
java.util.List<Individual> |
operate(EvolutionaryAlgorithm alg,
java.util.List<Individual> individuals)
Evaluates a list of individiduals. |
private void |
operationThread(EvolutionaryAlgorithm alg)
|
void |
reset()
Resets this object. |
private void |
setChunk(int fromRank,
java.util.List<Individual> operated)
Sets an operated chunk in the place where it belongs within the individuals list. |
void |
setChunkSize(int chunkSize)
|
void |
setOperator(EvaluationOperator operator)
|
void |
setTopology(MSTopology topology)
|
protected void |
slave(EvolutionaryAlgorithm alg)
|
Methods inherited from class java.util.Observable |
---|
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private EvaluationOperator operator
private MSTopology topology
private int chunkSize
private int popSize
private java.util.concurrent.CyclicBarrier barrier
private int[] chunkIndex
private java.util.List<Individual> individualsToOperate
private int firtstInd
private static final int NO_CHUNK
chunkIndex
.
private int operatedIndividuals
private transient java.lang.Thread communicationThread
private transient boolean commThreadMustWait
protected boolean finished
Constructor Detail |
---|
public MasterSlaveEvaluationOperator(EvaluationOperator operator, int chunkSize)
public MasterSlaveEvaluationOperator()
Method Detail |
---|
private void operationThread(EvolutionaryAlgorithm alg)
private java.util.List<Individual> getChunk(int forRank)
forRank
- - rank of the process which is going to evaluate the chunk.
private void setChunk(int fromRank, java.util.List<Individual> operated)
fromRank
- - rank of the process who has operated the chunkoperated
- - the operated individualsprotected void master(EvolutionaryAlgorithm alg, java.util.List<Individual> individuals)
protected void slave(EvolutionaryAlgorithm alg)
public void finish()
public java.util.List<Individual> operate(EvolutionaryAlgorithm alg, java.util.List<Individual> individuals)
alg
- the current algorithm, to visit when it is necessary.individuals
- list of individuals on wich we will apply the operator.
public void reset()
public int getChunkSize()
public void setChunkSize(int chunkSize)
public boolean isMaster()
public boolean isFinished()
public java.util.List<Individual> getIndividualsToEvaluate()
public EvaluationOperator getOperator()
public void setOperator(EvaluationOperator operator)
public MSTopology getTopology()
public void setTopology(MSTopology topology)
public void configure(org.apache.commons.configuration.Configuration conf)
configure
in interface Configurable
configure
in class EvaluationOperator
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |