回答編集履歴
2
url変更
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> マルチスレッドで高速化できるのはI/O処理といったCPUではない部分が律速しているときだと認識していたのですが、なぜ42秒から29秒まで速くなったのでしょうか?
|
2
2
|
|
3
|
-
[numpy and
|
3
|
+
[Why are numpy calculations not affected by the global interpreter lock?](https://stackoverflow.com/questions/36479159/why-are-numpy-calculations-not-affected-by-the-global-interpreter-lock/36480941)
|
4
4
|
に書かれてるように、numpyの計算の多くの部分はgilの制約を受けないので、マルチスレッドで高速化できます
|
5
5
|
「def sample_func(num, result):」内の計算に、そういうものがあるのでしょう
|
6
6
|
|
1
書式
test
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
> マルチスレッドで高速化できるのはI/O処理といったCPUではない部分が律速しているときだと認識していたのですが、
|
1
|
+
> マルチスレッドで高速化できるのはI/O処理といったCPUではない部分が律速しているときだと認識していたのですが、なぜ42秒から29秒まで速くなったのでしょうか?
|
2
|
-
なぜ42秒から29秒まで速くなったのでしょうか?
|
3
2
|
|
4
3
|
[numpy and Global Interpreter Lock](https://stackoverflow.com/questions/6200437/numpy-and-global-interpreter-lock)
|
5
4
|
に書かれてるように、numpyの計算の多くの部分はgilの制約を受けないので、マルチスレッドで高速化できます
|
@@ -9,4 +8,10 @@
|
|
9
8
|
> ThreadPoolExecutorをProcessPoolExecutorに置き換えただけではエラーが出てくるのは何が理由でしょうか?
|
10
9
|
|
11
10
|
[concurrent.futures -- 並列タスク実行](https://docs.python.org/ja/3/library/concurrent.futures.html#processpoolexecutor)
|
12
|
-
の「ProcessPoolExecutor」のコード例のように、「def main():」の中に入れて、
|
11
|
+
の「ProcessPoolExecutor」のコード例のように、「def main():」の中に入れて、
|
12
|
+
|
13
|
+
```python
|
14
|
+
if __name__ == '__main__':
|
15
|
+
```
|
16
|
+
|
17
|
+
の中で「main()」を実行してみてください
|