Julia @everywhere Variablen

8

Ich versuche Code parallel mit Julia zu implementieren. Ich verwende den Makro @everywhere, damit alle Prozesse Daten von einem RemoteRef abrufen.

Ist es möglich, einen Variablennamen zu verwenden, der nur für den ersten Prozess im @ everywhere-Ausdruck definiert ist, und irgendwie anzugeben, dass er den Wert dieser Variablen und nicht den Variablennamen an alle Prozesse senden soll?

Beispiel:

%Vor%

Dies gibt einen Fehler zurück, weil r nicht für alle Prozesse definiert ist.

Wie sollte ich Daten in alle Prozesse verschieben?

Kann ich Julia auch sagen, dass sie den Wert anstelle des Variablennamens in den Ausdruck einfügen soll?  Etwas wie name = "John"; println("Hello, $name") druckt "Hello, John"

    
stords 19.03.2014, 20:54
quelle

1 Antwort

0

Um die Funktionen (und Makros) zu finden, auf die Spencer in einem netten kleinen Paket zeigte, check-out ParallelDataTransfer.jl . Die Tests sind gute Beispiele für die Verwendung (und das CI zeigt, dass diese Tests bestanden haben) auf v0.5 auf allen Plattformen).

Für Ihr Problem können Sie die Funktion sendto verwenden:

%Vor%     
Chris Rackauckas 10.08.2016, 05:42
quelle