質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

PyCharm

エディター・開発ツール

解決済

CPU使用率が以上に高い

hiragaga
hiragaga

総合スコア11

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

PyCharm

エディター・開発ツール

2回答

0評価

0クリップ

638閲覧

投稿2021/12/16 10:06

すこしプログラムの質問から離れてしまうかもしれないですが,答えて頂けると幸いです.
CPUがcore i7 9700kでスレッドが8個あるはずのパソコンでプログラムをしているのですが,並列処理等していないのにcpuの使用率が90パーセントから100パーセント近くなってしまいます.古い4スレッドのパソコンで同じプログラムを実行してもcpuの使用率は50パーセントもいかないです.何か設定等の問題でしょうか?環境はpycharmを使っています.

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

otn

2021/12/16 10:26

何がCPUを試用しているのか調べましょう。 また、ディスクアクセス率が高くないかもですね。
jbpb0

2021/12/16 10:58 編集

AnacondaとかのMKLを内部で使ってるnumpyでは、行列計算とかで可能なら勝手に並列計算してくれます > 古い4スレッドのパソコンで同じプログラムを実行してもcpuの使用率は50パーセントもいかない 古いパソコンのnumpyはOpenBLASを使ってて、CPUがcore i7 9700kのパソコンのnumpyはMKLを使ってる、ということはありませんでしょうか? それぞれのパソコンのPythonで下記を実行したら分かります import numpy as np np.__config__.show() 参考 https://insilico-notebook.com/python-blas-performance/#toc_id_3
hiragaga

2021/12/16 11:05

承知しました.ディスク使用率は低く,CPUはpycharmに使われているのですが,もっと細かく調べてみます.
jbpb0

2021/12/16 11:08

> CPUはpycharmに使われている あれ、CPUはPythonに使われてるのではないのですか では、私のコメントは的外れです 失礼しました
hiragaga

2021/12/16 11:54

>fbpb0様 すいません,私の言葉足らずです.pycharmでpythonのプログラムを動かしているので,pythonにCPUが使われていると思います. 調べたところ,両者ともMKLが使われていました.
jbpb0

2021/12/20 05:55 編集

> 両者ともMKLが使われていました. 新しいCPUの方がMKLでの最適化がより有効に効いて、全コアを有効に使って計算されてる、みたいなことかも import numpy as np import time n = 10000; A = np.random.rand(n, n); B = np.random.rand(n, n) tmp = time.perf_counter(); C = A @ B; t = time.perf_counter() - tmp print(t) を実行したら、MKLが使われてたら並列計算されると思います 最後に表示される「t」が、計算にかかった時間です 環境変数「MKL_NUM_THREADS」または「OMP_NUM_THREADS」に「1」を設定したら、MKLでのスレッド数が1になり並列計算されなくなるので、並列計算される場合よりも「t」が大きくなるはずです 並列計算をやめると「t」が何倍になるのかが、並列計算の効果です (差では無くて比で考える) それが、古いパソコンと、CPUがcore i7 9700kのパソコンで違うのでは? (CPUがたくさん使われるcore i7 9700kの方が並列計算の効果が大きい)

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

PyCharm

エディター・開発ツール