Параллельные вычисления: почему больше потоков не значит быстрее

Сегодня • arXiv cs.AI
Десятилетиями программисты решали проблему производительности одинаково: добавляли больше ядер, больше потоков, больше параллелизма. Но исследование Stanford AI Lab обнаружило неудобную правду: в 73% случаев дополнительные потоки простаивают из-за неправильного планирования.

Общепринятая мудрость гласит: чем больше задач выполняется одновременно, тем быстрее работает система. Индустрия построила на этом целые архитектуры — от многоядерных процессоров до распределённых кластеров. Планировщики задач стараются запустить максимум процессов параллельно, считая это показателем эффективности.

Но новый метод Block-Substitution переворачивает эту логику. Вместо максимизации параллелизма он анализирует зависимости между задачами и стратегически откладывает некоторые из них. Результат: на тестовых планах из 1000+ задач производительность выросла на 40% при использовании меньшего количества потоков.

Секрет в том, что исследователи назвали 'умной последовательностью'. Алгоритм выявляет блоки задач, которые кажутся независимыми, но на самом деле конкурируют за ресурсы. Заменяя порядок выполнения этих блоков, система избегает узких мест и простоев. В одном эксперименте 16-поточная система работала медленнее 8-поточной именно из-за таких скрытых конфликтов.