90 likes | 232 Views
Can TM help in addressing the “ Multicore Software Scaling Problem? ”. Microsoft TM Panel July 2007 Nir Shavit Tel Aviv University. How do we make use of multicores?. Amdahl’s Law: Speedup = 1/( ParallelPart/N + SequentialPart ) Pay for N = 8 cores SequentialPart = 25%
E N D
Can TM help in addressing the “Multicore SoftwareScaling Problem?” Microsoft TM Panel July 2007 Nir Shavit Tel Aviv University
How do we make use of multicores? Amdahl’s Law: Speedup = 1/(ParallelPart/N + SequentialPart) Pay for N = 8 cores SequentialPart = 25% Speedup = only 2.9 times! Must parallelize applications on a very fine grain!
The reason we get only 2.9 speedup c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c Need Fine-Grained Locking Fine Grained Coarse Grained 25% Shared 25% Shared 75% Unshared 75% Unshared
c C C Traditional Scaling Process 7x Speedup 3.6x 1.8x User code Traditional Uniprocessor Moore’s law
7x 3.6x Speedup 1.8x c c c c c c c c c c c c c c Ideal Multicore Scaling Process User code Multicore Only Wishful Thinking!
c c c c c c c c c c c c c c Lock-based Code Doesn’t Scale Speedup 2.9x 2x 1.8x User code Multicore Vendors must rewrite code for each machine
Is TM part of the answer • Can transactions help maintaining the traditional scaling process? • At least smooth out the transition points… • Write code once using transactions (short transactions?) • Have TM tuned for each machine • So no need rewrite software • Like a VM for synchronization… • Key point: transactions are the abstraction that is missing…
7x 3.6x Speedup 1.8x c c c c c c c c c c c c c c Can TM Make Scaling Smoother? User code TM code Multicore
Questions to ponder… • What needs to be added to the TM designs to make transactional code be “machine independent?” • What needs to be added to compilers? Languages?