Ceci est une ancienne révision du document !
Evaluation Queue
The EvaluatorControl
manages the evaluations. It has a queue of EvalQueuePoints
which are points that need to be evaluated. The points are generated by SearchMethods
, PollMethods
, or other Steps
derived from IterationUtils
. The EvaluatorControl
also handles the Evaluator(s).
The queue is implemented by a vector.
Points may be ordered before evaluation. This is useful for opportunistic evaluation, more so when there is little CPU available (few threads for OpenMP).
There are multiple sorting criteria: DIR_LAST_SUCCESS
, LEXICOGRAPHICAL
, RANDOM
, SURROGATE
; others like QUAD_MODEL
should be added. See parameter EVAL_QUEUE_SORT
.
The default is DIR_LAST_SUCCESS
.
The way the EvaluatorControl
is implemented, the points at the end of the vector are evaluated first - they have the greatest priority.
Points are taken by threads for evaluation. As soon as a thread is done evaluating a point, it is free, and it pops the next point in the queue.
bla, bla, bla…
(more to be added).
Ignore remaining lines, this is brouillon:
Quand le point est évalué, des valeurs sont mises à jour : - L’évaluation du point dans la cache; - Les membres de l’EvaluatorControl, comme le
nombre d’évaluations
- Les stats pour l’affichage - Et si l’opportunisme est utilisé, un succès arrête les
évaluations. Les évaluations déjà commencées vont se terminer, mais aucune nouvelle évaluation ne sera débutée.
Quand les évaluations sont terminées, à cause d’une Condition d’arrêt, un seul thread (le main thread) sort De la fonction run de l’EvaluatorControl. Les autres threads Continuent à rouler dans la fonction run en attendant de nouveaux points À évaluer.
Dans le cas de PSD-Mads, on a un main thread par Sous-problème, plus d’autres threads secondaires Qui ne sont utilisés que pour des évaluations.