optimization - O que significam os termos "CPU bound" e "I / O bound"?

Translate

O que significam os termos "limite de CPU" e "limite de E / S"?

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

Todas as respostas

Translate

É muito intuitivo:

Um programa está limitado à CPU se for mais rápido se a CPU for mais rápida, ou seja, ele gasta a maior parte do tempo simplesmente usando a CPU (fazendo cálculos). Um programa que calcula novos dígitos de π será tipicamente vinculado à CPU, ele está apenas processando números.

Um programa é limitado por E / S se ele fosse mais rápido se o subsistema de E / S fosse mais rápido. O sistema de E / S exato pode variar; Eu normalmente o associo ao disco, mas é claro que a rede ou a comunicação em geral também são comuns. Um programa que procura em um arquivo enorme por alguns dados pode se tornar limitado por E / S, uma vez que o gargalo é então a leitura dos dados do disco (na verdade, este exemplo talvez seja um tanto antiquado nos dias de hoje, com centenas de MB / s vindo de SSDs).

Fonte
Translate

Limite de CPUsignifica que a taxa de progresso do processo é limitada pela velocidade da CPU. Uma tarefa que executa cálculos em um pequeno conjunto de números, por exemplo, multiplicando pequenas matrizes, provavelmente está limitada pela CPU.

I / O Boundsignifica que a taxa na qual um processo progride é limitada pela velocidade do subsistema de E / S. Uma tarefa que processa dados do disco, por exemplo, contando o número de linhas em um arquivo, provavelmente está ligada à E / S.

Limite de memóriasignifica que a taxa na qual um processo progride é limitada pela quantidade de memória disponível e a velocidade desse acesso à memória. Uma tarefa que processa grandes quantidades de dados na memória, por exemplo, a multiplicação de matrizes grandes, provavelmente está ligada à memória.

Limite de cachesignifica a taxa na qual o progresso de um processo é limitado pela quantidade e velocidade do cache disponível. Uma tarefa que simplesmente processa mais dados do que cabe no cache será vinculada ao cache.

O Limite de E / S seria mais lento do que o Limite de Memória seria mais lento do que o Limite de Cache seria mais lento do que o Limite de CPU.

A solução para o limite de E / S não é necessariamente obter mais memória. Em algumas situações, o algoritmo de acesso pode ser projetado em torno das limitações de E / S, memória ou cache. VejoAlgoritmos esquecidos do cache.

Fonte
Translate

Limite de CPU significa que o programa é obstruído pela CPU, ou unidade de processamento central, enquantoI / Ovinculado significa que o programa tem um gargalo por E / S ou entrada / saída, como leitura ou gravação em disco, rede, etc.

Em geral, ao otimizar programas de computador, tenta-se buscar o gargalo e eliminá-lo. Saber que seu programa é limitado pela CPU ajuda, de forma que ninguém otimize desnecessariamente outra coisa.

[E por "gargalo", quero dizer o que faz seu programa ficar mais lento do que seria de outra forma.]

Fonte
Translate

Outra maneira de expressar a mesma ideia:

  • Se acelerar a CPU não acelerar seu programa, pode serI / Olimite.

  • Se acelerar o I / O (por exemplo, usar um disco mais rápido) não ajudar, seu programa pode estar limitado pela CPU.

(Usei "pode ser" porque você precisa levar outros recursos em consideração. A memória é um exemplo.)

Fonte
Translate

Quando seu programa está esperando porI / O(ou seja, um disco de leitura / gravação ou leitura / gravação de rede etc), a CPU está livre para fazer outras tarefas, mesmo se o programa for interrompido. A velocidade do seu programa dependerá principalmente da rapidez com que o IO pode acontecer e, se você quiser acelerá-lo, precisará acelerar o I / O.

Se seu programa está executando muitas instruções de programa e não está esperando por E / S, então é dito que ele está vinculado à CPU. Acelerar a CPU fará com que o programa seja executado mais rápido.

Em ambos os casos, a chave para acelerar o programa pode não ser acelerar o hardware, mas otimizar o programa para reduzir a quantidade de E / S ou CPU de que precisa, ou fazer com que ele faça E / S enquanto também faz uso intensivo da CPU coisa.

Fonte
Alma Lee
Translate

O limite de E / S se refere a uma condição em que o tempo que leva para completar um cálculo é determinado principalmente pelo período gasto esperando que as operações de entrada / saída sejam concluídas.

Isso é o oposto de uma tarefa vinculada à CPU. Essa circunstância surge quando a taxa de solicitação dos dados é mais lenta do que a taxa de consumo ou, em outras palavras, gasta-se mais tempo solicitando dados do que processando.

Fonte
dua
Translate

Processos vinculados a IO: passam mais tempo fazendo IO do que cálculos, têm muitos surtos de CPU curtos. Processos vinculados à CPU: gasta mais tempo fazendo cálculos, poucos surtos de CPU muito longos

Fonte
Translate

Processo vinculado a I / O: - Se a maior parte da vida útil de um processo é gasta no estado i / o, então o processo é um processo vinculado ai / o. Exemplo: -calculator, Internet Explorer

Processo vinculado à CPU: - Se a maior parte da vida útil do processo é gasta na CPU, então é um processo vinculado à CPU.

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