| Log Message: |
Modify the way the packet size is calculated following a simple formula aiming at
having all workers finishing at the same time:
n_j = r_j / Sum r_i * N_left
where 'Sum r_i' is the total instantaneous rate, 'r_j' is the instantaneous rate
of worker j and Nleft is the number of cycles left to be done.
The patch also changes the way the size of the calibration packet is calculated:
a fraction is now used instead of an absolute number, which was too small in some
cases; the fraction refers to the average number per worker and defaults to 1%; it
can be changed with the Double_t parameter 'PROOF_PacketizerCalibFrac', e.g.
proof->SetParameter("PROOF_PacketizerCalibFrac", 0.05)
will set it to 5% .
This patch solves the problem observed in the ALICE CAF where the variations of
performance across machines was not correctly taken into account, and increasing
workers was not always leading to an increase of the overall perfomance.
|