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

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

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

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

PyCharm

エディター・開発ツール

Q&A

解決済

2回答

4216閲覧

CPU使用率が以上に高い

hiragaga

総合スコア11

CPU

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

PyCharm

エディター・開発ツール

0グッド

0クリップ

投稿2021/12/16 10:06

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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の方が並列計算の効果が大きい)
guest

回答2

0

ベストアンサー

並列処理等していないのにcpuの使用率が90パーセントから100パーセント近く

numpy等でMKLが使われてる場合、行列計算やFFT等では、自動的にマルチスレッドで並列計算がされます

何か設定等の問題でしょうか?

環境変数「MKL_NUM_THREADS」または「OMP_NUM_THREADS」に「1」を設定したら、MKLでのスレッド数が1になり並列計算されなくなるので、その状態と比較してみたらいいと思います

メモリーが足りる場合は、並列計算した方が計算が速いので、現状で特に問題が無いのであれば、設定を変える必要は無いと思いますけど

投稿2021/12/20 06:09

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiragaga

2022/01/15 04:31

教えてくださった方法で試したところ,新しいCPUの方がMKLでの最適化がより有効に効いて、全コアを有効に使って計算されていました.ありがとうございます!!
hiragaga

2022/01/15 04:32

コメント遅くなり大変申し訳ありません.
guest

0

OSや測定ツールの名前がありませんが、CPUの使用率などを示す場合、1CPUが完全に稼働している状態を100%とするものがあります。
その場合、コア数は4個ですので最大400%になることもあります。
そのプログラムを実行中に不可の多いソフトをもう一つかふたつ起動して、200%とかが出るようなら、そういうものです。

投稿2021/12/16 10:17

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiragaga

2021/12/16 10:34

回答ありがとうございます. タスクマネージャーで確認しているのですが,すべての8個のCPUすべてが100パーセント近くでした.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問