Previous | Next --- Slide 14 of 46
Back to Lecture Thumbnails
kayvonf

Every year 15-418/618 becomes even more about how modern hardware architectures aim provide highly efficient processing solutions for key computing problems. (Note that efficient does not necessarily imply parallel.)

pdp

For the question, "Is 2x speedup on computer with 10 processors a good result?", shouldn't the notion of speedup and efficiency also take into consideration what kind of tasks the chip/computer is intended for? For example, a computer with 10 processors might give good speed up for very high-end graphics or big data applications, while the same might not give a good speed up on our laptop applications since most cores might be idle. So, shouldn't the question be posed like 'For so and so task, is 2x efficiency with 10 cores good?' Alternatively, is the speedup or efficiency measured for some specific set of standard tasks like addition, multiplication, etc?

nemo

I think this was mentioned in the lecture today. For this lecture, speedup is measured by comparative analysis (with and without parallelism) on the same task(s). You are right that the speedup would vary depending on the type of tasks. I think how we have looked at speedup in the most simplified way. In reality, measuring speedup and doing the comparative analysis is not that straightforward.

yyc

I agree with pdp that there probably is no single yes/no answer for the question "is 2x speedup on computer with 10 processors a good result?". And I would like to add to it that, if someone is running a business and making a decision on whether it's worth using more processors to achieve some speedup, then marginal profit is probably something worth thinking of. That is, will adding one more processor give me more profit, with the cost subtracted?

This is not quite related to course material but I just want to share some thoughts(:

o__o

It's interesting to note the difference between speed and utility. A faster program could require more cores but have terrible utility of those cores, whereas a more efficient program may be slower but wastes less processing power.

hdd

From a hardware designer's perspective, it is an interesting problem to observe. It can also be possible that the hardware has the capacity to compute, but it may not have the necessary memory infrastructure to execute all the computations it can do. The next challenge provided a system requirement for speedup is how to make design decisions to ensure that the right speedup is obtained. Is it better to invest and design fast communication blocks at the cost of the computational capacity ? Is it better to invest in the memory caches and the memory organization between processors ? And the answer to all this is the traditional "it depends". A products performance requirement and the relative cost the consumer is willing to pay for the device decides the system architecture. I guess this slide completely captures these concepts. At face value, we should not say a '2x' speedup is bad or good but it depends on the application and the cost at which the product is being targeted for.

Shirobako

Is it possible to find out how many processors would be in best efficiency and speed as a whole by pure algorithm (i.e. not trying with different number of processors by brute force)? If so, then it is no longer a problem to use hardware efficiently. Since programs are fixed, I think it is possible to generate something as its property.

anindyag

Looking back at this question, and from what we have learnt so far, I think it will be very difficult to have a general algorithm to come up with efficient hardware use for any program, simply due to the number of different factors and variables involved. Two programs may have the same code, but may be used for different utilities, so their respective efficiency requirements may be very different.