The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors,, TOCS 2015
Discussion lead: Ignacio Cano, Amrita Mazumdar, Liang Luo
Consider the rename model in Figure 10. What happens if the programmer makes a mistake here? For example, let’s remove “if src == dst: return 0”. What changes in the output of the Analyzer? How does that change the generated test cases by Testgen?
Consider the example in 4.5, why the original counter isn’t scalable, but is scalable if we omit the return types?
posix_spawn
and fork+exec
are two ways for creating a new process.
Using the commutativity rule, explain whether they can be scalable.
Please be specific.
Compare the sv6 kernel with the patched Linux kernel from Wednesday. What conclusions can you draw about the scalability of the two kernels? What are the pros/cons of each approach?
Provide a list of questions you would like to discuss in class. Feel free to provide any comments on the paper and related topics (e.g., which parts you like and which parts you find confusing).