HPC(Slurm)上的 NetLogo,无需BehaviorSpace

问题描述 投票:0回答:1

我想稍微改变一下使用 Slurm 在 HPC 上运行 NetLogo 的工作流程。就上下文而言,我并行运行大约 360 个模拟,每个模拟可能需要 5 到 7 天(我知道,效率不高),并且它们在 X 个周期结束时写入一些输出。我使用 Python 对所有这些输出进行后处理。

我目前使用 JobArrays,但由于我使用的集群的节点只有 48 个核心,我必须手动创建 9 个BehaviorSpaces(我知道,我可以使用 XML 文件)。

我一直在阅读,似乎为了运行多节点实验我必须小心。 我一直在考虑的一些替代方案:

  1. pynetlogo + mpi4pi
  1. pynetlogo
    + ipyparallel,它与此示例类似https://pynetlogo.readthedocs.io/en/latest/_docs/SALib_ipyparallel.html

我没有 MPI 或 ipyparallel 的经验,但我有 Python、NetLogo 的经验,还有一点 Slurm 的经验。

我考虑过 netlogo-headless,但据我所知,它适用于BehaviorSpaces,而这正是我想要避免的。

mpi netlogo slurm hpc pynetlogo
1个回答
0
投票

你找到这个问题的答案了吗?在我工作的地方,有些人已经建立了一种使用 Scala 在 HPC 上使用 Netlogo 运行复杂实验的方法(我认为他们不使用 BehaviourSpace)。我正在尝试自己解决这个问题,但运气不佳。我希望听到你确实解决了这个问题。如果我自己做的话,我会回来发帖。

在 Scala 代码中导入:

import org.nlogo.headless.HeadlessWorkspace"

并获得一个运行的实例:

val workspace = HeadlessWorkspace.newInstance
workspace.open(modelPath)

workspace.command("startup")    

我不确定 R 或 Python 是否可以实现类似的操作。

© www.soinside.com 2019 - 2024. All rights reserved.