does anyone know if there exists in the literature an algorithm that solves the following problem?
I have M different and indipendent sums, and P processors. The size of sums are in ascending order with the latest sums of much larger size than the first : $ N_1 < N_2 << N_i << N_M $
The easiest way is to divide the M sums in order to have more sums but all of the same size. Where this size could be $N_{bal}$:
$ N_{add}=\sum_{i=1}^{M}{N_i}\\ N_{bal}=round(\frac{N_{add}}{P}) $
I work in a distribuited memory cluster, and so if I split sums, I have to aggregate results of splitted sums to have the initial M solutions, with a lot of wasted time spent in processor communications (I work with MPI).
I made an algorithm that tries to keep the workload for each processor close to $N_{bal}$ , assigning little sums to a single processor, or split large sums between groups of processors.
I searched the web for a solution to this problem but have not found anything useful, does anyone know some algorithm?