Антон Потапов
Компания: Huawei
Сегодня написание высокопроизводительного кода, полностью использующего возможности современных процессоров, невозможно без использования параллелизма. При этом возникают две проблемы: сколько рабочих потоков создавать и как разделить работу (задачи) между ними.
Вторая проблема наиболее интересна. Существуют два основных подхода к ее решению: распределение работы (Work Sharing) и перехват работы (Work Stealing). Каждый имеет свои достоинства и недостатки. Сделать правильный выбор не так уж и просто, особенно если речь идет о библиотеке связующего ПО (middleware), где по определению неизвестны все детали конечного приложения (рабочего окружения).
Мы рассмотрим оба подхода, углубимся в их достоинства и недостатки, а также в последствия правильного и неправильного выбора. Вы узнаете (или вспомните), что такое oversubscription, work stealing и т.п.
Компания: Huawei