public abstract class MultithreadedPsdEvaluator extends AbstractPsdEvaluator implements IFinishListener, IIntervalListener
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.Semaphore |
evalationComplete |
private int |
finishedSimulation |
protected static int |
FPS_GRAPHICS |
private int |
numThreads |
private PsdSignature2D[] |
psds |
private double[] |
times |
protected KmcWorker[] |
workers |
Constructor and Description |
---|
MultithreadedPsdEvaluator(int repeats,
int measureInterval,
int numThreads,
java.util.Set flags) |
Modifier and Type | Method and Description |
---|---|
private void |
addToPsd(int workId,
float[][] surface) |
private void |
assignNewWork(int workerId) |
private double[] |
calculateDifferenceWithRealPsd() |
float[][] |
calculatePsdFromIndividual(Individual i) |
private void |
calculatePsdOfPopulation(Population p) |
void |
dispose() |
double[] |
evaluate(Population p) |
private double |
evaluateIndividual(int individualPos) |
void |
handleSimulationFinish(int workerID,
int workID) |
void |
handleSimulationIntervalFinish(int workerId,
int workId) |
private void |
storeSimulationTimes(Population p) |
calculateFrobeniusNormErrorMatrix, calculateHierarchyError, calculateHierarchyErrorDiscrete, calculateHierarchyErrorFromReference, getCurrentDifference, getCurrentError, getCurrentIteration, getCurrentPopulation, getCurrentPsd, getCurrentSimulation, getIndividualCount, getMeasureInterval, getProgressPercent, getPsdSizeX, getPsdSizeY, getRepeats, getSimulationCount, hasKmcFailed, kmcHasFailed, resetKmcError, setCurrentPopulation, setCurrentSimulation, setExpectedSimulationTime, setHierarchy, setPsd, setPsdSizeX, setPsdSizeY, setRepeats
getSurface, getWheight, setShowGraphics, setWheight, showGraphics
protected static final int FPS_GRAPHICS
private PsdSignature2D[] psds
private double[] times
protected KmcWorker[] workers
private final int numThreads
private int finishedSimulation
private final java.util.concurrent.Semaphore evalationComplete
public MultithreadedPsdEvaluator(int repeats, int measureInterval, int numThreads, java.util.Set flags)
public void handleSimulationFinish(int workerID, int workID)
handleSimulationFinish
in interface IFinishListener
public void handleSimulationIntervalFinish(int workerId, int workId)
handleSimulationIntervalFinish
in interface IIntervalListener
private void addToPsd(int workId, float[][] surface)
private void assignNewWork(int workerId)
public void dispose()
dispose
in class AbstractEvaluator
public double[] evaluate(Population p)
evaluate
in interface IEvaluation
evaluate
in class AbstractPsdEvaluator
public float[][] calculatePsdFromIndividual(Individual i)
calculatePsdFromIndividual
in class AbstractPsdEvaluator
private double[] calculateDifferenceWithRealPsd()
private double evaluateIndividual(int individualPos)
private void calculatePsdOfPopulation(Population p)
private void storeSimulationTimes(Population p)