Группа специалистов Массачусетского технологического института поэкспериментировала с исполнением Linux на 48 процессорных ядрах, чтобы проверить, насколько масштабные изменения потребуется внести в операционную систему для поддержки многоядерных чипов. В ходе эксперимента исследователи запускали приложения, создающие большую нагрузку на процессор, и затем последовательно активизировали от одного до 48 ядер одновременно. На некотором этапе с активацией новых ядер производительность системы вместо роста начала замедляться. Чтобы найти этому объяснение, исследователи разработали несколько инструментальных средств, которые помогли выяснить причину: обрабатывая определенный фрагмент данных, ядро увеличивает на единицу центральный счетчик, а закончив обработку, уменьшает его. С ростом количества активных ядер задачи, использующие одни и те же данные, разбиваются на все более малые подзадания, в связи с чем слишком большая часть мощности ядер начинает уходить на работу со счетчиком, и общее быстродействие падает. Исследователи переписали код Linux, снабдив каждое ядро собственным счетчиком, время от времени синхронизируемым с оставльными, в результате чего производительность резко выросла. По мнению экспериментаторов, результаты их исследования свидетельствуют о том, что Linux уже является высокомасштабируемой ОС, а мелкие недоработки в области поддержки многоядерности легко исправимы.

Поделитесь материалом с коллегами и друзьями

Купить номер с этой статьей в PDF