teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

appendix

2018/07/23 07:54

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -15,4 +15,9 @@
15
15
  ----
16
16
  > あくまでも物理的には4コアですから、4(ハードウェア)スレッド以上使っても(処理内容にもよりますが)あまり高速化されないのが普通です。
17
17
 
18
- 個人的な経験則ですが、近年のIntel Coreアーキテクチャのハイパースレッディングは、昔のソレに比べてかなり実効性能向上が改善されている印象です。一時期はハイパースレッディングを無効化した方が総合性能が出たこともありましたが、近年では素直にハイパースレッディング有効で論理コア数まで並列化したほうが良いケースが大半と思います。(最終的にはケース・バイ・ケースですから、今回のように実測するべきですね)
18
+ 個人的な経験則ですが、近年のIntel Coreアーキテクチャのハイパースレッディングは、昔のソレに比べてかなり実効性能向上が改善されている印象です。一時期はハイパースレッディングを無効化した方が総合性能が出たこともありましたが、近年では素直にハイパースレッディング有効で論理コア数まで並列化したほうが良いケースが大半と思います。(最終的にはケース・バイ・ケースですから、今回のように実測するべきですね)
19
+
20
+ > マルチスレッドで高速化出来ない件に関しては、GILで調べるとわかります。
21
+ > 結論だけ書くと、基本的に、そのマルチスレッドは演算を高速化する目的には使えません。
22
+
23
+ hayataka2049 さんと同意見で、残念ながらPython言語はこの手の並列処理・演算高速化に不向きです。Pythonに限らずですが、大抵のLL言語では GIL(GVL) がボトルネックになっています。真に並列化・処理高速化が必要な場合、最終的にはC言語などのネイティブ・コンパイル方式のプログラミング言語を利用する必要があると思います。