Previous | Next --- Slide 9 of 64
Back to Lecture Thumbnails
rrp123

How would this "semi-static" assignment work? Would you have a daemon that constantly checks the amount of work each processor is doing at a certain point in time, and based on whether a significant number of processors are doing work or not, would you reassign work? Is there a code sample of this sort of assignment?

Thanks!

thunder

I think we can take the Particle simulation as an example. Assume the computational time for each particle is basically the same. We need to divide the space so that each piece contains approximately the same number of particles which will be computed in one process. Here "semi-static" means that due to the movement of the particles, the exact distribution of the particles is unknown, but it can be sure that their position in the near future will be near their position now and thus the division of the space now can still be valid in the near future. Therefore, I think the process of the assignment for this example can be: first, divide the space according to the current distribution of the particles; second, for every pre-defined time interval, adjust the division based on the distribution of the particles at that time. And for specific implementations, I think there is no fixed way as long as it follows the idea.

viveksri

Is this assuming that the amount of work each task needs to perform doesn't change over time, and we're just changing the assignment of work to processors? If that's the case, is there a similar kind of dynamic work-assignment policy that also works for dynamically adjusting workloads?

kapalani

Is the re-adjusting process also done in parallel? Otherwise it seems like there will be a periodic serial execution to determine the new work assignment, and based on the amount of unevenness in the work this might perform worse than just a static assignment

efang

@kapalani It does look like the re-adjustment process is a serial execution, however note that each work assignment policy has their own advantages and disadvantages. It is true that this semi-static assignment might perform worse than static assignment in some circumstances, however so too can dynamic assignment. This assignment policy works best under the condition that the work is predictable in the near term but changes. If it turns out the nature of the work is not of that nature, then you would wish to use another policy