I'm trying to find a suitable algorithm for the following problem.
We have n computers with a1, a2, a3,....,an processing powers. We have m (m >> n) number of tasks which require b1, b2,....bm amount of work to do.
Distribute all of those m tasks among the n computers so that the ratios of work computers have to do are approximately a1:a2:a3:....:an. One task is assigned only to one machine and no tasks should be left out without assignment.
In most of the cases, the ratio a1:a2:....:an may not be possible to achieve, so only an approximation is needed.
Brute forcing can't be applied here since m can be large.
Can anyone please mention an algorithm to come up with an acceptable solution to this problem?
