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?