2016-04-10 16 views
1

Durum takiben simülasyon için kullanmam gereken yöntem veya fikir.SimGrid. Görev yürütülürken veri nasıl alınır ve gönderilir?

Ana, worker1 (host1) ve worker2 (host2) var. Şu anda worker1 bazı verileri yürütüyor, ancak worker2 ücretsizdir. Master, worker1 öğesinden veri indirme hakkında worker2'ye instruction göndermelidir ve bunları çalıştırmaya başlar. > Worker2 alır ve çalıştırır - task(name, flopsamount, byteSize) worker2 gönderdiği> worker1 -> worker2 messageTask worker1 gönderdiği -

fikri worker2 için ustadan messageTask göndermekti.

Ancak worker1, task numaralı telefonu çalıştırarak meşgulse worker1 öğesinden messageTask nasıl alabilir? Görev1 görev yürütürken verileri nasıl gönderebilir? Ya da meşgul worker1'den veri indirmek için worker2 için başka bir yöntem var mı?

GÜNCELLENMİŞ Bu, worker2 için bir kod parçasıdır. worker1 receive messageTask ve arka send (onun şimdiki görevi yürütme kesmeden) gerçek verileri worker2 için olacak nasıl worker1

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

için

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

? GÜNCELLEME

doğru deployment.xml mı?

<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> 

cevap

1

İletişim sırasında bir şeyler yapmanın en az iki yolu vardır. Ya müstakil gönderileri kullanabilirsiniz, bu da iletişimin çalışıp çalışmadığı ya da eşzamanlı olmayan iletişimlerinizle ilgilenmediğiniz anlamına gelir.

Bu dizinde ilk mekanizma örneği vardır: örnekler/java/async/dsend, diğer mekanizma henüz Java'da örneklenmez. Şimdi C örneğini kontrol etmeniz gerekecek.

Şimdi, güncelleştirilmiş bölümde, bir şeyleri yürütürken bir şeyler yapmak istersiniz. Eşzamansız yürütme (henüz) gibi bir şey olmadığı için, ilk ana makine bir şeyler hesaplarken iletişimi yönetmek için aynı ana bilgisayarda başka bir işlem başlatmanız gerekecektir.

+0

I güncelleştirilmiş soru. –

+0

güncellenmiş bölümdeki doğru .xml beyanı mı? –

+0

Bu aynı soru değil. Lütfen fikir başına bir soru gönderin veya gelecek olan kişi için cevapları anlamak zor olacaktır. (ama evet, dağıtım tamam görünüyor). –

İlgili konular