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 / s的速度)。来自固态硬盘)。

来源
Translate

CPU绑定表示进程进行的速度受CPU速度的限制。在少量数字上执行计算(例如,乘以小矩阵)的任务很可能受CPU限制。

I / O绑定表示进程进行的速度受I / O子系统的速度限制。处理磁盘数据的任务(例如,计算文件中的行数)很可能受I / O约束。

内存绑定表示进程进行的速度受可用内存量和该内存访问速度的限制。处理大量内存数据(例如,乘以大型矩阵)的任务很可能是“内存绑定”。

缓存绑定表示进程进度受可用缓存的数量和速度限制的速率。仅处理超出缓存容量的更多数据的任务将受到缓存限制。

I / O界限将比内存界限慢,而缓存界限将比CPU界限慢。

受I / O约束的解决方案不一定获得更多的内存。在某些情况下,可以围绕I / O,内存或缓存限制来设计访问算法。看到缓存遗忘算法.

来源
Translate

受CPU限制意味着程序受到CPU或中央处理器的瓶颈,而输入输出绑定表示程序受到I / O或输入/输出(例如对磁盘,网络等的读写)的瓶颈。

通常,在优化计算机程序时,人们会尝试找出瓶颈并消除瓶颈。知道您的程序受CPU限制是有帮助的,这样您就不必不必要地优化其他内容。

[“瓶颈”是指使您的程序运行缓慢的原因。]

来源
Translate

表达相同想法的另一种方法:

  • 如果加速CPU不能加速程序,则可能是输入输出界。

  • 如果加速I / O(例如使用更快的磁盘)无济于事,则您的程序可能受CPU限制。

(我使用“可能是”是因为您需要考虑其他资源。内存是一个示例。)

来源
Translate

当您的程序正在等待时输入输出(例如磁盘读/写或网络读/写等),即使程序已停止,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绑定进程。例如:-calculator,internet Explorer

CPU绑定进程:-如果进程寿命的大部分时间都花在cpu上,那么它就是cpu绑定进程。

来源
Leave a Reply
You must be logged in to post a answer.