2017-10-25 1 views
1

Ich versuche, einen iterativen Algorithmus in MATLAB unter Verwendung der parallelen Verarbeitung auszuführen. Es gibt mehrere iterative Reihen, die von einzelnen iterativen Arbeitern aktualisiert werden. Diese Mitarbeiter senden dann ihre letzte Iteration an einen DataQueue Analytiker. Der Analytiker zieht das nächste Update aus der Warteschlange und aktualisiert die Analyse entsprechend. Die Analysen können jedoch nicht ordnungsgemäß aktualisiert werden, es sei denn, der Analysearbeiter weiß, von welchem ​​iterativen Mitarbeiter das Update übergeben wurde.Abrufen von Worker-Index von der asynchronen Funktionsbewertung in MATLAB

Der folgende Versuch wurde unternommen, eine Kennung für den Arbeiter zu berichten, die die asynchrone Funktionsauswertung durchgeführt wird:

for j = 1:20 
    L(j) = parfeval(gcp, @() labindex, 1); 
end 

for j = 1:20 
    [~,idx] = fetchNext(L) 
end 

function index = labindex() 
    index = labindex 
end 

Dieser Code meldet einen idx Wert von 1 für alle Auswertungen. Ist dies der richtige Weg, um den Identifikator des Arbeiters zu erhalten, der die Funktionsbewertung durchführt? Gibt es eine andere Eigenschaft, die ich verwenden sollte? Gibt es eine Möglichkeit, eine eindeutige ID für den Worker zu erstellen, der die Arbeit abschließt, sodass der Analyse-Worker weiß, welcher Worker die nächste Iteration in der Serie berechnet hat?

Antwort

Verwandte Themen