私は、モジュールと一緒にワーカープロセスを使用する方法を理解するトラブルを抱えています。私は難しさを簡単に説明しようとします。ジュリア - モジュールと並列
私は私のメインプロセス(工程1)モジュール、module A
に持っています。 (多くの場合、パラレル労働者の場合のように)ワーカープロセスで
、私は数多くの複雑な計算を処理することになっているmodule B
を、持っています。
問題が唯一の用途、それは何千行ものコードが含まれ、
問題はmodule A
がmodule B
よりもはるかに大きいということです... module A
が労働者に定義する必要があるかのように、それが思われることですが、module B
約15の短い機能。
私は私のメインの作業員を作るmodule A
へのアクセスを持っていますが、労働者がmodule B
へのアクセスが、module A
にメソッドから労働者を呼び出すことができる、と彼らのmodule B
で定義された関数を実行することができますので、いずれかの回避策はありますか?例えば、calculate_stuff()
と呼ばmodule B
方法があるかもしれません。
julia> A.call_worker_and_calculate()
ERROR: On worker 2:
UndefVarError: A not defined
「A」の関数を変更して関数をexにすることもできます引数としてecute、例えば、 'call_worker_and_calculate(F)= remotecall_fetch(F、2)' A.call_worker_and_calculate(B.calculate_stuff) ''のような呼IST。いずれの場合においても、 'B'は、パスに存在するか、または '@のeverywhere'を使用して、各ワーカーに定義されています。 – tim