Источник опубликовал интересное размышление Джека Гэнсла (Jack G. Ganssle), специалиста и консультанта по разработке встраиваемых систем.
По мнению Гэнсла, король, если под этим словом подразумевать
многоядерные технологии, получился голый. Увеличение количества ядер
сейчас превозносится, как решение проблем, вызванных стагнацией в
области наращивания частот: В ряде специализированных задач может быть получен существенный выигрыш от применения симметричной многопроцессорной обработки.
В некоторых приложениях можно уменьшить энергопотребление за
счет перехода к большему количеству процессоров, работающих на
пониженной частоте.
Есть и третья «проблема», которую решает многоядерность:
производители получают возможность наращивать количество транзисторов в
своих продуктах, продлевая жизнь закону Мура.
Гэнсл ссылается на данные исследования, опубликованного в IEEE
Spectrum. Согласно этим данным, даже классические задачи, оптимальные
для параллельных вычислений, такие, как моделирование погоды, мало
выигрывают от наращивания числа ядер. Так, при увеличении количества
ядер с двух до 64 производительность удается увеличить лишь в пять раз.
На определенном этапе эффект от появления дополнительных ядер сводится
к нулю.
Этот эффект получил название nulticore effect, что, как
подсказал коллега Peek, можно приблизительно перевести, как «эффект
лишнеядерности» (в оригинале обыгрывается сходство с термином multicore
– многоядерный, при полной противоположности по смыслу: nulticore
буквально значит «нульядерность»).
Увеличение количества ядер, использующих общую шину памяти, не
позволяет повысить производительность. Ресурс пропускной способности
практически исчерпан даже силами одного ядра. Память не успевает за
«машиной», способной «проглотить» несколько инструкций каждую
наносекунду. Эта проблема общеизвестна: не случайно современные процессоры
оснащены сложными конвейерами и кэш-памятью. Каждое обращение к шине
сопряжено с тактами ожидания, замедляющими работу. Добавьте ядер,
каждое из которых требует доступа к одной и той же шине, и
производительность системы упадет. Другая проблема заключается в сложности реализации
многозадачной среды. Увеличение числа ядер увеличивает риск
неустойчивой работы. Автор заключает: со временем перечисленные проблемы будут
решены, но пока в общем случае более привлекательным выглядит
асимметричный многопроцессорный подход, когда каждое ядро имеет
собственное пространство памяти. Источник: EE Times
|