我有R脚本,用于从不同文件中读取大量的CSV数据,然后执行诸如svm的机器学习任务以进行分类。
是否有任何库可用于R的服务器上的多个内核
?
或者
什么是最合适的方法?
我有R脚本,用于从不同文件中读取大量的CSV数据,然后执行诸如svm的机器学习任务以进行分类。
是否有任何库可用于R的服务器上的多个内核
?
或者
什么是最合适的方法?
Answers:
如果是在Linux上,那么最简单的就是multicore。除此之外,我建议您看一下MPI(尤其是对于Snow软件包)。
更笼统地说,看一下:
最后,我建议使用foreach包来提取代码中的并行后端。从长远来看,这将使其更加有用。
如果您使用的是GNU / Linux,那么Shane和Dirk先前的回答都很棒。
如果您需要Windows解决方案,那么本文中有一个解决方案:
尽管该软件包尚未在CRAN上。可以从该链接下载。
我注意到以前的答案缺少一些通用的HPC注意事项。
首先,这两个软件包都不会让您并行运行一个 SVM。因此,您可以加快参数优化或交叉验证的速度,但仍然必须为此编写自己的函数。或者,当然可以在不同情况下并行运行该作业。
第二个问题是记忆。如果要将计算分散到几台物理计算机上,则没有免费的午餐,您必须复制数据-在这里必须考虑在计算机之间预先分配数据副本以节省一些通信是否有意义。另一方面,如果您希望在一台计算机上使用多个内核,则比多内核特别合适,因为多内核使所有子进程都可以访问父进程的内存,因此可以节省一些时间和大量的内存空间。
sprint
用一个函数R psvm
,但他们背后紧跟R 3.0的变化和新的CRAN提交指南一点点,所以当前下载既不是可在CRAN或者与R 3.0完全兼容。你的旅费可能会改变。
Shane和Dirk的回应都是当场。
尽管如此,您可能想看看商业版本的R,称为Revolution R,该版本旨在处理大型数据集并在多个内核上运行。该软件对学者免费(我不知道这可能是您的情况)