私はマルチコアリサーチのCPUサイクルを無駄にする単純なアプリケーションを作成しようとしています。私が作成したものはコア使用量が100%になります。私はこれを達成するために調整しなければならない約30%60%70%であることを望みますか?前もって感謝します。PythonでCPUサイクルを無駄にする
現在のバージョン:2で数を割ることはすぐにとにかく何度も何度も0/2
となってしまいますように多数でスタート
a=999999999
while True:
a=a/2
私はマルチコアリサーチのCPUサイクルを無駄にする単純なアプリケーションを作成しようとしています。私が作成したものはコア使用量が100%になります。私はこれを達成するために調整しなければならない約30%60%70%であることを望みますか?前もって感謝します。PythonでCPUサイクルを無駄にする
現在のバージョン:2で数を割ることはすぐにとにかく何度も何度も0/2
となってしまいますように多数でスタート
a=999999999
while True:
a=a/2
は、必要ありません。また、CPUサイクルを消費するためにループ内で何かを実際に実行する必要はありません。ループするだけで十分です。このため、無限ループ(たとえwhile 1: pass
のような単純なものでも)が殺されるまで、CPUコア全体を食べることになります。コア全体を占有しないようにするには、time.sleep
を使用して、一定期間スレッドの実行を一時停止します。この関数は、スレッドがスリープする時間を秒単位で表す単一の引数をとります。浮動小数点数を受け入れます。
import time
while 1:
time.sleep(0.0001)
単にあなたがテストしたい各コアのために(ワークロードのための適切な睡眠時間で、あなたの特定のシステムに入れたいのですが)、このスクリプトのインスタンスを実行します。
オペレーティングシステムによっては、スリープ時間が1ミリ秒未満になることがあり、スリープ時間がゼロになることが原因で、この戦略と互換性がないことに注意してください。詳細については、Python: high precision time.sleepおよびHow accurate is python's time.sleep()?を参照してください。
これは答えではありませんが、多分それは:Pythonを使わないでください – MariusSiuram
'import time;適切な大きさの「n」については1:time.sleep(n) 'である。 – TigerhawkT3
@mozcelikorsあなたはこのリンクhttp://xmodulo.com/run-program-process-specific-cpu-cores-linux.html –