optimization - Какво означават термините "свързани с процесора" и "свързани с I / O"?

Translate

Какво означават термините "CPU bound" и "I / O bound"?

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

Всички отговори

Translate

Това е доста интуитивно:

Програмата е свързана с процесора, ако ще върви по-бързо, ако процесорът е по-бърз, т.е. прекарва по-голямата част от времето си, просто използвайки процесора (извършвайки изчисления). Програма, която изчислява нови цифри от π, обикновено е свързана с процесора, това е просто смачкване на числа.

Програмата е свързана с I / O, ако ще върви по-бързо, ако I / O подсистемата е по-бърза. Коя точно I / O система е предназначена може да варира; Обикновено го свързвам с диск, но разбира се мрежите или общуването като цяло също са често срещани. Програма, която преглежда огромен файл за някои данни, може да се превърне в I / O, тъй като тесното място е четенето на данните от диска (всъщност този пример може би е старомоден в наши дни със стотици MB / s идващи от SSD).

източник
Translate

Обвързан с процесораозначава, че скоростта на напредване на процеса е ограничена от скоростта на процесора. Задача, която извършва изчисления на малък набор от числа, например умножаване на малки матрици, вероятно ще бъде свързана с процесора.

I / O Boundозначава, че скоростта, с която процесът напредва, е ограничена от скоростта на I / O подсистемата. Задача, която обработва данни от диск, например, броейки броя на редовете във файл, вероятно е свързана с I / O.

Обвързана паметозначава, че скоростта на напредване на процеса е ограничена от наличното количество памет и скоростта на този достъп до паметта. Задача, която обработва големи количества данни в паметта, например умножаване на големи матрици, вероятно ще бъде свързана с паметта.

Обвързан кешозначава скоростта, с която ходът на процеса е ограничен от количеството и скоростта на наличния кеш. Задача, която просто обработва повече данни, отколкото се побира в кеша, ще бъде свързана с кеша.

I / O Bound ще бъде по-бавен от Memory Bound ще бъде по-бавен от Cache Bound ще бъде по-бавен от CPU Bound.

Решението за свързване на I / O не е задължително да се получи повече памет. В някои ситуации алгоритъмът за достъп може да бъде проектиран около ограниченията за I / O, паметта или кеша. ВижтеКеширащи алгоритми без видимост.

източник
Translate

CPU bound означава, че програмата е тясно затворена от CPU или централния процесор, докатоI / Oобвързано означава, че програмата е ограничена от I / O или вход / изход, като четене или запис на диск, мрежа и т.н.

Като цяло, когато се оптимизират компютърните програми, човек се опитва да потърси препятствието и да го премахне. Знанието, че вашата програма е свързана с процесора, помага, така че човек да не оптимизира ненужно нещо друго.

[И под „тесно място“, имам предвид нещото, което кара програмата ви да върви по-бавно, отколкото би било в противен случай.]

източник
Translate

Друг начин за формулиране на същата идея:

  • Ако ускоряването на процесора не ускори вашата програма, може да е такаI / Oобвързан.

  • Ако ускоряването на I / O (напр. Използване на по-бърз диск) не помогне, програмата ви може да е свързана с процесора.

(Използвах „може да е“, защото трябва да вземете предвид други ресурси. Паметта е един пример.)

източник
Translate

Когато програмата ви чакаI / O(т.е. четене / запис на диск или четене / писане в мрежа и т.н.), процесорът е свободен да изпълнява други задачи, дори ако програмата ви е спряна. Скоростта на вашата програма ще зависи най-вече от това колко бързо може да се случи IO и ако искате да я ускорите, ще трябва да ускорите I / O.

Ако вашата програма изпълнява много програмни инструкции и не чака I / O, тогава се казва, че е свързана с процесора. Ускоряването на процесора ще накара програмата да работи по-бързо.

И в двата случая ключът към ускоряването на програмата може да не е да се ускори хардуерът, а да се оптимизира програмата, за да се намали количеството на IO или процесора, от които се нуждае, или да се направи I / O, докато тя също така прави CPU интензивно неща.

източник
Alma Lee
Translate

I / O граница се отнася до състояние, при което времето, необходимо за завършване на изчисление, се определя главно от периода, прекаран в изчакване на приключване на операциите за въвеждане / извеждане.

Това е обратното на задача, която е свързана с процесора. Това обстоятелство възниква, когато скоростта, с която се искат данни, е по-бавна от скоростта, която се консумира, или, с други думи, повече време се изразходва за искане на данни, отколкото за тяхната обработка.

източник
dua
Translate

Процеси, свързани с IO: прекарвайте повече време в IO, отколкото за изчисления, имайте много кратки пакети на процесора. Процесори, свързани с процесора: прекарвайте повече време в изчисления, няколко много дълги пакета на процесора

източник
Translate

Процес на I / O обвързване: - Ако по-голямата част от живота на даден процес е прекаран в i / o състояние, тогава процесът е ai / o обвързан процес. Пример: -калкулатор, Internet Explorer

Процес, свързан с процесора: - Ако по-голямата част от живота на процеса е прекаран в процесора, тогава това е процес, свързан с процесора.

източник
Leave a Reply
You must be logged in to post a answer.