1

我有一台 Mac 10.8.5 (Mountain Lion)、2.6GHz Intel Core i7、8GB RAM、Netlogo 5.0.4、Rserve-Extension 0.1beta、R 版本 3.0.2 (2013-09-25) -- "Frisbee Sailing" .

我想运行我的 NetLogo 模型,它通过 Rserve-Extension 将变量发送到 R,使用 BehavSpace,这样我就可以同时使用至少 4 个内核运行它。

当我通过主界面(不使用 BehaviorSpace)运行 NetLogo 模型时,它可以完美运行。但是,当我尝试通过 BehaviorSpace 同时使用 4 个内核运行它时,它似乎在所有 4 个内核中运行,但只保存了 1 个模型运行的结果(在 R 中生成的 .csv 文件)。它还给出了一个初始错误“预期输入是一个代理,但得到了数字 0”——当我通过主界面运行它时它不会给出这个错误。

我只定义了 1 个端口:

rserve:init 6311 "localhost"

我的怀疑是,我猜,非常简单......我对此没有什么经验......

我需要在带有 Rserve 扩展的 NetLogo 模型中包含哪些代码才能使用 BehaviorSpace 在多个内核中同时运行它?每个核心是否需要 1 个连接?

我尝试了以下代码:

rserve:init 6311 "localhost"

rserve:init 6312 "localhost"

它连接第一个本地主机并在到达第二行时给出错误消息,说明它已经连接(到第一行)。

谢谢爱德华多

4

1 回答 1

1

Jan Thiele,Rserve-Extension for Netlogo 的作者,在一封私人电子邮件中为我提供了上述问题的答案。为了他人的利益,我在下面复制他的答案。

“我目前看不到在不修改 R 中的变量名称的情况下使用具有多个核心的 Rserve-Extension 的解决方案。连接不是特定于核心的,而是全局可用的。相反,R-Extension 使用不同的环境并将变量从不同的核心。也许使用 Rserve-Extension 可以实现类似的事情 - 但我需要仔细思考如何实现这一点 - 目前这很困难。当然不是很好的解决方法可能是将 BehaviorSpace 实验分成几个独立运行并在不同的 NetLogo 实例中启动它们,每个实例都运行一个进程——当然,不好!”

爱德华多

于 2014-03-31T15:28:14.170 回答