刚刚安装了一台Windows,配备了两个64位英特尔至强X5680 3.33 GHz处理器(每个处理器6核)和12 GB内存。我一直在一些大型数据集上使用SAS,但它太慢了,所以我想设置R来进行并行处理。我希望能够执行矩阵运算,例如乘法和求逆。我的大多数数据不是很大,3-4 GB的范围,但一个文件大约是50 GB。自从我使用R已经有一段时间了,所以我在网络上四处寻找,包括CRAN HPC,看看有什么可用的。我认为foreach循环和bigmemory包将是适用的。我偶然发现了这个帖子:Is there a package for parallel matrix inversion in R,里面有一些有趣的建议。我想知道是否有人有使用HIPLAR软件包的经验。看起来hiparlm向矩阵包添加了功能,而hiplarb则完全添加了新功能。对于我的应用程序,哪些是推荐的?此外,还有对等离子体库的引用。这有什么帮助吗?我的矩阵有很多零,所以我认为它们可以被认为是稀疏的。我没有看到任何关于如何将数据从R传递到等离子体的例子,看着等离子体文档,它说它不支持稀疏矩阵,所以我想我不需要这个库。我是不是走对了路?对其他方法有什么建议吗?
编辑:看起来HIPLAR和package pbdr不会有帮助。我更倾向于bigmemory,尽管看起来I/O可能是个问题:http://files.meetup.com/1781511/bigmemoryRandLinearAlgebra_BryanLewis.pdf。本文讨论用于虚拟关联矩阵的包vam,但它必须是专有的。包f在这里会有什么帮助吗?我的R技能还不够新,不知道该往哪个方向走。我很确定我可以使用bigmemory来阅读,但不确定处理速度是否会很快。
发布于 2015-08-29 06:12:21
如果你想使用HiPLAR (R中的MAGMA和等离子类库),它目前只能在Linux上使用。对于这一点和其他许多事情,我建议你把你的操作系统换成企鹅。
也就是说,英特尔MKL优化可以为这类操作带来奇迹。对于大多数实际应用,这是一条必经之路。例如,使用MKL优化构建的Python处理大型矩阵的速度比专门为图像处理设计的IDL快20倍左右。类似地,R在使用MKL优化构建时也显示出巨大的改进。你也可以安装革命分析公司的R Open,它包括MKL优化,但我不确定它是否与使用英特尔工具:https://software.intel.com/en-us/articles/build-r-301-with-intel-c-compiler-and-intel-mkl-on-linux自己构建它有相同的效果。
我肯定会考虑要执行的操作类型。GPU进程是那些能够很好地实现高并行性的进程(许多相同的小计算同时运行,就像矩阵代数一样),但它们受到总线速度的限制。英特尔MKL优化与此类似,因为它可以帮助您使用所有CPU核心,但它实际上针对英特尔CPU体系结构进行了优化。因此,它还应该提供基本的内存优化。我认为这是最简单的路线。HiPLAR肯定是未来,因为它的设计是CPU-GPU,特别是随着高度并行的异构体系结构进入消费者系统。不过,我认为,今天的大多数消费者系统都不能充分利用这一点。
干杯,
亚当
https://stackoverflow.com/questions/23298134
复制相似问题