我正在使用 Java 和 RMI 在数百个内核的集群上执行 100k Montecarlo 模拟。
我正在使用的方法是拥有一个客户端应用程序,该应用程序调用 RMI 进程并根据网格上可用 (RMI) 进程的数量划分模拟。
运行模拟后,我必须重新汇总结果。
我唯一的限制是所有这些都必须在 500 毫秒内发生。
该过程实际上是随机的,有时,RMI 调用之一需要多花 200 毫秒才能执行。
我已经在各处添加了大量的日志和时间,这可能是我已经丢弃的原因:
1) 需要额外时间的模拟 2) 数据传输(它一直有效,只有有时会验证减速,并且仅在 RMI 调用的子集上) 3) 传回结果(我可以清楚地计时从最后一次 RMI 调用返回到过程结束)
我唯一无法衡量的是是否有任何 RMI 调用需要额外的时间来初始化(老实说,这是我唯一能想到的)。原因是 - 不幸的是 - 时钟不同步:(
即使我从客户端保留对它的(远程)引用,RMI 远程进程是否有可能被钝化/分离/收集?
希望问题足够清楚(我很确定不是)。
非常感谢,如果不够清楚,请毫不犹豫地提出更多问题。
问候,乔瓦尼