1:"$Sreact.fragment" f:I[57122,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/f87536bfb5d88439.js"],"OutletBoundary"] 10:"$Sreact.suspense" 0:{"buildId":"g01baiUJqgRGYBHwPLsJb","rsc":["$","$1","c",{"children":[[["$","h1",null,{"id":"teaching","children":"Teaching"}],"\n",["$","a",null,{"href":"#6172-performance-engineering-of-software-systems","className":"group no-underline","children":["$","h2",null,{"id":"6172-performance-engineering-of-software-systems","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","6.172: Performance Engineering of Software Systems"]}]}],"\n",["$","p",null,{"children":["Lecturer, Fall 2019.\n",["$","a",null,{"href":"https://learning-modules.mit.edu/class/index.html?uuid=/course/6/fa19/6.172#dashboard","children":"Course materials"}],"."]}],"\n",["$","p",null,{"children":["Lecturer, Fall 2017. ",["$","a",null,{"href":"https://learning-modules.mit.edu/class/index.html?uuid=/course/6/fa17/6.172#dashboard","children":"Course materials"}],"."]}],"\n",["$","p",null,{"children":["Teaching assistant, Fall 2014. ",["$","a",null,{"href":"https://stellar.mit.edu/S/course/6/fa14/6.172/","children":"Course materials"}],"."]}],"\n",["$","div",null,{"className":"not-prose border-l-2 px-3 py-2 bg-blue-50 border-blue-500 dark:bg-blue-950","role":"alert","children":["$","div",null,{"className":"flex","children":[["$","div",null,{"className":"py-1","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","className":"size-6 text-blue-500 mr-3","children":["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}]}]}],["$","div",null,{"id":"alert","children":["$","p",null,{"children":["This class has since been renamed to ",["$","em",null,{"children":"6.106: Software Performance Engineering"}],"."]}]}]]}]}],"\n",["$","a",null,{"href":"#guest-lectures","className":"group no-underline","children":["$","h2",null,{"id":"guest-lectures","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","Guest lectures"]}]}],"\n",["$","p",null,{"children":[["$","em",null,{"children":"What Compilers Can and Cannot Do"}],". Guest lecture in 6.106: Software Performance Engineering. Last presented Fall 2024. ",["$","a",null,{"href":"/presentations/what-compilers-can-and-cannot-do.md","children":"Handout (md)"}],"."]}],"\n",["$","p",null,{"children":[["$","em",null,{"children":"C to Assembly"}],". Guest lecture in 6.106: Software Performance Engineering. Last presented Fall 2024. ",["$","a",null,{"href":"/presentations/c2assembly.md","children":"Handout (md)"}],"."]}],"\n",["$","p",null,{"children":[["$","em",null,{"children":"Revisiting Matrix Multiplication"}],". Guest lecture in 6.506: Algorithm Engineering, Spring 2023. ",["$","a",null,{"href":"/presentations/6506-guest-lecture-2023.pdf","children":"Slides (pdf)"}]]}],"\n",["$","p",null,{"children":[["$","em",null,{"children":"Chromatic Scheduling"}],". Guest lecture in 6.172: Performance Engineering of Software Systems, Fall 2012. ",["$","a",null,{"href":"/presentations/6.172-fa12/chromatic.pdf","children":"Slides (pdf)"}]]}],"\n",["$","a",null,{"href":"#other-classes","className":"group no-underline","children":["$","h2",null,{"id":"other-classes","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","Other classes"]}]}],"\n",["$","a",null,{"href":"#6s898-advanced-performance-engineering-for-multicore-applications","className":"group no-underline","children":["$","h3",null,{"id":"6s898-advanced-performance-engineering-for-multicore-applications","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","6.S898: Advanced Performance Engineering for Multicore Applications"]}]}],"\n",["$","p",null,{"children":"Lecturer, Spring 2017."}],"\n",["$","p",null,{"children":["$","em",null,{"children":"Lectures:"}]}],"\n",["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","em",null,{"children":"Case Study: Matrix Multiplication"}],". ","$L2"]}],"\n","$L3","\n","$L4","\n"]}],"\n","$L5","\n","$L6","\n","$L7","\n","$L8"],["$L9","$La","$Lb","$Lc","$Ld"],"$Le"]}],"loading":null,"isPartial":false} 2:["$","a",null,{"href":"/presentations/6.S898-sp17/mm.pdf","children":"Slides (pdf)"}] 3:["$","li",null,{"children":[["$","em",null,{"children":"A Quick Introduction to the Intel Cilk Plus Runtime System"}],". ",["$","a",null,{"href":"/presentations/6.S898-sp17/cilkrts.pdf","children":"Slides (pdf)"}]]}] 4:["$","li",null,{"children":[["$","em",null,{"children":"Comprehensive Static Instrumentation for Dynamic-Analysis Tools"}],". ",["$","a",null,{"href":"/presentations/6.S898-sp17/csi.pdf","children":"Slides (pdf)"}]]}] 5:["$","a",null,{"href":"#6046-design-and-analysis-of-algorithms","className":"group no-underline","children":["$","h3",null,{"id":"6046-design-and-analysis-of-algorithms","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","6.046: Design and Analysis of Algorithms"]}]}] 6:["$","p",null,{"children":"Teaching assistant, Fall 2009."}] 7:["$","p",null,{"children":["$","em",null,{"children":"Recitations:"}]}] 8:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","em",null,{"children":"Asymptotic Notation and the Master Method"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec1.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Matrix Multiplication and Matrix Product Checking"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec2.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Deterministic Select"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec3.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Augmentation, Order Statistic Trees, Range Trees"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec4.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Dynamic Programming, Viterbi Algorithm"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec6.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Reductions, SAT to 3-SAT, 3-SAT to Vertex Cover, Adaptive Cook Reductions"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec8.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Approximation Algorithms, Set Cover, TSP"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec9.pdf","children":"Handout (pdf)"}]]}],"\n",["$","li",null,{"children":[["$","em",null,{"children":"Sublinear Time Algorithms, Streaming Algorithms"}],". ",["$","a",null,{"href":"/presentations/6.046-fa09/rec10.pdf","children":"Handout (pdf)"}]]}],"\n"]}] 9:["$","script","script-0",{"src":"/_next/static/chunks/9db1af48be35a82e.js","async":true}] a:["$","script","script-1",{"src":"/_next/static/chunks/80709c043166298d.js","async":true}] b:["$","script","script-2",{"src":"/_next/static/chunks/9e1e50242341cd2f.js","async":true}] c:["$","script","script-3",{"src":"/_next/static/chunks/cb71691db624406a.js","async":true}] d:["$","script","script-4",{"src":"/_next/static/chunks/a2080b193aa489d5.js","async":true}] e:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}] 11:null