Несколько ядер = лучше многозадачность?

1694
Taylor Huston

В частности, я смотрю на i5-3570k или FX-8350, но это заставило меня задуматься над более общим конкретным вопросом о том, как многоядерные процессоры могут улучшить общую многозадачность.

Прочитав множество обзоров, тестов и т. Д., Все в основном говорят одно и то же: более быстрый 4-ядерный I5 превосходит более медленный 8-ядерный FX в большинстве приложений, если только это приложение специально не кодируется, чтобы использовать преимущества более чем 4 ядер. Игры особенно хорошо работают на i5.

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

Например, в любой момент в течение дня у меня может быть открыто несколько браузеров с несколькими вкладками, например, Photoshop или Visual Studio, несколько фоновых программ (антивирус, Steam, Keepass и т. Д.). И это в светлый день.

Итак, мой вопрос: теоретически, хотя более быстрый 4-ядерный процессор будет запускать отдельные части программного обеспечения быстрее самостоятельно, разве 8-ядерный процессор не может быть лучше при запуске нескольких программных продуктов, даже если они не обязательно оптимизированы под 8-ядерный процесс одновременно?

3
Теоретически, но многое будет зависеть от того, насколько хороша ОС при распределении приложений между различными ядрами. ChrisF 10 лет назад 0

2 ответа на вопрос

2
trapezoid

Загрузка процессора Linux

Одной из полезных мер является концепция загрузки процессора в Linux . По сути, каждое ядро ​​ЦП представляет собой 1,00 доступных единиц нагрузки, а каждая задача, работающая на 100% ядра, равна 1,00 единицам нагрузки. Для сервера с интенсивной обработкой идеальной нагрузкой, вероятно, является именно количество ядер ЦП (нагрузка 4,00 для 4 ядер ЦП).

Занятый цикл (что-то вроде «while (true)») может занимать 100% одного процессора, что составляет 1,00 единиц нагрузки. Однопоточный эталон также достигает максимума в 1,00. Оптимизированный многоядерный тест может занять больше ядер, вплоть до 8.00, доступных на FX-8350.

Но большинство ваших приложений (Chrome + Firefox open, Photoshop, Visual Studio) не потребляют так много ресурсов ЦП, когда работают в фоновом режиме. Правда, они могут работать на нескольких ядрах, но если они используют только 10% доступного времени (0,10 единицы нагрузки), эти четыре приложения увеличивают нагрузку до 0,40, и вы получаете небольшую выгоду от наличия более одного ядра ЦП. Аналогично, приложения, занятые блокировкой доступа к диску или сети, не будут использовать процессорное время, пока они ждут.

Средняя нагрузка> 4,00

В случаях, когда загрузка вашего приложения составляет от 4,00 до 8,00, скорее всего, именно здесь производительность FX-8350 будет отличаться. Нагрузка 5,00 на 4-ядерный ЦП может привести к большой конкуренции за ресурсы ЦП, при этом переключение задач между задачами усугубляет накладные расходы.

Средняя нагрузка <4,00

Похоже, ваш вопрос касается тех времен, когда математика не совсем ясна: будут ли лучше 8 ядер при рабочей нагрузке менее 4.00. Для довольно постоянной серверной рабочей нагрузки вы можете запустить некоторые тесты и посмотреть, есть ли на самом деле какая-то выгода. Для постоянно меняющейся ежедневной вычислительной нагрузки нет явного победителя.

1
LawrenceC

Это очень сильно зависит от приложения, ОС и того, как оно выполняет свою работу.

Если приложение разработано как однопоточное, никакие дополнительные ядра не помогут его производительности. Однако вы могли запускать дополнительные приложения, используя другие ядра, ЕСЛИ операционная система была достаточно умна, чтобы распределять работу таким образом. Поэтому дополнительные ядра могут обеспечить небольшое дополнительное преимущество, особенно для нескольких приложений, работающих одновременно.

Дополнительные ядра не предоставляют больше возможностей ввода / вывода. Поэтому, если приложение в основном связано с вводом-выводом, увеличение производительности от дополнительных ядер может быть незначительным.

Похожие вопросы