Previous | Next --- Slide 33 of 40
Back to Lecture Thumbnails
xwenwenwen

Just want to make sure that I understand the logic flow of these slides correctly: Since ILP, the parallelism in hardware level, has restrictions(diminishing returns), it's important for us to write parallel programs for speedups.

rramo

@xwenwenwen In addition to the limitations of ILP, we also have frequency scaling limited by power, i.e. the "power wall" that imposes physical restrictions on our processor design.

ananyak

How important is parallel programming in applications that regular consumers use? For media applications (eg. image editing), scientific computing, weather prediction, etc, parallel programming is obviously essential. However, in a regular computer, why do programs really need to be parallel? An ordinary user probably has many processes open (multiple tabs of Chrome, music, text documents), so the OS could simply leverage the power of multiple cores by distributing the different processes across different cores. So does this limit the scope of what programs really need to be parallelized?

vrkrishn

@ananyak

Parallel programming research is important for even common applications that consumers use because it is quickly becoming the major force by which we can keep speeding up devices to match consumer expectations. In your example of computer tabs, while it is true that user may have multiple tabs open, in practice they are only actively processing on one of those tabs at a time (for rendering, parsing, sending requests...).

By finding parallelism and enabling it on consumer applications, we allow the OS to make the decision of whether parallelism should be used based on dynamic need, instead of having to guess about usage cases.

In regards to parallelism in web browsers, here is an interesting read https://www.usenix.org/legacy/event/hotpar09/tech/full_papers/jones/jones.pdf