.. _interface-asynchronous:

""""""""""""
asynchronous
""""""""""""


Specify local evaluation or analysis concurrency



**Topics**


concurrency_and_parallelism


.. toctree::
   :hidden:
   :maxdepth: 1

   interface-asynchronous-evaluation_concurrency
   interface-asynchronous-local_evaluation_scheduling
   interface-asynchronous-analysis_concurrency


**Specification**

- *Alias:* None

- *Arguments:* None

- *Default:* synchronous interface usage


**Child Keywords:**

+-------------------------+--------------------+---------------------------------+-----------------------------------------------+
| Required/Optional       | Description of     | Dakota Keyword                  | Dakota Keyword Description                    |
|                         | Group              |                                 |                                               |
+=========================+====================+=================================+===============================================+
| Optional                                     | `evaluation_concurrency`__      | Determine how many concurrent evaluations     |
|                                              |                                 | Dakota will schedule                          |
+----------------------------------------------+---------------------------------+-----------------------------------------------+
| Optional                                     | `local_evaluation_scheduling`__ | Control how local asynchronous jobs are       |
|                                              |                                 | scheduled                                     |
+----------------------------------------------+---------------------------------+-----------------------------------------------+
| Optional                                     | `analysis_concurrency`__        | Limit the number of analysis drivers within   |
|                                              |                                 | an evaluation that Dakota will schedule       |
+----------------------------------------------+---------------------------------+-----------------------------------------------+

.. __: interface-asynchronous-evaluation_concurrency.html
__ interface-asynchronous-local_evaluation_scheduling.html
__ interface-asynchronous-analysis_concurrency.html



**Description**


The optional ``asynchronous`` keyword specifies use of asynchronous
protocols (i.e., background system calls, nonblocking forks, POSIX
threads) when evaluations or analyses are invoked. Evaluation and
analysis concurrency can be independently controlled, as can the
scheduling mode (static vs. dynamic) of the local evaluations.

*Default Behavior*


- when running Dakota on a single processor in ``asynchronous`` mode, the default concurrency of evaluations and analyses is all concurrency that is available. The ``evaluation_concurrency`` and ``analysis_concurrency`` specifications can be used to limit this concurrency in order to avoid machine overload or usage policy violation.
- when running Dakota on multiple processors in message passing mode, the default concurrency of evaluations and analyses on each of the servers is one (i.e., the parallelism is exclusively that of the message passing). With the ``evaluation_concurrency`` and ``analysis_concurrency`` specifications, a hybrid parallelism can be selected through combination of message passing parallelism with asynchronous parallelism on each server.


