回答編集履歴

2

url変更

2022/12/05 12:56

投稿

jbpb0
jbpb0

スコア7649

test CHANGED
@@ -1,6 +1,6 @@
1
1
  > マルチスレッドで高速化できるのはI/O処理といったCPUではない部分が律速しているときだと認識していたのですが、なぜ42秒から29秒まで速くなったのでしょうか?
2
2
 
3
- [numpy and Global Interpreter Lock](https://stackoverflow.com/questions/6200437/numpy-and-global-interpreter-lock)
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

書式

2022/12/05 12:51

投稿

jbpb0
jbpb0

スコア7649

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():」の中に入れて、「if __name__ == '__main__':」の中で「main()」を実行してみてください
11
+ の「ProcessPoolExecutor」のコード例のように、「def main():」の中に入れて、
12
+
13
+ ```python
14
+ if __name__ == '__main__':
15
+ ```
16
+
17
+ の中で「main()」を実行してみてください