回答編集履歴
4
訂正
test
CHANGED
@@ -24,5 +24,5 @@
|
|
24
24
|
1.global 変数accumulatorは各プロセスの中で値が変えられたにもかかわらず、並列関数の引数としての値はみんな同じ初期値でした。
|
25
25
|
推測:Parallel 文による関数の~~タプル化展開~~(正式の呼び名は**ジェネレータ式**って)は実行前の段階で遂行され、引数も実行前の値ですね。
|
26
26
|
|
27
|
-
2.Parallelの
|
27
|
+
2.Parallelのreturn変数は必ずlistです。
|
28
28
|
|
3
cc
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
皆さまのご指摘を踏まえて、実例コードを以下のようにしました。
|
2
2
|
```Python
|
3
3
|
from joblib import Parallel, delayed
|
4
4
|
|
2
訂正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
皆さまのご指摘を踏まえて、実例コードを以下のようにしました。
|
1
|
+
~~打ち消し線~~皆さまのご指摘を踏まえて、実例コードを以下のようにしました。
|
2
2
|
```Python
|
3
3
|
from joblib import Parallel, delayed
|
4
4
|
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
これで分かったのは、
|
24
24
|
1.global 変数accumulatorは各プロセスの中で値が変えられたにもかかわらず、並列関数の引数としての値はみんな同じ初期値でした。
|
25
|
-
推測:Parallel 文による関数のタプル化展開は実行前の段階で遂行され、引数も実行前の値ですね。
|
25
|
+
推測:Parallel 文による関数の~~タプル化展開~~(正式の呼び名は**ジェネレータ式**って)は実行前の段階で遂行され、引数も実行前の値ですね。
|
26
26
|
|
27
27
|
2.Parallelの返す変数は必ずlistです。
|
28
28
|
|
1
追加
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
return d1,d2,accumulator
|
11
11
|
|
12
12
|
|
13
|
-
results = Parallel(n_jobs=-1)(delayed(testfunc)(accumulator, i) for i in range(5))
|
13
|
+
results = Parallel(n_jobs=-1,verbose=11)(delayed(testfunc)(accumulator, i) for i in range(5))
|
14
14
|
# n_jobsのデフォルトは1(並列処理なし)
|
15
15
|
results # [(55, 0, 55), (55, 1, 56), (55, 2, 57), (55, 3, 58), (55, 4, 59)]
|
16
16
|
```
|
@@ -18,9 +18,10 @@
|
|
18
18
|
上記コードを実行して、resultsは下記の通りでした。
|
19
19
|
[(55, 0, 55), (55, 1, 56), (55, 2, 57), (55, 3, 58), (55, 4, 59)]
|
20
20
|
|
21
|
+
log : Using backend LokyBackend with 2 concurrent workers.
|
22
|
+
|
21
23
|
これで分かったのは、
|
22
|
-
1.global 変数accumulatorが
|
23
|
-
各プロセスの中で値
|
24
|
+
1.global 変数accumulatorは各プロセスの中で値が変えられたにもかかわらず、並列関数の引数としての値はみんな同じ初期値でした。
|
24
25
|
推測:Parallel 文による関数のタプル化展開は実行前の段階で遂行され、引数も実行前の値ですね。
|
25
26
|
|
26
27
|
2.Parallelの返す変数は必ずlistです。
|