The computationally most intense functions qProb.3d()
,
n.sim.cond.3d()
and reproduce.track.3d()
of
the package are also implemented in a parallel version. On Unix systems
this is done using a fork cluster. On Windows systems PSOCK cluster is
used.
Definition of start conditions and parameters:
Get movement characteristics (P
) from the example
trajectory and simulate a Unconditional Eprircal Random Walk (UERW) in
order to extract the attraction term (Q
):
<- get.track.densities.3d(niclas, heightDistEllipsoid = TRUE, DEM = dem)
P <- sim.uncond.3d(sim.locs*f, start = c(niclas$x[1], niclas$y[1], niclas$z[1]),
uerw a0 = a0, g0 = g0, densities = P)
The parallel version of the qProb.3d()
function can be
accessed by setting the parameter parallel = TRUE
:
<- qProb.3d(uerw, sim.locs, parallel = TRUE)
Q <- reproduce.track.3d(n.sim = 100, niclas, DEM = dem, parallel = TRUE) cerwList
And also for n.sim.uncond.3d()
:
<- n.sim.cond.3d(n.sim = 100, sim.locs, start=start, end=end,a0 = a0, g0 = g0,
cerwList densities=P, qProbs=Q, DEM = dem, parallel = TRUE)
Alternativly the number of nodes in the cluster can be specified by
passing a number to the function: parallel = 4
. In this
case a fork or PSOCK cluster with 4 nodes will be used. The maximum
number of nodes is not allowed to be larger than the number of available
cores (Hyper Threading included).
<- n.sim.cond.3d(n.sim = 100, sim.locs, start=start, end=end,a0 = a0, g0 = g0,
cerwList densities=P, qProbs=Q, DEM = dem, parallel = 4)
Note: If only a few tracks are simulated and the
track length is short sim.locs < 30
, then it is faster
in many cases to stay with the single core version of the function,
especially on Windows systems, where setting up clusters takes some
time.