In: Computer Science
There is a serial program (single thread, single core) that performs a given task in 47 hours. The core operation of this program is a nested loop doing matrix multiplication.
We would like to get a faster result
We have access to a new multi-core, multi-processor machine with the following characteristics. 4-cores 3-processors. Not only does this new machine have multiple processors with multiple cores, but the single core processing speed is also 25% faster than that of the other single core machine.
8.a. What is the theoretical speedup of this new machine over the old?
8.b. What is the theoretical efficiency of this new machine over the old?
8.c. How many more core operations will this new machine have to do compared to that of the old machine?
8.d. How long will it take the new machine to perform the task that took the old 47 hours?
8.a) Number of processors = 3
Number of cores = 4
So, this new configuration has three processors which have total 4 threads/cores. These three processors will enable hyper-threading to enable four cores and each of them will act as individual processor.
According to the question, each of these cores perform 25% faster than the old core
So, (old core speed * 1.25) = new core speed
Multiplying both sides by 4, we get:
(old core speed * 1.25) * 4 = 4 * new core speed
or, 5 * old core speed = new configuration speed [As the new system has 4 processors]
Let us consider, the CPU speed = x
So, the new CPU speed = 5x
So, theoretical speedup of the new machine = 5x / x = 5
8.b) The theoretical efficiency over the old configuration will be = ((5x / x) * 100) % = 500%
8.c) This new machine will do (5 - 1) = 4 more core operations compared to that of the old machine.
8.d) Total time taken by the new machine will be = (47 / 5) hours = 9.4 hours.
Please comment in case of any doubt.
Please upvote if this helps.