回答編集履歴

4

訂正

2022/06/07 15:46

投稿

insecticide
insecticide

スコア315

test CHANGED
@@ -24,5 +24,5 @@
24
24
  1.global 変数accumulatorは各プロセスの中で値が変えられたにもかかわらず、並列関数の引数としての値はみんな同じ初期値でした。
25
25
  推測:Parallel 文による関数の~~タプル化展開~~(正式の呼び名は**ジェネレータ式**って)は実行前の段階で遂行され、引数も実行前の値ですね。
26
26
 
27
- 2.Parallelの返す変数は必ずlistです。
27
+ 2.Parallelのreturn変数は必ずlistです。
28
28
 

3

cc

2022/06/07 04:34

投稿

insecticide
insecticide

スコア315

test CHANGED
@@ -1,4 +1,4 @@
1
- ~~打ち消し線~~皆さまのご指摘を踏まえて、実例コードを以下のようにしました。
1
+ 皆さまのご指摘を踏まえて、実例コードを以下のようにしました。
2
2
  ```Python
3
3
  from joblib import Parallel, delayed
4
4
 

2

訂正

2022/06/07 04:33

投稿

insecticide
insecticide

スコア315

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

追加

2022/06/07 03:45

投稿

insecticide
insecticide

スコア315

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です。