local_evaluation_scheduling
Control how local asynchronous jobs are scheduled
Topics
concurrency_and_parallelism
Specification
Alias: None
Arguments: None
Default: dynamic
Child Keywords:
Required/Optional |
Description of Group |
Dakota Keyword |
Dakota Keyword Description |
---|---|---|---|
Required (Choose One) |
Scheduling Mode |
Dynamic local scheduling (sequential) |
|
Static local scheduling (tiled) |
Description
When performing asynchronous local evaluations, the local_evaluation_scheduling keyword controls how new evaluation jobs are dispatched when one completes.
The two options are:
dynamic
static
If the local_evaluation_scheduling is specified as dynamic (the default), each completed evaluation will be replaced by the next in the local evaluation queue.
If local_evaluation_scheduling is specified as static, each completed
evaluation will be replaced by an evaluation number that is congruent
modulo the evaluation_concurrency. This is helpful for relative node
scheduling as described in dakota/share/dakota/examples/parallelism
. For example,
assuming only asynchronous local concurrency (no MPI), if the local
concurrency is 6 and job 2 completes, it will be replaced with job 8.
For the case of hybrid parallelism, static local scheduling results in evaluation replacements that are modulo the total capacity, defined as the product of the evaluation concurrency and the number of evaluation servers. Both of these cases can result in idle processors if runtimes are non-uniform, so the default dynamic scheduling is preferred when relative node scheduling is not required.