gpt4 book ai didi

java - SimGrid。执行任务时如何接收和发送数据?

转载 作者:行者123 更新时间:2023-11-30 02:58:34 28 4
gpt4 key购买 nike

我应该使用什么方法或想法来模拟以下情况。

有master、worker1(主机1)和worker2(主机2)。当前worker1正在执行一些数据,但worker2空闲。Master必须向worker2发送关于从worker1下载数据的指令并开始执行它们。

这个想法是从master发送messageTask到worker2 ->worker2发送messageTask到worker1 ->worker1发送task(name, flopsmount, byteSize ) 到worker2 -->worker2接收并执行它。

但是,如果worker1正忙于执行他的任务,那么worker1如何从worker2接收messageTask呢?那么worker1在执行任务的时候如何发送数据呢?或者worker2可能有另一种方法从繁忙的worker1下载数据?

已更新这是worker2的一段代码。

MessageTask messageTask = new MessageTask();
messageTask.dsend(mailbox_worker1)

对于 worker 1

try {
task.execute(); // Currently worker1 is here, in other words, worker1 is exectuing some another task
} catch (TaskCancelledException e) {
}

worker1 如何接收 messageTask 并发送回worker2 真实数据(不中断当前任务的执行)?

已更新

deployment.xml 是否正确?

  <process host="Tier1_1" function="LHCb.Process1">
<argument value="1"/> <!-- Input mailbox -->
</process>

<process host="Tier1_1" function="LHCb.Process2">
<argument value="1"/> <!-- Input mailbox -->
</process>

最佳答案

在沟通时至少有两种方法可以做事。您可以使用分离发送(这意味着您不关心通信是否有效),也可以使用异步通信。

该目录中有第一种机制的示例:examples/java/async/dsend,而另一种机制尚未在 Java 中举例说明。您现在必须检查 C 示例。

现在,在更新的部分中,您想要在执行某些操作时做一些事情。由于还没有异步执行之类的东西,因此您必须在同一主机上启动另一个进程来处理通信,同时第一个主机计算内容。

关于java - SimGrid。执行任务时如何接收和发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36535801/

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