gpt4 book ai didi

HPC 应用程序中的 Java RMI 随机延迟

转载 作者:行者123 更新时间:2023-12-01 05:40:23 29 4
gpt4 key购买 nike

我使用 Java 和 RMI 在数百个核心的集群上执行 100k Montecarlo 模拟。

我使用的方法是让客户端应用程序调用 RMI 进程并根据网格上可用 (RMI) 进程的数量划分模拟。

运行模拟后,我必须重新汇总结果。

我唯一的限制是所有这一切都必须在 500 毫秒内发生。

该过程实际上是随机进行的,但是,有时,其中一个 RMI 调用需要多花 200 毫秒才能执行。

我在各处添加了大量日志和计时,这可能是我已经丢弃的原因:

1) 模拟需要额外的时间2) 数据传输(它一直有效,仅有时会验证速度减慢,并且仅在 RMI 调用的子集上)3)将结果传回(我可以清楚地计时从最后一次RMI调用返回到进程结束需要多长时间)

我唯一无法衡量的是,是否有任何 RMI 调用需要额外的时间来初始化(老实说,这是我唯一能想到的)。其原因是 - 不幸的是 - 时钟不同步:(

即使我保留客户端对它的(远程)引用,RMI 远程进程是否也可能被钝化/分离/收集?

希望问题足够清楚(我非常确定事实并非如此)。

非常感谢,如果不够清楚,请随时提出更多问题。

问候,乔瓦尼

最佳答案

Is that possible that the RMI remote process got passivated/detached/collected even if I keep a (Remote) reference to it from the client?

不太可能,但有可能。不应收集 RMI 远程进程(如 RMI FAQ 指示 VM 退出条件)。但是,如果操作系统需要,它可以被分页到磁盘。

你有办法排除 GC 调用吗(除了用 JVM TI 编写监视器之外)?

此外,您的代码结构是否采用这样的方式:异步发送来自聚合器的所有调用,将回复附加到列表中,并在关键时间结束时聚合结果,即使某些处理器还没有这样做返回结果?我假设每个处理器都是一个独立的随机事件,并且可以安全地忽略某些结果。如果不是,请忽略。

关于HPC 应用程序中的 Java RMI 随机延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340544/

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