どのような方法やアイデアを私は状況を次のシミュレーションに使用する必要があります。SimGrid。タスクの実行中にデータを送受信する方法は?
master、worker1(host1)とworker2(host2)があります。 現在、worker1はいくつかのデータを実行していますが、worker2は空きです。 マスタはworker1からデータをダウンロードし、それらの実行を開始するためにinstruction
をworker2に送信する必要があります。
考えてみたのは、masterからworker2 - > worker2にmessageTask
をworker1 - > worker1に送信することでした。task(name, flopsamount, byteSize)
をworker2 - > worker2が受け取って実行しました。
worker1は、task
を実行してworker1がビジー状態の場合、worker2からmessageTask
をどのように受け取ることができますか? worker1がタスクを実行しているときに、どのようにデータを送信できますか?あるいは、worker2がbusy1からデータをダウンロードする別の方法がありますか?
更新 これはworker2のコードです。 worker1
try {
task.execute(); // Currently worker1 is here, in other words, worker1 is exectuing some another task
} catch (TaskCancelledException e) {
}
については
MessageTask messageTask = new MessageTask();
messageTask.dsend(mailbox_worker1)
(彼の現在のタスクを実行するので中断することなく)実際のデータをworker2する方法worker1がreceive
messageTaskとsend
バックだろうか?
を更新し
は、それが正しいの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>
私は質問を更新しました。 –
更新部分の正しい.xml宣言ですか? –
これは同じ質問ではありません。 1つのアイデアにつき1つの質問を投稿してください。そうでない場合は、次の人が来ても答えが分かりません。 (しかし、はい、展開は大丈夫です)。 –