Library
Module
Module type
Parameter
Class
Class type
enable_core_pinning ()
turn ON pinning worker processes to distinct cores; default is OFF. Must be called before run
. Worker processes are pinned to cores 0..(nprocs-1)
. Don't turn this ON on a shared computer with several users, or if you are running several parany-enabled jobs on the same computer.
disable_core_pinning ()
turn OFF core pinning. cf. enable_core_pinning
.
val run :
verbose:bool ->
csize:int ->
nprocs:int ->
demux:(unit -> 'a) ->
work:('a -> 'b) ->
mux:('b -> unit) ->
unit
run ~verbose:false ~csize:10 ~nprocs:16 ~demux:f ~work:g ~mux:h
will run in parallel on 16 cores the g
function. Inputs to function g
are produced by function f
and grouped by 10 (the chunk size csize
). The demux function f
must throw Parany.End_of_input
once it is done. Outputs of function g
are consumed by function h
. Functions f
and g
are run by different unix processes. Function g
is run by nprocs
processes at the same time. Only function mux
is run by the same process that called Parany.run
. A csize
of one should be the default. The optimal csize
depends on your computer, the functions you are using and the granularity of your computation. Elements which are fast to process may benefit from a csize
greater than one. verbose
is unused for the time being.
module Parmap : sig ... end
Wrapper module for near-compatibility with Parmap