mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-06 03:05:30 -05:00
document how many threads are used for work in Ws_pool
This commit is contained in:
parent
75e528413b
commit
0959004b11
2 changed files with 14 additions and 10 deletions
|
|
@ -29,10 +29,8 @@ val create : (unit -> t, _) create_args
|
||||||
(** [create ()] makes a new thread pool.
|
(** [create ()] makes a new thread pool.
|
||||||
@param on_init_thread
|
@param on_init_thread
|
||||||
called at the beginning of each new thread in the pool.
|
called at the beginning of each new thread in the pool.
|
||||||
@param min
|
@param num_threads
|
||||||
minimum size of the pool. See {!Pool.create_args}. The default is
|
number of worker threads. See {!Ws_pool.create} for more details.
|
||||||
[Domain.recommended_domain_count()], ie one worker per CPU core. On OCaml
|
|
||||||
4 the default is [4] (since there is only one domain).
|
|
||||||
@param on_exit_thread called at the end of each worker thread in the pool.
|
@param on_exit_thread called at the end of each worker thread in the pool.
|
||||||
@param name name for the pool, used in tracing (since 0.6) *)
|
@param name name for the pool, used in tracing (since 0.6) *)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
(** Work-stealing thread pool.
|
(** Work-stealing thread pool.
|
||||||
|
|
||||||
A pool of threads with a worker-stealing scheduler. The pool contains a
|
A pool of threads with a worker-stealing scheduler. The pool contains a
|
||||||
fixed number of threads that wait for work items to come, process these, and
|
fixed number of worker threads that wait for work items to come, process
|
||||||
loop.
|
these, and loop.
|
||||||
|
|
||||||
This is good for CPU-intensive tasks that feature a lot of small tasks. Note
|
This is good for CPU-intensive tasks that feature a lot of small tasks. Note
|
||||||
that tasks will not always be processed in the order they are scheduled, so
|
that tasks will not always be processed in the order they are scheduled, so
|
||||||
|
|
@ -15,8 +15,8 @@
|
||||||
in it to stop (after they finish their work), and wait for them to stop.
|
in it to stop (after they finish their work), and wait for them to stop.
|
||||||
|
|
||||||
The threads are distributed across a fixed domain pool (whose size is
|
The threads are distributed across a fixed domain pool (whose size is
|
||||||
determined by {!Domain.recommended_domain_count} on OCaml 5, and simply the
|
determined by {!Domain.recommended_domain_count}. See {!create} for more
|
||||||
single runtime on OCaml 4). *)
|
details. *)
|
||||||
|
|
||||||
include module type of Runner
|
include module type of Runner
|
||||||
|
|
||||||
|
|
@ -36,8 +36,14 @@ val create : (unit -> t, _) create_args
|
||||||
@param num_threads
|
@param num_threads
|
||||||
size of the pool, ie. number of worker threads. It will be at least [1]
|
size of the pool, ie. number of worker threads. It will be at least [1]
|
||||||
internally, so [0] or negative values make no sense. The default is
|
internally, so [0] or negative values make no sense. The default is
|
||||||
[Domain.recommended_domain_count()], ie one worker thread per CPU core. On
|
[Domain.recommended_domain_count()], ie one worker thread per CPU core.
|
||||||
OCaml 4 the default is [4] (since there is only one domain).
|
|
||||||
|
Note that specifying [num_threads=n] means that the degree of parallelism is
|
||||||
|
at most [n]. This behavior is different than the one of [Domainslib], see
|
||||||
|
https://github.com/c-cube/moonpool/issues/41 for context.
|
||||||
|
|
||||||
|
If you want to use all cores, use [Domain.recommended_domain_count()].
|
||||||
|
|
||||||
@param on_exit_thread called at the end of each thread in the pool
|
@param on_exit_thread called at the end of each thread in the pool
|
||||||
@param name
|
@param name
|
||||||
a name for this thread pool, used if tracing is enabled (since 0.6) *)
|
a name for this thread pool, used if tracing is enabled (since 0.6) *)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue