Questions: Multicore Processors and Hardware Multithreading
4 questions to test your understanding
Score: 0 / 4
Question 1 Multiple Choice
Why did mainstream processor makers shift from ever-faster single cores to multicore chips in the mid-2000s?
ATransistors stopped getting smaller, so no more cores could be added
BRaising clock rates further caused too much power use and heat, so extra transistors were spent on more cores instead
COperating systems could not schedule threads on a single core
DMemory became faster than processors, so single cores sat idle
Transistor counts kept growing, but the power and heat from higher clock rates hit practical limits, a problem often called the power wall. Designers used the growing transistor budget to place several cores on a chip instead of making one core run faster.
Question 2 Multiple Choice
In a core with simultaneous multithreading (SMT), such as Intel's Hyper-Threading, which statement is most accurate?
AEach hardware thread has its own complete set of execution units
BEach hardware thread has its own program counter and registers, while the threads share the core's execution units and caches
COnly one thread can issue instructions in any given cycle
DThe threads must belong to the same process
SMT duplicates the per-thread architectural state (program counter, registers) so the core can track several threads, and it can issue instructions from more than one thread in the same cycle into shared functional units. Fine-grained and coarse-grained multithreading issue from only one thread at a time.
Question 3 True / False
A program with no threading code will run about four times faster on a four-core processor than on a one-core processor with the same core design.
TTrue
FFalse
Answer: False
A single-threaded program runs on one core at a time. The other cores can run other programs, but this program does not speed up unless it is rewritten to divide its work among threads or processes.
Question 4 Short Answer
A program spends 90% of its time in work that can be split perfectly across cores and 10% in work that must run serially. Using Amdahl's law, estimate its speedup on 8 cores.
Think about your answer, then reveal below.
Model answer: Speedup = 1 / (0.10 + 0.90 / 8) = 1 / (0.10 + 0.1125) = 1 / 0.2125, which is about 4.7.
Even with 8 cores, the serial 10% limits the result to well under 8x. As cores grow without limit, the speedup approaches 1 / 0.10 = 10, never more.