Исследователи из университета штата Северная Каролина (США) анонсировали свою работу, которая способна повысить производительность приложений общего характера на многоядерных процессорах. Основная идея нового подхода – выделить операции управления памятью в отдельный поток исполнения (тред). Кроме теоретических выкладок, ученые готовы представить готовую библиотеку, которая, если присоединить ее на этапе компиляции, повышает скорость работы приложений за счет исполнения команд по выделению и освобождению памяти в отдельном параллельном потоке.
Статья, которую четверо ученых из университета Северной Каролины планируют представить на грядущем симпозиуме по параллельным вычислениям (IEEE International Parallel and Distributed Processing Symposium) в Атланте (США), носит название «MMT: Exploiting Fine-Grained Parallelism in Dynamic Memory Management» (MMT: использование точного параллелизма в динамическом управлении памятью). Сокращение MMT в названии статьи обозначает тот самый отдельный тред управления памятью (Memory Management Thread).
Авторы работы – Девеш Тивари (Devesh Tiwari), Сангун Ли (Sanghoon Lee), Джеймс Так (James Tuck) и Ян Солихин (Yan Solihin) – обнаружили, что множество приложений почти не поддается параллелизации, поэтому на многоядерных процессорах скорость работы этих приложений никак не увеличивается. Многие из таких приложений интенсивно используют выделение специальных областей памяти – это выражается в частом использовании команд «malloc» («зарезервировать память») и «free» («освободить зарезервированную память»). Чтобы частично разгрузить единственный тред обработки в подобных приложениях, ученые выдвинули идею
по выводу операций с памятью в отдельный тред под названием MMT.
Разработчики уже реализовали новый подход к управлению памятью в специальной библиотеке. Чтобы использовать новую технику, программисту достаточно скомпоновать эту библиотеку со своей программой. Ускорение работы проявляется как в клиентских, так и в серверных приложениях, включая веб-серверы и разного рода синтаксические анализаторы (парсеры).
При использовании вместе с библиотекой
PHKmalloc, которая обеспечивает выделение памяти при операциях с открытыми и закрытыми ключами в системах шифрования, технология MMT способна значительно ускорить исполнение операций. Если обычно постоянное резервирование и высвобождение памяти вызывают сильно замедление – в среднем на 21%, в худших случаях до 44% – то при использовании библиотеки MMT замедление составляет всего 1%, по сравнению с работой без шифрования. Таким образом, простое выделение операций с памятью в отдельный тред помогает минимальными усилиями добиться максимальной утилизации многоядерного процессора.