Меня интересует как пул собирает из шар общую картинку, и как проверяет каждую шару на валидность.
Если правильно понимаю то изначально есть кусок работы, который делится на шары, шары даются воркерам и те их считают.
Нет, не так.
Кусок работы - это "бросить монетку 80 раз подряд орлом вверх". (Для примера)
Как ты будешь её бросать - никого не волнует.
Шара - это последовательность из 80 бросков, где первые 60 сам воркер проверил и они действительно все орлом вверх.
Сервер, разумеется, тоже проверяет.
Вот Собрались Вася, Петя и Коля. И стали кидать монетки
Каждый кидает монетку 80 раз и если первые 60 раз она выпала орлом - то отправляет шару
даже не проверяя что выпало в конце
Вася отправил на сервер 100 шар - но ни одна из них не была длины 80
Петя отправил на сервер 150 шар - ему тоже не повезло.
Коле повезло, его 50-ая шара оказалась подходящей и пул получил награду.
Награду разделили пропорционально количеству присланных шар - то есть Васе досталась треть
всей награды, Пете досталась половина награды, а Коле досталась одна шестая.