Repast - 在批次运行之间交换信息
Repast - Exchange information between batch runs
Repast 中的批处理 运行 是独立的 运行,没有交互。但是,在我的模型中,我需要启用这种交互。例如。 运行-2 需要从 运行-1 获取一些数据才能 运行 完全。
有没有办法在批 运行 之间交换信息?
单个批处理 运行 的执行顺序未预先确定。例如,如果您将 运行 分布在多个资源中,则两个可能 运行 与 1 同时或 2 甚至在 1 之前。因此,在一般情况下,我认为这是不可能的。
也就是说,我认为您有三个选择:
如果可能,执行所有独立的 运行s(例如您的示例中的 1),收集数据,然后执行相关的 运行s。如果您实际上是在谈论 运行s 1->2->3...
链,那显然效果不佳
如果所有 运行 都在同一资源上 运行ning,您可以稍微试验一下,找出 运行 1 在哪里 运行宁。我怀疑它可能在“instance_1”中,而 运行 2 在 instance_2 等中。通过这里的实验,我的意思是手动查看文件系统以查看什么在何处。然后,您可以使用 Java 的各种文件 IO 类(注意 - 不是 Repast 功能)来获取 运行 2 的位置并找到 运行 1 的数据的位置。例如,如果您知道 运行 2 运行s 在 /x/y/z/instance_2 中(可能通过执行 Paths.get("./") 或其他操作)并且 运行 1然后在/x/z/y/instance_1,你应该可以得到数据。我不知道你想要运行1的什么数据,但你必须确保你想要的数据已经完全写入。
如果 运行 2 确实依赖于 运行 1,也许将模型更新为 运行 它们作为单个 运行 是有意义的。
尼克
Repast 中的批处理 运行 是独立的 运行,没有交互。但是,在我的模型中,我需要启用这种交互。例如。 运行-2 需要从 运行-1 获取一些数据才能 运行 完全。
有没有办法在批 运行 之间交换信息?
单个批处理 运行 的执行顺序未预先确定。例如,如果您将 运行 分布在多个资源中,则两个可能 运行 与 1 同时或 2 甚至在 1 之前。因此,在一般情况下,我认为这是不可能的。
也就是说,我认为您有三个选择:
如果可能,执行所有独立的 运行s(例如您的示例中的 1),收集数据,然后执行相关的 运行s。如果您实际上是在谈论 运行s 1->2->3...
链,那显然效果不佳如果所有 运行 都在同一资源上 运行ning,您可以稍微试验一下,找出 运行 1 在哪里 运行宁。我怀疑它可能在“instance_1”中,而 运行 2 在 instance_2 等中。通过这里的实验,我的意思是手动查看文件系统以查看什么在何处。然后,您可以使用 Java 的各种文件 IO 类(注意 - 不是 Repast 功能)来获取 运行 2 的位置并找到 运行 1 的数据的位置。例如,如果您知道 运行 2 运行s 在 /x/y/z/instance_2 中(可能通过执行 Paths.get("./") 或其他操作)并且 运行 1然后在/x/z/y/instance_1,你应该可以得到数据。我不知道你想要运行1的什么数据,但你必须确保你想要的数据已经完全写入。
如果 运行 2 确实依赖于 运行 1,也许将模型更新为 运行 它们作为单个 运行 是有意义的。
尼克