想象一下这样的情况,我们有一个调度系统(1 个主机)和,例如,6 台计算机(工作人员),旨在执行调度系统的指令。
在典型情况下,我们可以使用 task = new Task(name, computingSize, communicationSize)
。如果我们希望worker1开始处理任务,我们通常使用 task.send(mailboxOfWorker1)
。
但是当所有数据都存储在worker1主机上时情况又如何呢?我们如何从调度系统(Master
)发送指令到worker1来开始处理一些task(name, compSize, commSize)
(当任务数据存储在 worker1
时)。或者比如这样的情况,我们如何从调度系统发送指令到worker1
像这样--首先从worker2
下载数据,然后(从 worker2
检索数据后)开始执行它们(在worker1上)?
最佳答案
我认为你的问题有两个问题。
首先,您想让worker1向worker2发送任务。这是完全合法的,没有什么可以阻止你这样做。例子中有很多这样的例子,比如token_ring
。
然后,您希望为任务附加一些额外的信息。这也是完全合法的。在 Java 中,最好是声明一个派生 Task 的新类,并添加您需要的额外字段。许多示例也采用了这种做法,例如 bittorrent
、chord
或 kademlia
...
关于java - Simgrid-java。 Master 向 Worker 发送指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36485083/