In rendering animations it may be beneficial to consider options other than parallelizing by computing each frame on a different machine, as it may be possible to use the similarity of adjacent frames to speed up computation.
To add just a little bit more context to this slide, initially the idea behind a better renderfarm was to be able to render the animation at film quality faster. But fast forward 10 years and we still take hours to render a single movie frame, the same time as when some of the earlier Pixar animations were being rendered! What gives?
Turns out the final movie is treated as time constrained more or less, they just add more and more and more detail into the scenes, with better lighting, shading, textures, and more.
I'm currently taking a simulations class and we just finished talking about mass springs systems and fluid simulations. It struck me how parallelizable some of these models can be.
How to understand required footprint often increases with number of processors? Does it mean when we increase the number of processors, the size of working set will also increase?
That's sort of correct. It's more like the number of working sets increase, so the overall memory footprint increases. Each thread typically has some private, per-thread data and data structures that it uses for its computation. As you increase the number of processors, and thus the number of threads, naturally you need additional data and data structures per thread, so the overall footprint increases.
For example, in assignment 2, you may have used shared memory to assist with rendering the circles. If you did, then the total memory footprint would increase as you increased the number of thread blocks. This is what they mean by the footprint increasing.