gpt4 book ai didi

repast-simphony - Repast - 从没有 GUI 的 Java 程序调用模拟

转载 作者:行者123 更新时间:2023-12-01 13:11:46 25 4
gpt4 key购买 nike

我正在按照说明测试从另一个 Java 程序调用我的模拟模型。

package test;

//import repast.simphony.runtime.RepastMain;

public class UserMain {

public UserMain(){};

public void start(){

String[] args = new String[]{"D:\\user\\Repast_java\\IntraCity_Simulator\\IntraCity_Simulator.rs"};

repast.simphony.runtime.RepastMain.main(args);
// repast.simphony.runtime.RepastBatchMain.main(args);
}

public static void main(String[] args) {

UserMain um = new UserMain();
um.start();
}
}

java 程序将使用 RepastMain 配置启动 GUI:
repast.simphony.runtime.RepastMain.main(args);

如果我应用非 GUI 配置,java 程序将很快终止而不运行并且不返回任何内容:
repast.simphony.runtime.RepastBatchMain.main(args);

enter image description here

如何在 headless 模式下启用模拟运行?

其次,我需要在远程服务器 (Linux) 上部署我的仿真模型。服务器调用我的模拟模型的最佳方式是什么?如果是HTTP,后续如何进行配置?模型的运行首选批量运行方法(单次运行或多次运行取决于用户的选择)。批量运行输出需要转成JSON格式反馈给服务器。

最佳答案

Simphony 的部分批处理运行机制可能可以用于此目的。有关 headless 命令行批处理运行的一些上下文,请参阅:

https://repast.github.io/docs/RepastBatchRunsGettingStarted.pdf

考虑到您将模拟运行嵌入到其他 Java 代码中,这与您要执行的操作并不完全一致,但作为背景应该有所帮助。

最终,尽管批处理运行代码调用了 InstanceRunner:

https://github.com/Repast/repast.simphony/blob/master/repast.simphony.distributed.batch/src/repast/simphony/batch/InstanceRunner.java

InstanceRunner 要么迭代文件中的参数集列表,要么直接传递给它的参数集字符串,然后对每个参数集执行模拟运行。如果你传递给它一个参数集,它会运行一次,我认为这就是你想要做的。因此,我建议查看 InstanceRunner 代码以了解其工作原理,并在调用模拟的代码中模拟 InstanceRunner.main()。

至于远程执行,Simphony 可以将模拟复制到远程资源,运行它并将结果复制回来。它与 Simphony GUI 集成在一起,因此如果您不做一些工作,就不能从其他代码中调用它。所有相关代码都在:

https://github.com/Repast/repast.simphony/tree/master/repast.simphony.distributed.batch/src/repast/simphony/batch

SSHSession 类具有通过 SSH 在远程资源上执行命令的代码、复制文件的方法等。所以,也许这对你有用。

关于repast-simphony - Repast - 从没有 GUI 的 Java 程序调用模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59528147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com