Быстрый вопрос о балансировке работы.
Программа обработки файлов параллельно. Допустим, размер файла является приблизительным показателем того, сколько времени потребуется для его обработки. Все файлы известны заранее.
У нас есть N узлов, которые могут работать с файлами. Как распространить эти файлы так, чтобы каждый узел имел самый близкий к среднему объему работы.
Идея довольно тривиальна, и у меня есть пара идей, но она действительно кажется классической проблемой, лучшее решение которой уже существует.
Я просто не знаю, как это называется.
Кто-то знает это?
Спасибо!
EDIT:
Хорошо, извините, я опустил много информации. Я работаю над реализацией MPI. Стандартная система мастер-раб. Один главный узел проверяет целевой каталог, выбирая файлы, которые необходимо обработать, а затем назначает файлы подчиненным задачам MPI, чтобы они могли выполнять свою часть параллельно.
Количество подчиненных узлов меньше 32.
Количество целевых файлов менее 10000.