在多个核心上运行不同的程序

时间:2012-09-27 14:42:46

标签: r snowfall

希望这是一个简单的问题,我忽略了答案,但在今天早上的搜索中,我一直没有结果。

我的计算机上有四个核心,并希望在多个核心上同时运行R中的不同程序(循环)。如果我打开四个R会话,它们会自动成为不同核心的位置,还是我需要找到一种方法来降雪?

我之前已成功使用降雪来运行相同的程序,但之前使用了不同的值。但降雪会让我在不同核心上运行完全不同的程序吗?我可以将每个模拟循环设置为不同的函数(即:func1,func2,func3,func4),然后降雪将每个函数分配给不同的核心吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

我不知道它是如何在不同的操作系统上,但在Windows上你的操作系统负责这一点。因此,您可以根据需要打开任意数量的R会话,并将它们分布在各个核心上(每个进程最多占用一个核心)。如果你打开的R会话多于你拥有的CPU,那么显然有些人将无法使用完整的CPU。

所以不需要在这里使用降雪。

答案 1 :(得分:3)

回答这个问题的最简单方法是:

  1. 创建四个功能,每个功能需要一两分钟才能运行
  2. 使用snowfall
  3. 查看您的CPU处理器使用情况。
  4. 但要回答你的问题,是的,它们将分布在各个核心。

    使用R 2.15

    附带的parallel软件包可能更容易