Как понимание работы RAM ускорило на 30% пакетный шлюз 4G/5G-сетей и позволило обрабатывать 4M пакетов в секунду на одном ядре и 100 Gbps на NUMA node

Высокопроизводительные вычисления

Доклад принят в программу конференции

Мнение Программного комитета о докладе

С одной стороны работа с памятью - кажется очевидной задачей со стандартными решениями, однако всегда найдутся хитрости. Посмотрим на эффективную работу с ОЗУ в применении к телекому, а также оценим современные возможности программной обработки сетевых пакетов.

Целевая аудитория

Senior C++ разработчики высокопроизводительных систем.

Тезисы

Чаще всего узким местом в высокопроизводительных системах является оперативная память (RAM). Если CPU способны выполнять до 4-х инструкций за такт, то обращение к памяти от единиц тактов для кеша L1 до сотен тактов для RAM. Если при разработке ПО учесть организацию RAM, то можно ощутимо ускорить производительность.

На примере нашего приложения расскажем как мы при помощи профилирования нашли узкие места в программе. Какие CPU метрики (DTLB miss, L2/L3 cache miss, RAM throughput) проседали, какие решения мы применяли для увеличения производительности. Эти простые методы применимы для широкого круга задач разработки.

Максим Шахметов

ООО "Протей-Лаб"

22 года в IT. Прошел путь от разработчика до заместителя генерального директора по исследованиям. Разрабатывал проекты связанные с VoIP - колл-центр, MCPTT; стриминговым видео - раздачей и QOE; мобильными пакетными сетями - 4G & 5G.

Видео