我很高兴知道是否可以在机器上的多个处理器上运行像信封或MAD测试这样的spastat函数来加速计算?是否有任何文件或教程可以做到这一点?
谢谢。
答案 0 :(得分:0)
不幸的是,并行化不是spatstat
的集成部分,
而是留给用户。对于信封和MAD测试最简单
选项可能以较小的数量运行envelope
在每个核心上实现,然后使用结果组合
pool.envelope
。如何并行运行envelope
可能取决于您的
建立。一个简单的可能性是使用我知道的parallel::mclapply
在Linux上开箱即用,但更好的跨平台
CRAN包中肯定有替代品可供选择:
library(spatstat)
ppplist <- replicate(4, cells, simplify = FALSE)
envlist <- parallel::mclapply(ppplist, spatstat::envelope, savefuns = TRUE, nsim = 10)
envfinal <- do.call(pool, envlist)
envfinal
#> Pointwise critical envelopes for K(r)
#> and observed value for 'X[[i]]'
#> Obtained from 40 simulations of CSR
#> Alternative: two.sided
#> Significance level of pointwise Monte Carlo test: 2/41 = 0.0488
#> .....................................................................
#> Math.label Description
#> r r distance argument r
#> obs hat(K)[obs](r) observed value of K(r) for data pattern
#> theo K[theo](r) theoretical value of K(r) for CSR
#> lo hat(K)[lo](r) lower pointwise envelope of K(r) from simulations
#> hi hat(K)[hi](r) upper pointwise envelope of K(r) from simulations
#> .....................................................................
#> Default plot formula: .~r
#> where "." stands for 'obs', 'theo', 'hi', 'lo'
#> Columns 'lo' and 'hi' will be plotted as shading (by default)
#> Recommended range of argument r: [0, 0.25]
#> Available range of argument r: [0, 0.25]