Влияет ли частота машины на время выполнения моего кода? - PullRequest
0 голосов
/ 05 сентября 2011

Я написал код, который выполняет определенную задачу;теперь, когда я буду работать на другой машине (с другой частотой), это займет другое время?

Ouestion

Если мой код имеет одну функцию printf, тогдатребуемое количество машинных циклов будет фиксированным для всех машин, или это будет зависеть от системы?

Моя системная частота равна 2,0 ГГц, что это значит?

Ответы [ 3 ]

5 голосов
/ 05 сентября 2011

Время выполнения кода будет зависеть, помимо прочего, от частоты процессора.При прочих равных условиях более быстрый процессор займет меньше времени для выполнения тех же инструкций.Но количество других вещей, которые могут повлиять на синхронизацию, огромно, включая O / S, компилятор, микросхемы памяти, диск и т. Д.

Если машины имеют одинаковую базовую архитектуру, то число циклов машиныфиксированный.Однако современные архитектуры ЦП очень сложны, и могут быть различия в зависимости от того, что еще выполняется на машине в то же время.Если на компьютерах установлены чипы разных типов (даже в рамках семейства, такого как Intel Core 2 Duo), результаты могут быть разными.Если машины имеют разную архитектуру (скажем, Intel против SPARC или PowerPC), то все ставки выключены.

Если «частота равна 2,0 ГГц», то это означает, что тактовая частота основного процессора составляет 2,0 ГГц.,Сколько инструкций выполнено за это время, зависит от инструкций и параллелизма (сколько ядер), типа ЦП и т. Д. Частота ЦП отделена от частоты шины, которая контролирует скорость считывания памяти (поэтому яЯ использую процессор 2,0 ГГц, но шина памяти работает на частоте 1067 МГц).

4 голосов
/ 05 сентября 2011

Тактовая частота компьютера, конечно, влияет на время выполнения программы, но просто указать, что процессор работает на частоте 2 ГГц, абсолютно недостаточно, чтобы определить, сколько именно программа будет работать, потому что есть Огромные различия в «эффективности» между семействами процессоров - процессор семейства Intel Core будет просто выполнять намного больше работы за единицу времени, чем его предшественник, Pentium 4, когда оба будут работать с одинаковой скоростью.

Так что да, скорость процессора серьезно влияет на время выполнения программы, но просто значение ГГц совершенно недостаточно. Вот почему были установлены различные тесты, чтобы можно было сравнить работу, которую процессор может выполнять в единицу времени. Эти тесты будут выполнять набор инструкций, которые можно считать типичной рабочей нагрузкой в ​​выбранном сценарии, и время, которое займет их выполнение. Проверьте точильный камень и Dhrystone для некоторых более старых, но относительно простых для понимания тестов.

Тот факт, что существует множество эталонных тестов, лишь доказывает, что совсем непросто получить сопоставимое значение, по поводу релевантности которого все могут согласиться, это остается темой для обсуждения ...

0 голосов
/ 05 сентября 2011

Частота процессора определяет, сколько работы он может выполнить за определенное время.Код одинаков на всех машинах (т.е. это скомпилированный код), поэтому да, частота будет влиять на время, необходимое для запуска вашей программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...