The computationally most intense functions
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 (
P <- get.track.densities.3d(niclas, heightDistEllipsoid = TRUE, DEM = dem) uerw <- sim.uncond.3d(sim.locs*f, start = c(niclas$x, niclas$y, niclas$z), a0 = a0, g0 = g0, densities = P)
The parallel version of the
qProb.3d() function can be accessed by setting the parameter
parallel = TRUE:
Q <- qProb.3d(uerw, sim.locs, parallel = TRUE) cerwList <- reproduce.track.3d(n.sim = 100, niclas, DEM = dem, parallel = TRUE)
And also for
cerwList <- n.sim.cond.3d(n.sim = 100, sim.locs, start=start, end=end,a0 = a0, g0 = g0, 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).
cerwList <- n.sim.cond.3d(n.sim = 100, sim.locs, start=start, end=end,a0 = a0, g0 = g0, 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.