1:"$Sreact.fragment" 2:I[84241,["/_next/static/chunks/f0ccedd660a4123a.js"],"Header"] 3:I[55658,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"default"] 4:I[30696,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"default"] 5:I[72777,["/_next/static/chunks/f0ccedd660a4123a.js"],"GoogleAnalytics"] 8:I[57122,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"OutletBoundary"] a:I[18986,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"AsyncMetadataOutlet"] c:I[57122,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"ViewportBoundary"] e:I[57122,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"MetadataBoundary"] f:"$Sreact.suspense" 11:I[42685,["/_next/static/chunks/f0ccedd660a4123a.js"],"default"] :HL["/_next/static/chunks/021ca9b3316f78db.css","style"] 0:{"P":null,"b":"9tbf0HEDXCT-tbPe0Vy5w","p":"","c":["","projects"],"i":false,"f":[[["",{"children":["(mdxPages)",{"children":[["slug","projects","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/f0ccedd660a4123a.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","body",null,{"children":[["$","$L2",null,{}],["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],["$","$L5",null,{"gaId":"G-6TCR87FRLX"}]]}]]}],{"children":["(mdxPages)",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["slug","projects","d"],["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/021ca9b3316f78db.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L6"]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L7",[["$","script","script-0",{"src":"/_next/static/chunks/20c9225ce95a3724.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/ca342b6dea5c6ac9.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/235f3e076b39c8db.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/00f5fe27a40e8f1c.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/558bd8172a37ab9b.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],null],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true} 6:["$","div",null,{"style":{"padding":"var(--size-gutter)"},"className":"dark:bg-zinc-900","children":[["$","main",null,{"className":"flex flex-col min-h-screen items-center","children":["$","article",null,{"className":"prose prose-zinc dark:prose-invert prose-code:before:hidden prose-code:after:hidden prose-inline-code:bg-amber-50 dark:prose-inline-code:bg-amber-950 ","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","footer",null,{"style":{"marginTop":"var(--space-5)","fontSize":"var(--font-sm)"},"className":"text-zinc-500","children":["© ",2025," Tao B. Schardl"," ","· Last modified ","$@12"," ","· ",["$","a",null,{"className":"underline","href":"http://accessibility.mit.edu/","children":"Accessibility"}]]}]]}] 13:I[56996,["/_next/static/chunks/f0ccedd660a4123a.js","/_next/static/chunks/20c9225ce95a3724.js","/_next/static/chunks/ca342b6dea5c6ac9.js","/_next/static/chunks/235f3e076b39c8db.js","/_next/static/chunks/00f5fe27a40e8f1c.js","/_next/static/chunks/558bd8172a37ab9b.js"],"Code",1] 14:I[46687,["/_next/static/chunks/f0ccedd660a4123a.js","/_next/static/chunks/20c9225ce95a3724.js","/_next/static/chunks/ca342b6dea5c6ac9.js","/_next/static/chunks/235f3e076b39c8db.js","/_next/static/chunks/00f5fe27a40e8f1c.js","/_next/static/chunks/558bd8172a37ab9b.js"],"Reference"] 7:[["$","h1",null,{"id":"projects","children":"Projects"}],"\n",["$","a",null,{"href":"#opencilk","className":"group no-underline","children":["$","h2",null,{"id":"opencilk","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","OpenCilk"]}]}],"\n",[["$","$1","https://www.opencilk.org/",{"children":[["$","a",null,{"href":"https://www.opencilk.org/","children":"Website"}]," · "]}],["$","$1","https://github.com/OpenCilk/",{"children":[["$","a",null,{"href":"https://github.com/OpenCilk/","children":"GitHub organization"}],false]}]],"\n",["$","p",null,{"children":[["$","a",null,{"href":"https://www.opencilk.org/","children":"OpenCilk"}]," is the latest open-source implementation of the Cilk task-parallel programming platform."]}],"\n",["$","$L13",null,{"children":["$","code",null,{"className":"language-cilkcpp","children":"int fib(int n) {\n if (n < 2) return n;\n int x, y;\n cilk_scope {\n x = cilk_spawn fib(n-1);\n y = fib(n-2);\n }\n return x + y;\n}\n"}]}],"\n",["$","p",null,{"children":"OpenCilk extends C/C++ with a few keywords to expose logical task parallelism in a program. The OpenCilk compiler optimizes Cilk programs using Tapir/LLVM, an extension to LLVM to enable effective compiler analysis and optimization of task-parallel programs. The OpenCilk runtime system schedules and load-balances the Cilk computation automatically in a provably good manner using randomized work stealing. The OpenCilk platform also provides tools to analyze Cilk programs, including the Cilksan race detector and the Cilkscale scalability analyzer."}],"\n",["$","p",null,{"children":["OpenCilk is completely open source and available on ",["$","a",null,{"href":"https://github.com/OpenCilk/","children":"GitHub"}],". OpenCilk features the latest implementation of the Tapir compiler extension for task parallelism."]}],"\n",["$","$L14",null,{"citekeys":["SchardlLe23","SchardlMoLe19","SchardlMoLe17"]}],"\n",["$","a",null,{"href":"#cesmix","className":"group no-underline","children":["$","h2",null,{"id":"cesmix","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","CESMIX"]}]}],"\n",["$","p",null,{"children":[["$","a",null,{"href":"https://cesmix.mit.edu","children":"CESMIX"}]," is an interdisciplinary research center at MIT focused on the exascale simulation of materials in hypersonic flow environments. See the CESMIX website for details."]}],"\n",["$","a",null,{"href":"#other-projects","className":"group no-underline","children":["$","h2",null,{"id":"other-projects","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","Other projects"]}]}],"\n",["$","p",null,{"children":["You can find most of the other software projects itself on or linked from ",["$","a",null,{"href":"https://github.com/neboat","children":"my personal GitHub"}],"."]}],"\n",["$","a",null,{"href":"#fccode-latex-package","className":"group no-underline","children":["$","h3",null,{"id":"fccode-latex-package","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","fccode LaTeX package"]}]}],"\n",[["$","$1","https://www.overleaf.com/read/gbqhfyncbgby#309f8a",{"children":[["$","a",null,{"href":"https://www.overleaf.com/read/gbqhfyncbgby#309f8a","children":"fccode Overleaf port and documentation"}],false]}]],"\n",["$","p",null,{"children":"The fccode package provides fast, safe, and high-quality syntax highlighting of code for LaTeX documents. This package provides LaTeX macros, commands, and environments for syntax-highlighted code figures, in-paragraph code blocks, and inline code snippets. This package uses Pygments to syntax-highlight code, and it includes custom Pygments lexers and formatters to improve syntax-highlighting quality to add new features, including the following:"}],"\n","$L15","\n","$L16","\n","$L17","\n","$L18","\n","$L19","\n","$L1a","\n","$L1b","\n","$L1c","\n","$L1d","\n","$L1e","\n","$L1f","\n","$L20","\n","$L21"] 22:I[15978,["/_next/static/chunks/f0ccedd660a4123a.js","/_next/static/chunks/20c9225ce95a3724.js","/_next/static/chunks/ca342b6dea5c6ac9.js","/_next/static/chunks/235f3e076b39c8db.js","/_next/static/chunks/00f5fe27a40e8f1c.js","/_next/static/chunks/558bd8172a37ab9b.js"],"default"] 15:["$","ul",null,{"children":["\n",["$","li",null,{"children":"Selecting regions of source files to highlight."}],"\n",["$","li",null,{"children":["Support LaTeX ",["$","code",null,{"children":"\\label{}"}]," commands in code, allowing the document to use ",["$","code",null,{"children":"\\ref{}"}]," commands to reference lines in the code symbolically."]}],"\n"]}] 16:["$","p",null,{"children":["This package includes ",["$","code",null,{"children":"latexmk"}]," rules and scripts to syntax-highlight code efficiently, in a manner that scales to handle very large documents with lots of code to highlight. In particular, fccode avoids the need for LaTeX's ",["$","code",null,{"children":"--shell-escape"}]," option."]}] 17:["$","a",null,{"href":"#code-highlighter-tool-for-slide-decks","className":"group no-underline","children":["$","h3",null,{"id":"code-highlighter-tool-for-slide-decks","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","Code-highlighter tool for slide decks"]}]}] 18:[["$","$1","/code-highlight",{"children":[["$","$L22",null,{"href":"/code-highlight","children":"Code highlighter"}],false]}]] 19:["$","p",null,{"children":"This web-based tool adds syntax and semantic highlighting to C/C++ and Cilk code to be easily copy-and-pasted into slide decks."}] 1a:["$","a",null,{"href":"#pbfs","className":"group no-underline","children":["$","h3",null,{"id":"pbfs","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","PBFS"]}]}] 1b:[["$","$1","https://github.com/neboat/pbfs",{"children":[["$","a",null,{"href":"https://github.com/neboat/pbfs","children":"GitHub"}],false]}]] 1c:["$","p",null,{"children":"PBFS is a work-efficient parallel breadth-first-search (BFS) algorithm. PBFS uses a custom reducer data structure, called a bag, to efficiently maintain sets of vertices. PBFS is currently implemented in OpenCilk, and the bag reducer is implemented using the linguistic reducer syntax introduced in OpenCilk 2."}] 1d:["$","$L14",null,{"citekeys":["LeisersonSc10"]}] 1e:["$","a",null,{"href":"#materials-for-theres-plenty-of-room-at-the-top","className":"group no-underline","children":["$","h3",null,{"id":"materials-for-theres-plenty-of-room-at-the-top","children":[["$","span",null,{"className":"absolute -translate-x-[140%] opacity-0 group-hover:opacity-35","children":"#"}]," ","Materials for \"There's plenty of room at the Top\""]}]}] 1f:[["$","$1","https://github.com/neboat/Moore",{"children":[["$","a",null,{"href":"https://github.com/neboat/Moore","children":"GitHub"}]," · "]}],["$","$1","https://zenodo.org/doi/10.5281/zenodo.3715520",{"children":[["$","a",null,{"href":"https://zenodo.org/doi/10.5281/zenodo.3715520","children":"DOI"}],false]}]] 20:["$","p",null,{"children":"This repository contains the data and software used for the Science article, \"There's plenty of room at the Top: What will drive computer performance after Moore's law?\""}] 21:["$","$L14",null,{"citekeys":["LeisersonThEm20"]}] d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 9:null 23:I[62188,["/_next/static/chunks/75eaa8a566c00f97.js","/_next/static/chunks/ce19f9f8068bf3f4.js"],"IconMark"] b:{"metadata":[["$","title","0",{"children":"Projects | Tao B. Schardl"}],["$","meta","1",{"name":"description","content":"Descriptions of assorted projects"}],["$","link","2",{"rel":"author","href":"https://neboat.mit.edu"}],["$","meta","3",{"name":"author","content":"Tao B. Schardl"}],["$","meta","4",{"name":"generator","content":"Next.js"}],["$","meta","5",{"name":"referrer","content":"origin-when-cross-origin"}],["$","link","6",{"rel":"canonical","href":"https://neboat.mit.edu/projects"}],["$","meta","7",{"name":"format-detection","content":"telephone=no, address=no, email=no"}],["$","meta","8",{"property":"og:title","content":"Projects | Tao B. Schardl"}],["$","meta","9",{"property":"og:description","content":"Descriptions of assorted projects"}],["$","meta","10",{"property":"og:type","content":"website"}],["$","meta","11",{"name":"twitter:card","content":"summary"}],["$","meta","12",{"name":"twitter:title","content":"Projects | Tao B. Schardl"}],["$","meta","13",{"name":"twitter:description","content":"Descriptions of assorted projects"}],["$","link","14",{"rel":"icon","href":"/icon.svg?icon.c74b37f1.svg","sizes":"any","type":"image/svg+xml"}],["$","$L23","15",{}]],"error":null,"digest":"$undefined"} 10:"$b:metadata" 12:"01/24/2025"