> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Concurrency Limits

<a id="concurrency-limits" />

## Concurrency Limits

The `max_concurrency_per_node` setting is available in the `options` map of
the [/create/proc](/content/api/rest/create_proc_rest). This option allows you to define a per-*Kinetica*-
host concurrency limit for a *UDF*, i.e. no more than *n* OS processes (*UDF*
instances) in charge of evaluating the *UDF* will be permitted to execute
concurrently on a single *Kinetica* host. You may want to set a concurrency
limit if you have limited resources (like GPUs) and want to avoid the risks of
continually exhausting your resources. This setting is particularly useful for
distributed *UDFs*, but it will also work for non-distributed *UDFs*.

<Info>
  You can also set concurrency limits on the **Edit Proc**
  screen in the **UDF** section of
  [GAdmin](/content/admin/gadmin/udf)
</Info>

The default value for the setting is *0*, which results in no limits. If you set
the value to *4*, only *4* instances of the *UDF* will be queued to execute the
*UDF*. This holds true across *all* invocations of the proc; this means that
even if [/execute/proc](/content/api/rest/execute_proc_rest) is called eight times, only *4*
processes will be running. Another instance will be queued as soon as one
instance finishes processing. This process will repeat, only allowing *4*
instances of the *UDF* to run at a time, until all instances have completed or
the *UDF* is killed.
