Исследователи из университета штата Северная Каролина (США)
анонсировали свою работу, которая способна повысить производительность
приложений общего характера на многоядерных процессорах. Основная идея нового
подхода – выделить операции управления памятью в отдельный поток исполнения
(тред). Кроме теоретических выкладок, ученые готовы представить готовую
библиотеку, которая, если присоединить ее на этапе компиляции, повышает
скорость работы приложений за счет исполнения команд по выделению и
освобождению памяти в отдельном параллельном потоке.
Статья, которую четверо ученых из университета Северной
Каролины планируют представить на грядущем симпозиуме по параллельным
вычислениям (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%, по сравнению с работой без
шифрования. Таким образом, простое выделение операций с памятью в отдельный
тред помогает минимальными усилиями добиться максимальной утилизации многоядерного
процессора.
По материалам сайтов InformationWeek
и PhysORG.
|