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

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

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