Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / hyper и race 🆕 / Настройка с :batch и :degree
Тест — batch и degree
Чем управляет :batch(50) в выражении
(1..1000).hyper(:degree(4), :batch(50))?
| 1 | Сколько элементов рабочий поток обрабатывает за один заход, прежде чем взять ещё |
| 0 | Сколько рабочих потоков выполняются одновременно |
| 0 | Сколько элементов разрешено обработать всему конвейеру |
| 0 | Число процессорных ядер, которые может использовать программа |
:batch — это размер порции: сколько
элементов рабочий поток берёт за раз. Число рабочих потоков задаёт
:degree (здесь 4). Большая пачка снижает
издержки координации, маленькая — равномернее распределяет неравную
работу. И то и другое — подсказки, которые компилятор может подправить
или проигнорировать.