2014-03-07 53 views
1

R新手,我需要使用spatstat包运行一些点模式分析。R中的多核处理Windows 7 x64

由于我的数据非常大,spatstat只使用四个内核中的一个内核,所以我想知道是否可以加速多线程处理过程。

我发现this paper,它提供了一个软件包,它可以转换spatstat的功能以用于并行环境。根据这篇论文,我首先需要安装Rmpi。

第一次,我遇到了msmpi.dll丢失的问题。安装a windows package后,我能RMPI装入R.

在这一点上,我觉得有什么不对的地方,因为它似乎并不认为RMPI正常工作:

> library(Rmpi) 
> mpi.spawn.Rslaves(nslaves=4) 
Erreur dans mpi.comm.spawn(slave = system.file("Rslaves64.cmd", package = "Rmpi"), : 
Other MPI error, error stack: 
MPI_Comm_spawn(106)..........: MPI_Comm_spawn(cmd="C:/Users/ddeltenre/Documents/R/win-  
library/3.0/Rmpi/Rslaves64.cmd", argv=0x000000000EC70C90, maxprocs=4, MPI_INFO_NULL, 
root=0, MPI_COMM_SELF, intercomm=0x000000000F44A878, errors=0x000000000E729AA8) failed 
MPID_Comm_spawn_multiple(314): Function not implemented 

我的问题是因此以下内容:

  1. 最重要的,即使我设法让RMPI工作,岂不是parspatstat 会工作,或做在Linux所有的东西 安装将是更容易?

  2. Rmpi​​是否真的被设计成允许多核处理?

  3. 是否可以在Windows 7 x64上使用Rmpi?

  4. 安装Windows软件包之前,我跟着这个教程 (www.stats.uwo.ca/faculty/yu/Rmpi/windows.htm),以为那就是 要走的路。虽然我删除了MPICH(我没有解决问题), 它可以影响Rmpi的行为吗?

您的帮助非常感谢

+0

您是否将'parallels'软件包看作是运行多核的替代方法? –

+0

不是。原因是因为关于parspatstat的文章只讲Rmpi。我的目标只是能够使用这个软件包,而不是使用多个核心创建自定义函数。 – Damien

回答

0

看来,MPICH2是推荐的Windows MPI分布,所以我也建议你使用它。要安装并运行所有内容可能并不容易,但如果您使用推荐的分发版本,从别人那里获得帮助会容易得多。

我希望你能在Windows上使用MPICH2/Rmpi​​获得“parspatstat”,它可以让你使用多个内核,但可能很难。如果您有选择,我肯定会推荐使用Linux,尤其是基于Debian的发行版,它对Rmpi有极好的支持。

尽管MPI主要面向多机器(如群集)使用,但大多数实现都支持在多核机器上运行。尽管如此,在花费很长时间试图在Windows上工作之前,可能需要在Linux机器上测试“parspatstat”。

+0

非常感谢您的明确回复。我肯定会遵循你的建议,并尝试在Linux上的一切。 – Damien