optimization - 「CPUバウンド」および「I / Oバウンド」という用語はどういう意味ですか?

Translate

「CPUバウンド」および「I / Oバウンド」という用語はどういう意味ですか?

This question and all comments follow the "Attribution Required."

すべての答え

Translate

それはかなり直感的です:

プログラムは、CPUが高速である場合に高速になる場合、つまり、その時間の大部分をCPUの使用(計算の実行)に費やす場合、CPUにバインドされます。 πの新しい桁を計算するプログラムは、通常、CPUにバインドされており、数値を計算するだけです。

I / Oサブシステムが高速である場合、プログラムが高速になる場合、プログラムはI / Oバウンドになります。正確なI / Oシステムの意味はさまざまです。私は通常それをディスクに関連付けますが、もちろんネットワークや通信一般も一般的です。巨大なファイルを調べて一部のデータを探すプログラムは、I / Oバウンドになる可能性があります。これは、ボトルネックがディスクからのデータの読み取りであるためです(実際、この例は、おそらく最近では数百MB /秒の古風なものです。 SSDから入ってくる)。

ソース
Translate

CPUバウンドプロセスが進行する速度がCPUの速度によって制限されることを意味します。小さな行列の乗算など、小さな数値のセットで計算を実行するタスクは、CPUにバインドされる可能性があります。

I / Oバウンドプロセスが進行する速度がI / Oサブシステムの速度によって制限されることを意味します。たとえば、ファイルの行数をカウントするなど、ディスクからのデータを処理するタスクは、I / Oバウンドである可能性があります。

メモリバウンドプロセスが進行する速度は、使用可能なメモリの量とそのメモリアクセスの速度によって制限されることを意味します。大量のメモリ内データを処理するタスク、たとえば大きな行列の乗算は、メモリバウンドである可能性があります。

キャッシュバウンドプロセスの進行速度が、使用可能なキャッシュの量と速度によって制限されることを意味します。キャッシュに収まるよりも多くのデータを処理するだけのタスクは、キャッシュにバインドされます。

I / Oバウンドは、メモリバウンドよりも遅くなり、キャッシュバウンドはCPUバウンドよりも遅くなります。

I / Oバウンドの解決策は、必ずしもメモリを増やすことではありません。状況によっては、アクセスアルゴリズムは、I / O、メモリ、またはキャッシュの制限を中心に設計できます。見るキャッシュ忘却アルゴリズム.

ソース
Translate

CPUバウンドとは、プログラムがCPUまたは中央処理装置によってボトルネックになっていることを意味します。I / Oバインドとは、プログラムがI / O、またはディスクやネットワークなどへの読み取りや書き込みなどの入出力によってボトルネックになっていることを意味します。

一般に、コンピュータプログラムを最適化するとき、ボトルネックを探し出し、それを排除しようとします。プログラムがCPUにバインドされていることを知っていると、他の何かを不必要に最適化することがないようになります。

[そして「ボトルネック」とは、プログラムを他の方法よりも遅くすることを意味します。]

ソース
Translate

同じ考えを表現する別の方法:

  • CPUを高速化してもプログラムが高速化されない場合は、I / Oバウンド。

  • I / Oの高速化(たとえば、より高速なディスクの使用)が役に立たない場合は、プログラムがCPUにバインドされている可能性があります。

(他のリソースを考慮する必要があるため、「maybe」を使用しました。メモリはその一例です。)

ソース
Translate

あなたのプログラムが待っているときI / O(つまり、ディスクの読み取り/書き込みまたはネットワークの読み取り/書き込みなど)、プログラムが停止している場合でも、CPUは他のタスクを自由に実行できます。プログラムの速度は、そのIOが発生する速度に大きく依存します。速度を上げたい場合は、I / Oを高速化する必要があります。

プログラムが多くのプログラム命令を実行していて、I / Oを待機していない場合、CPUバウンドであると言われます。 CPUを高速化すると、プログラムの実行速度が速くなります。

いずれの場合も、プログラムを高速化するための鍵は、ハードウェアを高速化することではなく、プログラムを最適化して必要なIOまたはCPUの量を減らすこと、またはCPUを集中的に使用しながらI / Oを実行することです。もの。

ソース
Alma Lee
Translate

I / Oバウンドとは、計算の完了にかかる時間が、主に入出力操作の完了を待機するために費やされた期間によって決定される条件を指します。

これは、タスクがCPUにバインドされているのとは逆です。この状況は、データが要求される速度が消費される速度よりも遅い場合、つまり、データの処理よりもデータの要求に多くの時間が費やされている場合に発生します。

ソース
dua
Translate

IOバウンドプロセス:計算よりもIOの実行に多くの時間を費やし、多くの短いCPUバーストがあります。 CPUバウンドプロセス:計算に多くの時間を費やし、非常に長いCPUバーストはほとんどありません

ソース
Translate

I / Oバウンドプロセス:-プロセスの存続期間の大部分がI / O状態で費やされている場合、そのプロセスはai / Oバウンドプロセスです。例:-計算機、Internet Explorer

CPUバウンドプロセス:-プロセス寿命の大部分がCPUに費やされている場合、それはCPUバウンドプロセスです。

ソース
Leave a Reply
You must be logged in to post a answer.