回答編集履歴
2
間違えの指摘を受けたので修正s
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Parallelによる処理は以下のように書かれることが多いです。(質問にあるものは間違えています)
|
4
4
|
```python
|
5
|
-
Parallel(n_jobs=3)(delayed(sqrt)(i**2) for i in range(10))
|
5
|
+
Parallel(n_jobs=3)(delayed(sqrt)(i**2) for i in range(10))s
|
6
6
|
```
|
7
7
|
これは2つに分けて考えます。
|
8
8
|
```python
|
@@ -14,7 +14,7 @@
|
|
14
14
|
```python
|
15
15
|
(delayed(sqrt)(i**2) for i in range(10))
|
16
16
|
```
|
17
|
-
これは、タプルの内包表記で、10個のdelayed要素の
|
17
|
+
これは、~~タプルの内包表記~~ジェネレータ式で、10個のdelayed要素を生成するジェネレタを返します。ジェネレータは読むたびにリストの要素を返すオブジェクトです。
|
18
18
|
delayedもjoblibの関数で、delayed(A)(B) としたとき、実行すると関数Aに引数としてBを適用します。
|
19
19
|
そしてParallelのインスタンスに渡すと、これを並列で実行してくれて、それぞれの結果をタプルにして返します。
|
20
20
|
|
1
間違えを修正
test
CHANGED
@@ -20,11 +20,11 @@
|
|
20
20
|
|
21
21
|
ということで、質問のやつだと、
|
22
22
|
```python
|
23
|
-
results = Parallel(delayed(sqrt)(accumulator + i ) for i in range(100))
|
23
|
+
results = Parallel(n_jobs=3)(delayed(sqrt)(accumulator + i ) for i in range(100))
|
24
24
|
#↓
|
25
|
-
results = Parallel(delayed(sqrt)(0 + i ) for i in range(100))
|
25
|
+
results = Parallel(n_jobs=3)(delayed(sqrt)(0 + i ) for i in range(100))
|
26
26
|
#↓
|
27
|
-
results = Parallel(delayed(sqrt)(0 + 0), delayed(sqrt)(0 + 1), ... delayed(sqrt)(0 + 99), )
|
27
|
+
results = Parallel(n_jobs=3)(delayed(sqrt)(0 + 0), delayed(sqrt)(0 + 1), ... delayed(sqrt)(0 + 99), )
|
28
28
|
#↓
|
29
29
|
results = (0, 1 , 1.41..., 1.73..., 2, ... 9.94...)
|
30
30
|
```
|
@@ -36,11 +36,3 @@
|
|
36
36
|
```
|
37
37
|
がどのような意図で書かれたものなのか、僕にはまったくわかりません。
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|