<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://modelado.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pinfold</id>
	<title>Modelado Foundation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://modelado.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pinfold"/>
	<link rel="alternate" type="text/html" href="https://modelado.org/Special:Contributions/Pinfold"/>
	<updated>2026-04-08T01:21:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://modelado.org/index.php?title=Main_Page&amp;diff=5435</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Main_Page&amp;diff=5435"/>
		<updated>2025-06-09T00:14:03Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}&lt;br /&gt;
====Empowering Collaboration for Advanced Computing and Smart City Technology====&lt;br /&gt;
The Modelado Foundation, also known as OpenCommons, is a 501c6 non-profit organization that serves as a neutral platform for companies, universities, and government agencies to collaborate on advanced and extreme-scale and distributed computing. With a rich history rooted in fostering innovation and collaboration, the foundation has become a trusted facilitator for cutting-edge initiatives in the technology sector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: center;&#039;&amp;gt;&lt;br /&gt;
{{#ask:&lt;br /&gt;
 [[Category:Simimage]]&lt;br /&gt;
 |order=random&lt;br /&gt;
 |?=#&lt;br /&gt;
 |?Has image#=2&lt;br /&gt;
 |?Has author#=3&lt;br /&gt;
 |?Has description#=4&lt;br /&gt;
&lt;br /&gt;
 |format=slideshow&lt;br /&gt;
 |template=Single image&lt;br /&gt;
 |nav controls=no&lt;br /&gt;
 |delay=5&lt;br /&gt;
 |height=800px&lt;br /&gt;
 |width=1170px&lt;br /&gt;
 |effect=none&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
Image:NS binary merger simulation 192.tif|&#039;&#039;[[wikipedia:Neutron_star|Simulation of a pair of neutron stars colliding]]&#039;&#039; (NASA/AEI/ZIB/M. Koppitz and L. Rezzolla)&lt;br /&gt;
Image:M15-162b-EarthAtmosphere-CarbonDioxide-FutureRoleInGlobalWarming-Simulation-20151109.jpg|&#039;&#039;[[wikipedia:Global Warming|NASA is advancing new tools like the supercomputer model that created this simulation of carbon dioxide in the atmosphere]]&#039;&#039; (NASA/GSFC)&lt;br /&gt;
Image:Science at Exascale- Simulating Small Modular Reactor Operations - 49749891898.png|&#039;&#039;[[wikipedia:Small Modular Reactor|Coupled Monte Carlo Neutronics and Fluid Flow Simulation of Small Modular Reactor]]&#039;&#039; (OLCF)&lt;br /&gt;
Image:Titan propels GE beyond the limits of gas turbine testing (27376088085).jpg|&#039;&#039;[[wikipedia:Gas turbine|Simulation of combustion within two adjacent gas turbine combustors]]&#039;&#039; (Oak Ridge National Laboratory)&lt;br /&gt;
Image:Binary Black Hole.jpg|&#039;&#039;[[wikipedia:Binary_black_hole|This computer generated image shows the warped view of a pair of supermassive black holes orbiting each other]]&#039;&#039; (Jeremy Schnittman)&lt;br /&gt;
Image:When Black Holes Collide.jpg|&#039;&#039;[[wikipedia:Black Holes|Black Holes]]&#039;&#039;(NASA Blueshift)&lt;br /&gt;
Image:U.S. Department of Energy - Science - 477 014 010 (9954329085).jpg|&#039;&#039;[[wikipedia:National Ignition Facility|Computer Simulation of isodensity surfaces of a NIF ignition capsule bounding shell]]&#039;&#039; (U.S. Department of Energy)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#ask: &lt;br /&gt;
 [[Category:Simimage]]&lt;br /&gt;
 |sort=Has name&lt;br /&gt;
 |order=random&lt;br /&gt;
 |limit=1&lt;br /&gt;
 |?=#&lt;br /&gt;
 |?Has image#=2&lt;br /&gt;
 |?Has author#=3&lt;br /&gt;
 |format=plainlist&lt;br /&gt;
 |named args=yes&lt;br /&gt;
 |template=Single image&lt;br /&gt;
 |searchlabel=&lt;br /&gt;
}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=Modelado Foundation – Empowering Collaborative Development&lt;br /&gt;
|description=Meet the growing need for collaboration and knowledge sharing in the fields of advanced and distributed computing.&lt;br /&gt;
|keywords=Modelado, HPC, Sipercomputing&lt;br /&gt;
|image=https://cullyclc.opencommons.org/images/2/2c/Cully_Logo.png&lt;br /&gt;
|image_alt=https://modelado.org/File:modeladoZ.jpg&lt;br /&gt;
|type=website&lt;br /&gt;
|site_name=Modelado Foundation&lt;br /&gt;
|og:type=website&lt;br /&gt;
|og:locale=en_US&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Sandbox&amp;diff=5434</id>
		<title>Sandbox</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Sandbox&amp;diff=5434"/>
		<updated>2025-06-08T22:36:24Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&#039;text-align: center;&#039;&amp;gt;&lt;br /&gt;
{{#ask:&lt;br /&gt;
 [[Category:Simimage]]&lt;br /&gt;
 |order=random&lt;br /&gt;
 |?=#&lt;br /&gt;
 |?Has image#=2&lt;br /&gt;
 |?Has author#=3&lt;br /&gt;
 |?Has description#=4&lt;br /&gt;
&lt;br /&gt;
 |format=slideshow&lt;br /&gt;
 |template=Single image&lt;br /&gt;
 |nav controls=no&lt;br /&gt;
 |delay=5&lt;br /&gt;
 |height=800px&lt;br /&gt;
 |width=1170px&lt;br /&gt;
 |effect=none&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Sandbox&amp;diff=5433</id>
		<title>Sandbox</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Sandbox&amp;diff=5433"/>
		<updated>2025-06-08T22:35:09Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Zoom&lt;br /&gt;
:{{#ev:youtube|cIzilZcemzQ}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: center;&#039;&amp;gt;&lt;br /&gt;
{{#ask:&lt;br /&gt;
 [[Category:Simimage]]&lt;br /&gt;
 |order=random&lt;br /&gt;
 |?=#&lt;br /&gt;
 |?Has image#=2&lt;br /&gt;
 |?Has author#=3&lt;br /&gt;
 |?Has description#=4&lt;br /&gt;
&lt;br /&gt;
 |format=slideshow&lt;br /&gt;
 |template=Single image&lt;br /&gt;
 |nav controls=no&lt;br /&gt;
 |delay=5&lt;br /&gt;
 |height=800px&lt;br /&gt;
 |width=1170px&lt;br /&gt;
 |effect=none&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Sandbox&amp;diff=5432</id>
		<title>Sandbox</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Sandbox&amp;diff=5432"/>
		<updated>2025-06-08T22:34:53Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Zoom&lt;br /&gt;
:{{#ev:YouTube|cIzilZcemzQ}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: center;&#039;&amp;gt;&lt;br /&gt;
{{#ask:&lt;br /&gt;
 [[Category:Simimage]]&lt;br /&gt;
 |order=random&lt;br /&gt;
 |?=#&lt;br /&gt;
 |?Has image#=2&lt;br /&gt;
 |?Has author#=3&lt;br /&gt;
 |?Has description#=4&lt;br /&gt;
&lt;br /&gt;
 |format=slideshow&lt;br /&gt;
 |template=Single image&lt;br /&gt;
 |nav controls=no&lt;br /&gt;
 |delay=5&lt;br /&gt;
 |height=800px&lt;br /&gt;
 |width=1170px&lt;br /&gt;
 |effect=none&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Welcome&amp;diff=5429</id>
		<title>Welcome</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Welcome&amp;diff=5429"/>
		<updated>2023-08-31T05:50:44Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Changed redirect target from Pagename to Main Page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Main_Page]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Please choose the following program landing page: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Extreme Scale Software Stack]]&#039;&#039;&#039; (ESS)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://hihat.opencommons.org/Main_Page Hierarchical Heterogeneous Asynchronous Tasking]&#039;&#039;&#039;  (HiHat)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Global City Teams Challenge Super Action Cluster Summit]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Smart Citizen Communities]]&#039;&#039;&#039; (SCC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Reproducible Computational Science]]&#039;&#039;&#039; (RCS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Dynamic Runtime Community Meeting]]&#039;&#039;&#039; July 25-26, 2017--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Welcome&amp;diff=5428</id>
		<title>Welcome</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Welcome&amp;diff=5428"/>
		<updated>2023-08-31T05:50:04Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Redirected page to Pagename&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[pagename]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Please choose the following program landing page: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Extreme Scale Software Stack]]&#039;&#039;&#039; (ESS)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://hihat.opencommons.org/Main_Page Hierarchical Heterogeneous Asynchronous Tasking]&#039;&#039;&#039;  (HiHat)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Global City Teams Challenge Super Action Cluster Summit]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Smart Citizen Communities]]&#039;&#039;&#039; (SCC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Reproducible Computational Science]]&#039;&#039;&#039; (RCS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Dynamic Runtime Community Meeting]]&#039;&#039;&#039; July 25-26, 2017--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Groups&amp;diff=5427</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Groups&amp;diff=5427"/>
		<updated>2023-08-31T05:46:35Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;There are several groups that do business under the 501c6 structure of the Modelado Foundation. Two are public:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenCommons.png|350px|link=https://opencommons.org/Main_Page|OpenCommons]]&lt;br /&gt;
[[File:HiHAT Logo.png|350px|link=https://hihat.opencommons.org/Main_Page|HiHAT]]&lt;br /&gt;
[[File:sc.svg|350px|link=https://modelado.org/Reproducible_Computational_Science|Reproducible Computational Science]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;One is Private&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TheCirrusGroupC.png|500px|link=https://thecirrusgroup.co/Main_Page|The Cirrus Group]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Groups&amp;diff=5426</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Groups&amp;diff=5426"/>
		<updated>2023-08-31T05:46:12Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;There are several groups that do business under the 501c6 structure of the Modelado Foundation. Two are public:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenCommons.png|400px|link=https://opencommons.org/Main_Page|OpenCommons]]&lt;br /&gt;
[[File:HiHAT Logo.png|400px|link=https://hihat.opencommons.org/Main_Page|HiHAT]]&lt;br /&gt;
[[File:sc.svg|400px|link=https://modelado.org/Reproducible_Computational_Science|Reproducible Computational Science]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;One is Private&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TheCirrusGroupC.png|500px|link=https://thecirrusgroup.co/Main_Page|The Cirrus Group]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Groups&amp;diff=5425</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Groups&amp;diff=5425"/>
		<updated>2023-08-31T05:45:56Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;There are several groups that do business under the 501c6 structure of the Modelado Foundation. Two are public:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenCommons.png|300px|link=https://opencommons.org/Main_Page|OpenCommons]]&lt;br /&gt;
[[File:HiHAT Logo.png|300px|link=https://hihat.opencommons.org/Main_Page|HiHAT]]&lt;br /&gt;
[[File:sc.svg|300px|link=https://modelado.org/Reproducible_Computational_Science|Reproducible Computational Science]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;One is Private&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TheCirrusGroupC.png|500px|link=https://thecirrusgroup.co/Main_Page|The Cirrus Group]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=File:Sc.svg&amp;diff=5424</id>
		<title>File:Sc.svg</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=File:Sc.svg&amp;diff=5424"/>
		<updated>2023-08-31T05:45:26Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Groups&amp;diff=5423</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Groups&amp;diff=5423"/>
		<updated>2023-08-31T05:43:36Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;There are several groups that do business under the 501c6 structure of the Modelado Foundation. Two are public:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenCommons.png|500px|link=https://opencommons.org/Main_Page|OpenCommons]]&lt;br /&gt;
[[File:HiHAT Logo.png|500px|link=https://hihat.opencommons.org/Main_Page|HiHAT]]&lt;br /&gt;
[[File:sc.svg|500px|link=https://modelado.org/Reproducible_Computational_Science|Reproducible Computational Science]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;One is Private&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TheCirrusGroupC.png|500px|link=https://thecirrusgroup.co/Main_Page|The Cirrus Group]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Groups&amp;diff=5422</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Groups&amp;diff=5422"/>
		<updated>2023-08-31T05:12:24Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;There are several groups that do business under the 501c6 structure of the Modelado Foundation. Two are public:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenCommons.png|500px|link=https://opencommons.org/Main_Page|OpenCommons]]&lt;br /&gt;
[[File:HiHAT Logo.png|500px|link=https://hihat.opencommons.org/Main_Page|HiHAT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;One is Private&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TheCirrusGroupC.png|500px|link=https://thecirrusgroup.co/Main_Page|The Cirrus Group]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Groups&amp;diff=5421</id>
		<title>Groups</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Groups&amp;diff=5421"/>
		<updated>2023-08-31T05:11:19Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}__NOTOC__&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;There are several groups that do business under the 501c6 structure of the Modelado Foundation. Two are public:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenCommons.png|500px|link=https://opencommons.org/Main_Page|OpenCommons]]&lt;br /&gt;
[[File:HiHAT Logo.png|500px|link=https://hihat.opencommons.org/Main_Page|HiHAT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;One is Private&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TheCirrusGroupC.png|500px|link=https://thecirrusgroup.co/Main_Page The Cirrus Group]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Welcome&amp;diff=5420</id>
		<title>Welcome</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Welcome&amp;diff=5420"/>
		<updated>2023-08-31T05:09:10Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Please choose the following program landing page: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Extreme Scale Software Stack]]&#039;&#039;&#039; (ESS)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://hihat.opencommons.org/Main_Page Hierarchical Heterogeneous Asynchronous Tasking]&#039;&#039;&#039;  (HiHat)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Global City Teams Challenge Super Action Cluster Summit]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Smart Citizen Communities]]&#039;&#039;&#039; (SCC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Reproducible Computational Science]]&#039;&#039;&#039; (RCS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Dynamic Runtime Community Meeting]]&#039;&#039;&#039; July 25-26, 2017&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Typhoon_Mawar_2005_Computer_Simulation&amp;diff=5419</id>
		<title>Typhoon Mawar 2005 Computer Simulation</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Typhoon_Mawar_2005_Computer_Simulation&amp;diff=5419"/>
		<updated>2023-07-28T18:55:18Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Simimage |description=A 48-hour computer simulation of Typhoon Mawar using the Weather Research and Forecasting model |location=wikipedia:Small Modular Reactor |image=Typhoo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Simimage&lt;br /&gt;
|description=A 48-hour computer simulation of Typhoon Mawar using the Weather Research and Forecasting model&lt;br /&gt;
|location=wikipedia:Small Modular Reactor&lt;br /&gt;
|image=Typhoon_Mawar_2005_computer_simulation_thumbnail.gif&lt;br /&gt;
|author=High Performance Computer Modernization Program&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Binary_Black_Hole&amp;diff=5418</id>
		<title>Binary Black Hole</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Binary_Black_Hole&amp;diff=5418"/>
		<updated>2023-07-28T18:46:37Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Simimage&lt;br /&gt;
|description=This computer generated image shows the warped view of a pair of supermassive black holes orbiting each other&lt;br /&gt;
|location=wikipedia:Binary_black_hole&lt;br /&gt;
|image=Binary_Black_Hole.jpg&lt;br /&gt;
|author=Jeremy Schnittman&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Ionring_Blackhole&amp;diff=5417</id>
		<title>Ionring Blackhole</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Ionring_Blackhole&amp;diff=5417"/>
		<updated>2023-07-28T18:44:14Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Simimage&lt;br /&gt;
|description=Simulation of a side view of a black hole with transparent toroidal ring of ionized matter according to a proposed model[88] for Sgr A*. This image shows the result of bending of light from behind the black hole, and it also shows the asymmetry arising by the Doppler effect from the extremely high orbital speed of the matter in the ring.&lt;br /&gt;
|location=wikipedia:Supermassive_black_hole&lt;br /&gt;
|image=IonringBlackhole.jpeg&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Ionring_Blackhole&amp;diff=5416</id>
		<title>Ionring Blackhole</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Ionring_Blackhole&amp;diff=5416"/>
		<updated>2023-07-28T18:40:45Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Simimage |description=Simulation of a side view of a black hole with transparent toroidal ring of ionized matter |image=IonringBlackhole.jpeg }} Simulation of a side view of...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Simimage&lt;br /&gt;
|description=Simulation of a side view of a black hole with transparent toroidal ring of ionized matter&lt;br /&gt;
|image=IonringBlackhole.jpeg&lt;br /&gt;
}}&lt;br /&gt;
Simulation of a side view of a black hole with transparent toroidal ring of ionized matter according to a proposed model[88] for Sgr A*. This image shows the result of bending of light from behind the black hole, and it also shows the asymmetry arising by the Doppler effect from the extremely high orbital speed of the matter in the ring.&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Team&amp;diff=5415</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Team&amp;diff=5415"/>
		<updated>2023-07-24T15:08:28Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[About|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;About&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Team|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Team&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Groups|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;Groups&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[Extreme Scale Software Stack|&amp;lt;div class=&amp;quot;navButton&amp;quot;&amp;gt;ESS Content&amp;lt;/div&amp;gt;]]&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot;|[[File:modeladoZ.jpg|100px|link=https://modelado.org|center]]&lt;br /&gt;
|}&lt;br /&gt;
=Wilfred Pinfold, President=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;width:500px&amp;quot;|[[File:WilfredPinfold864.png|Wilfred Pinfold|350px|left]]&lt;br /&gt;
|Dr Pinfold has a passion for emerging technologies that are enabled by leading-edge research in computational and data science, giving him the ability to contribute to major advancements across a wide range of industries, including healthcare, environment, engineering, energy, packaged goods, and the entertainment industry.&lt;br /&gt;
&lt;br /&gt;
His background includes experience delivering advanced computing platforms from small embedded technologies to large data centers and combining them into Cyber Physical Systems. In a 23-year career at Intel he built experience in engineering, research, strategy, business planning, account management, and marketing. He has held academic positions in schools of engineering and business in both the US and UK, has authored numerous technical reports and papers and participated in project and thesis reviews up to and including PhD.&lt;br /&gt;
&lt;br /&gt;
He is a qualified Naval Architect and Structural Engineer , the Portland Mayor’s representative on the Technology Oversight Committee (TOC), a respected and highly sought-after spokesperson and contributor to the Smart City community.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Eli Lamb, Chief Financial Officer=&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;width:500px&amp;quot;|[[File:Eli Lamb.jpg|Eli Lamb|350px|left]]&lt;br /&gt;
|Eli Lamb comes to Modelado and OpenCommons after multiple careers in system software (Bell Labs, UNIX Europe, Sun Microsystems, and Intel), renewable energy startups (Ridgeline – wind and Hydrovolts – hydro), and project management (State of Oregon). In between, he co-founded the Portland chapter of Social Venture Partners (a non-profit practicing venture philanthropy) and joined the board of Green Empowerment (a non-profit dedicated to providing clean energy (hydro, solar) and water to remote villages in developing countries.&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Template:PITable&amp;diff=5414</id>
		<title>Template:PITable</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Template:PITable&amp;diff=5414"/>
		<updated>2023-07-10T05:08:21Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &#039;&#039;&#039;PI&#039;&#039;&#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| XPRESS  || [[Ron Brightwell | Ron Brightwell]]&lt;br /&gt;
|-&lt;br /&gt;
| TG || [[Shekhar Borkar | Shekhar Borkar]]	&lt;br /&gt;
|-&lt;br /&gt;
| DEGAS || [[Katherine Yelick | Katherine Yelick]]&lt;br /&gt;
|-&lt;br /&gt;
| D-TEC || [[Dan Quinlan | Daniel Quinlan]]&lt;br /&gt;
|-&lt;br /&gt;
| DynAX || [[Guang Gao]]&lt;br /&gt;
|-&lt;br /&gt;
| X-TUNE || [[Mary Hall | Mary Hall]]&lt;br /&gt;
|-&lt;br /&gt;
| GVR || [[Andrew Chien | Andrew Chien]]&lt;br /&gt;
|-&lt;br /&gt;
| CORVETTE || [[Koushik Sen]]&lt;br /&gt;
|-&lt;br /&gt;
| SLEEC || [[Milind Kulkarni | Milind Kulkarni]]&lt;br /&gt;
|-&lt;br /&gt;
| PIPER || [[ media:2014-05-xstack-resiliencepanel-ms.pdf  | Martin Schulz ]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Template:PITable&amp;diff=5413</id>
		<title>Template:PITable</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Template:PITable&amp;diff=5413"/>
		<updated>2023-07-10T05:07:44Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;lt;span id=&amp;quot;1&amp;quot;&amp;gt; &#039;&#039;&#039;PI&#039;&#039;&#039; &amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| XPRESS  || [[Ron Brightwell | Ron Brightwell]]&lt;br /&gt;
|-&lt;br /&gt;
| TG || [[Shekhar Borkar | Shekhar Borkar]]	&lt;br /&gt;
|-&lt;br /&gt;
| DEGAS || [[Katherine Yelic | Katherine Yelick]]&lt;br /&gt;
|-&lt;br /&gt;
| D-TEC || [[Dan Quinlan | Daniel Quinlan]]&lt;br /&gt;
|-&lt;br /&gt;
| DynAX || [[Guang Gao]]&lt;br /&gt;
|-&lt;br /&gt;
| X-TUNE || [[Mhall | Mary Hall]]&lt;br /&gt;
|-&lt;br /&gt;
| GVR || [[Andrew Chien | Andrew Chien]]&lt;br /&gt;
|-&lt;br /&gt;
| CORVETTE || [[Koushik Sen]]&lt;br /&gt;
|-&lt;br /&gt;
| SLEEC || [[Milind Kulkarni | Milind Kulkarni]]&lt;br /&gt;
|-&lt;br /&gt;
| PIPER || [[ media:2014-05-xstack-resiliencepanel-ms.pdf  | Martin Schulz ]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=X-TUNE&amp;diff=5412</id>
		<title>X-TUNE</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=X-TUNE&amp;diff=5412"/>
		<updated>2023-07-10T05:04:05Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = X-TUNE&lt;br /&gt;
| image = [[File:XTUNE-logos.png|400px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [http:///www.utah.edu/ U. of Utah], [http://www.anl.gov/ ANL], [http://www.lbl.gov/ LBNL], [http://www.isi.edu/ USC/ISI]&lt;br /&gt;
| pi = [[Mary Hall]]&lt;br /&gt;
| co-pi = Paul Hovland (ANL), Samuel Williams (LBNL), Jacqueline Chame (USC/ISI)&lt;br /&gt;
| website = [http://ctop.cs.utah.edu/x-tune/ http://ctop.cs.utah.edu/x-tune/]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Autotuning for Exascale&#039;&#039;&#039; or &#039;&#039;&#039;X-TUNE&#039;&#039;&#039; - &#039;&#039;Self-Tuning Software to manage Heterogeneity&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http:///www.utah.edu/ University of Utah]: Mary Hall (Lead PI)&lt;br /&gt;
* [http://www.anl.gov/ Argonne National Laboratory (ANL)]: Paul Hovland, Stefan Wild, Krishna Narayanan, Jeff Hammond&lt;br /&gt;
* [http://www.lbl.gov/ Lawrence Berkeley National Laboratory (LBNL)]: Sam Williams, Lenny Oliker, Brian van Straalen&lt;br /&gt;
* [http://www.isi.edu/ University of Southern California: Information Science Institute (USC/ISI)]: Jacqueline Chame&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is Autotuning? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Definition:&#039;&#039;&#039;&lt;br /&gt;
* Automatically generate a “search space” of possible implementations of a computation&lt;br /&gt;
** A &#039;&#039;code variant&#039;&#039; represents a unique implementation of a computation, among many&lt;br /&gt;
** A &#039;&#039;parameter&#039;&#039; represents a discrete set of values that govern code generation or execution of a variant&lt;br /&gt;
* Measure execution time and compare&lt;br /&gt;
* Select the best-performing implementation (for exascale, tradeoff between performance/energy/reliability)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key Issues:&#039;&#039;&#039;&lt;br /&gt;
* Identifying the search space&lt;br /&gt;
* Pruning the search space to manage costs&lt;br /&gt;
* Off-line vs. on-line search&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Three Types of Autotuning Systems&#039;&#039;&#039;&lt;br /&gt;
* Autotuning libraries&lt;br /&gt;
** Library that encapsulates knowledge of its performance under different execution environments&lt;br /&gt;
** Dense linear algebra: &#039;&#039;ATLAS, PhiPAC&#039;&#039;&lt;br /&gt;
** Sparse linear algebra: &#039;&#039;OSKI&#039;&#039;&lt;br /&gt;
** Signal processing: &#039;&#039;SPIRAL, FFTW&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Application-specific autotuning&lt;br /&gt;
** &#039;&#039;Active Harmony&#039;&#039; provides parallel rank order search for tunable parameters and variants&lt;br /&gt;
** &#039;&#039;Sequoia&#039;&#039; and &#039;&#039;PetaBricks&#039;&#039; provide language mechanism for expressing tunable parameters and variants&lt;br /&gt;
&lt;br /&gt;
* Compiler-based autotuning&lt;br /&gt;
** Other examples: Saday et al., Swany et al., Eignenmann et al.&lt;br /&gt;
** Related concepts: iterative compilation, learning-based compilation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== X-TUNE Goals ==&lt;br /&gt;
A unified autotuning framework that seamlessly integrates programmer-directed and compiler-directed autotuning&lt;br /&gt;
* Expert programmer and compiler work collaboratively to tune a code&lt;br /&gt;
** Unlike previous systems that place the burden on either programmer or compiler&lt;br /&gt;
** Provides access to compiler optimizations, offering expert programmers the control over optimization they so often desire&lt;br /&gt;
&lt;br /&gt;
* Design autotuning to be encapsulated in domain-specific tools&lt;br /&gt;
** Enables less-sophisticated users of the software to reap the benefit of the expert programmers’ efforts&lt;br /&gt;
&lt;br /&gt;
* Focus on Adaptive Mesh Refinement Multigrid (Combustion Co-Design Center, BoxLib, Chombo) and tensor contractions (TCE)&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
* [https://xstackwiki.modelado.org/images/d/de/Xtune-impact_summary.pdf X-TUNE Project Impact]&lt;br /&gt;
&lt;br /&gt;
== X-TUNE Structure ==&lt;br /&gt;
[[File:XTUNE-Structure.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Autotuning Language Extensions ==&lt;br /&gt;
* Tunable Variables&lt;br /&gt;
** An annotation on the type of a variable (as in Sequoia)&lt;br /&gt;
** Additionally, specify range, constraints and a default value&lt;br /&gt;
&lt;br /&gt;
* Computation Variants&lt;br /&gt;
** An annotation on the type of a function (as in PetaBricks)&lt;br /&gt;
** Additionally, specify (partial) selection criteria&lt;br /&gt;
** Multiple variants may be composed in the same execution&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Separate mapping description captures architecture-specific aspects of autotuning.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiler-Based Autotuning ==&lt;br /&gt;
* Foundational Concepts&lt;br /&gt;
** Identify search space through a high-level description that captures a large space of possible implementations&lt;br /&gt;
** Prune space through compiler domain knowledge and architecture features&lt;br /&gt;
** Provide access to programmers with &#039;&#039;transformation recipes&#039;&#039;, or recipes generated automatically by compiler decision algorithm&lt;br /&gt;
** Uses source-to-source transformation for portability, and to leverage vendor code generation&lt;br /&gt;
** Requires &#039;&#039;restructuring of the compiler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CHiLL Implementation ==&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-CHiLL.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transformation Recipes for Autotuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Incorporate the Best Ideas from Manual Tuning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Transformation-Recipes.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler + Autotuning can yield comparable and even better performance than manually-tuned libraries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Results.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pbound: Performance Modeling for Autotuning ==&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Pbound.png|right|200px]]&lt;br /&gt;
&lt;br /&gt;
* Performance modeling increases the automation in autotuning&lt;br /&gt;
** Manual transformation recipe generation is tedious and error-prone&lt;br /&gt;
** Implicit models are not portable across platforms&lt;br /&gt;
&lt;br /&gt;
* Models can unify programmer guidance and compiler analysis&lt;br /&gt;
** Programmer can invoke integrated models to guide autotuning from application code&lt;br /&gt;
** Compiler can invoke models during decision algorithms&lt;br /&gt;
&lt;br /&gt;
* Models optimize autotuning search&lt;br /&gt;
** Identify starting points&lt;br /&gt;
** Prune search space to focus on most promising solutions&lt;br /&gt;
** Provide feedback from updates in response to code modifications&lt;br /&gt;
&lt;br /&gt;
=== Reuse Distance and Cache Miss Prediction ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reuse distance&#039;&#039;&#039;&lt;br /&gt;
* For regular (affine) array references&lt;br /&gt;
** Compute reuse distance, to predict data footprints in memory hierarchy&lt;br /&gt;
** Guides transformation and data placement decisions&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Pbound-Reuse-Distance.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cache miss prediction&#039;&#039;&#039;&lt;br /&gt;
* Use to predict misses&lt;br /&gt;
* Assuming fully associative cache with n lines (optimistic case), a reference will hit if the reuse distance d&amp;lt;n&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Pbound-Cache-Miss.png]]&lt;br /&gt;
&lt;br /&gt;
=== Application Signatures + Architecture ===&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Pbound-Example.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== How will modeling be used? ==&lt;br /&gt;
* Single-core and multicore models for application performance will combine architectural information, user-guidance, and application analysis&lt;br /&gt;
* Models will be coupled with decision algorithms to automatically generate CHiLL transformation recipes&lt;br /&gt;
** Input: Reuse Information, Loop Information etc.&lt;br /&gt;
** Output: Set of transformation scripts to be used by empirical search&lt;br /&gt;
* Feedback to be used to refine model parameters and behavior&lt;br /&gt;
* Small and large application execution times will be considered&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example: Stencils and Multigrid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Stencil performance bound, when bandwidth limited:&lt;br /&gt;
  &#039;&#039;&#039;&#039;&#039;Performance (gflops) &amp;lt;= stencil flops * STREAM bandwidth / grid size&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* Multigrid solves Au=f by calculating a number of corrections to an initial solution at varying grid coarsenings (“V-cycle”)&lt;br /&gt;
** Each level in the v-cycle: perform 1-4 relaxes (~stencil sweeps)&lt;br /&gt;
** Repeat multiple v-cycles reducing the norm of the residual by an order of magnitude each cycle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Example.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multigrid and Adaptive Mesh Refinement&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:XTUNE-Multigrid.jpg|right|200px]]&lt;br /&gt;
* Some regions of the domain may require finer fidelity than others&lt;br /&gt;
* In Adaptive Mesh Refinement, we refine those regions to a higher resolution in time and space&lt;br /&gt;
* Typically, one performs a multigrid “level solve” for one level (green, blue, red) at a time&lt;br /&gt;
* Coarse-fine boundaries (neighboring points can be at different resolutions) complicate the calculation of the RHS and ghost zones for the level&lt;br /&gt;
* Each level is a collection of small (32&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; or 64&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;) boxes to minimize unnecessary work&lt;br /&gt;
* These boxes will be distributed across the machine for load balancing (neighbors are not obvious/implicit)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Autotuning for AMR Multigrid ==&lt;br /&gt;
* Focus is addressing data movement, multifaceted:&lt;br /&gt;
** Automate fusion of stencils within an operator. Doing so may entail aggregation of communication (deeper ghost zones)&lt;br /&gt;
** Extend and automate the communication-avoiding techniques developed in CACHE&lt;br /&gt;
** Automate application of data movement-friendly coarse-fine boundary conditions&lt;br /&gt;
** Automate hierarchical parallelism within a node to AMR MG codes&lt;br /&gt;
** Explore alternate data structures&lt;br /&gt;
** Explore alternate stencil algorithms (higher order, …)&lt;br /&gt;
* Proxy architectures: MIC, BG/Q, GPUs&lt;br /&gt;
* Encapsulate into an embedded DSL approach&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary and Leverage ==&lt;br /&gt;
* Build integrated end-to-end autotuning, focused on AMR multigrid and tensor contractions&lt;br /&gt;
** Language and compiler guidance of autotuning&lt;br /&gt;
** Programmer and compiler collaborate to tune a code&lt;br /&gt;
** Modeling assists programmer, compiler writer, and search space pruning&lt;br /&gt;
&lt;br /&gt;
* Leverage and integrate with other X-Stack teams&lt;br /&gt;
** Our compiler technology all based on ROSE so can leverage from and provide capability to ROSE&lt;br /&gt;
** Domain-specific technology to facilitate encapsulating our autotuning strategies&lt;br /&gt;
** Collaborate with MIT on autotuning interface&lt;br /&gt;
** Common run-time for a variety of platforms (e.g., GPUs and MIC), and supports a large number of potentially hierarchical threads&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
* Publications&lt;br /&gt;
** H. Zhang, A. Venkat, P. Basu and M. Hall, &amp;quot;On Combining Polyhedral and AST Transformations,&amp;quot; International Workshop on Polyhedral Compilation Techniques, Jan. 2016.&lt;br /&gt;
** P. Basu,  &amp;quot;Compiler Optimizations and Autotuning for Stencil Computations and Geometric Multigrid,&amp;quot; PhD dissertation, University of Utah, December 2015.&lt;br /&gt;
** T. Nelson, &amp;quot;DSLs and Search for Linear Algebra Performance Optimization,&amp;quot; PhD dissertation, University of Colorado, December 2015.&lt;br /&gt;
** T. Nelson, A. Rivera, M. Hall, P.D. Hovland, E. Jessup and B. Norris, &amp;quot;Generating Efficient Tensor Contractions for GPUs&#039;&#039;, International Conference on Parallel Processing, Sept., 2015. &lt;br /&gt;
** P. Basu, S. Williams, B. V. Straalen, M. Hall, L. Oliker, P. Colella, &amp;quot;Compiler-Directed Transformation for Higher-Order Stencils&#039;&#039;, International Parallel and Distributed Processing Symposium (IPDPS), 2015.&lt;br /&gt;
** A. Rivera. &amp;quot;Using Autotuning for Accelerating Tensor-Contraction on GPUs&amp;quot;, Masters thesis, University of Utah, December 2014.&lt;br /&gt;
** P. Basu, S. Williams, B. V. Straalen, L. Oliker, M. Hall, ``Converting Stencils to Accumulations for Communication-Avoiding Optimization in Geometric Multigrid&#039;&#039;, Workshop on Stencil Computations (WOSC), 2014.&lt;br /&gt;
** P. Basu, A. Venkat, M. Hall, S. Williams, B. V. Straalen, L. Oliker, &amp;quot;Compiler generation and autotuning of communication-avoiding operators for geometric multigrid&#039;&#039;, 20th International Conference on High Performance Computing (HiPC), 2013.&lt;br /&gt;
** P. Basu, M. Hall, M. Khan, S. Maindola, S. Muralidharan, S. Ramalingam, A. Rivera, M. Shantharam, A. Venkat. &amp;quot;Towards Making Autotuning Mainstream&#039;&#039;. International Journal of High Performance Computing Applications, 27(4), November 2013.&lt;br /&gt;
** P. Basu, S. Williams, A. Venkat, B. Van Straalen, M. Hall, and L. Oliker. &amp;quot;Compiler generation and autotuning of communication-avoiding operators for geometric multigrid&#039;&#039;,  In Workshop on Optimizing Stencil Computations (WOSC), 2013.&lt;br /&gt;
&lt;br /&gt;
* Software Releases&lt;br /&gt;
** CHiLL and CUDA-CHiLL provide the autotuning compiler technology, and are available from http://github.com/CtopCsUtahEdu/chill-dev&lt;br /&gt;
** Orio manages navigation of the autotuning search space and is available from http://brnorris03.github.io/Orio&lt;br /&gt;
** Orio-CHiLL: new module in Orio provides integration with CHiLL and CUDA-CHiLL, and is available from http://github.com/brnorris03/Orio/tree/master/orio/module/chill&lt;br /&gt;
** SURF: new search algorithm module in Orio available from http://github.com/brnorris03/Orio/tree/master/orio/main/tuner/search/mlsearch&lt;br /&gt;
** TCR: domain-specific tensor contraction code generation and decision algorithm for GPUs available from http://github.com/axelyamel/tcg-autotuning&lt;br /&gt;
&lt;br /&gt;
* Other Software Products&lt;br /&gt;
** miniGMG application proxy: extended to include high‐order stencil implementations&lt;br /&gt;
** CHiLL and CUDA-CHiLL: new domain-specific transformations incorporated&lt;br /&gt;
** Orio: new search algorithm incorporated and integration with CHiLL and CUDA-CHiLL&lt;br /&gt;
** NWCHEM kernels: representative tensor computations released&lt;br /&gt;
** PBound: new decision algorithm and integration with CHiLL&lt;br /&gt;
** OCTOPI: tensor contraction domain-specific framework&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=SLEEC&amp;diff=5411</id>
		<title>SLEEC</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=SLEEC&amp;diff=5411"/>
		<updated>2023-07-10T05:03:42Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = SLEEC&lt;br /&gt;
| image = [[File:SLEEC-Logos.png|300px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [http://www.purdue.edu/ Purdue U.], [http://www.sandia.gov/ SNL]&lt;br /&gt;
| pi = [[Milind Kulkarni]]&lt;br /&gt;
| co-pi = Arun Prakash (Purdue), Michael Parks (SNL)&lt;br /&gt;
| website = https://engineering.purdue.edu/SLEEC&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semantics-rich Libraries for Effective Exascale Computation&#039;&#039;&#039; or &#039;&#039;&#039;SLEEC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http://www.purdue.edu/ Purdue University]: Milind Kulkarni, Arun Prakash, Vijay Pai, Sam Midkiff&lt;br /&gt;
* [http://www.sandia.gov/ Sandia National Laboratory]: Michael Parks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Motivations ==&lt;br /&gt;
* Modern computational science applications composed of many different libraries&lt;br /&gt;
* Computational libraries, communication libraries, data structure libraries, etc.&lt;br /&gt;
* Peridigm, developed by co-PI Mike Parks, builds on 10 different Trilinos libraries&lt;br /&gt;
* Each library has its own idioms and expected usage&lt;br /&gt;
* Determining right way to compose and use libraries to solve a problem is difficult&lt;br /&gt;
&lt;br /&gt;
=== Compositional complexity ===&lt;br /&gt;
* Consider loosely-coupled multi-scale computational mechanics problem (developed by co-PI Arun Prakash)&lt;br /&gt;
* Must determine right way to decompose problem, couple separate solutions, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:SLEEC-Compositional-Complexity.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Simple case: fixed number of subdomains, only consider how to couple them together&lt;br /&gt;
* Vast space of configurations: 8 subdomains → 135K possible schedules&lt;br /&gt;
* Large variation in performance of different orders&lt;br /&gt;
* Exploration of different variants requires knowledge of domain semantics, cost estimates&lt;br /&gt;
&lt;br /&gt;
[[File:SLEEC-Runtime-Graph.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Difficult interaction between libraries ===&lt;br /&gt;
&lt;br /&gt;
* Peridigm: computational peridynamics code&lt;br /&gt;
** Allows modeling of materials under stress without explicit accounting for discontinuities (fractures, etc.)&lt;br /&gt;
* Built on Trilinos components&lt;br /&gt;
** Set of computation and communication libraries&lt;br /&gt;
* Requires careful coordination of data movement operations to manage shadow data, etc. needed by solvers&lt;br /&gt;
** But data movement requirements can be directly inferred from which equations are being solved&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prior Results&#039;&#039;&#039;&lt;br /&gt;
* Exploiting library semantics to improve lock placement&lt;br /&gt;
&lt;br /&gt;
[[File:SLEEC-Prior-Results-1.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* Exploiting library semantics to improve parallelism and locality&lt;br /&gt;
&lt;br /&gt;
[[File:SLEEC-Prior-Results-2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=== Why not compilers ===&lt;br /&gt;
* Compilers do not understand library calls as abstractions&lt;br /&gt;
** Option one: see them as black boxes which give no information → no opportunity for optimization&lt;br /&gt;
** Option two: break abstraction boundaries and try to optimize → many transformation opportunities are only possible by understanding semantics of abstractions&lt;br /&gt;
&lt;br /&gt;
* Needed: &#039;&#039;a way for compilers to understand abstractions&#039;&#039;&lt;br /&gt;
** Broadway project attempted this, but focused on analyzing across abstractions, not semantics-driven transformations&lt;br /&gt;
&lt;br /&gt;
=== Why not domain-specific languages? ===&lt;br /&gt;
* DSLs are a great fit for this&lt;br /&gt;
** Bake abstractions into the language&lt;br /&gt;
** Optimize code at high level of abstraction based on semantic properties&lt;br /&gt;
** Shown to be effective in various domains&lt;br /&gt;
*** SPL/Spiral for digital signal processing, Tensor contraction engine, etc.&lt;br /&gt;
&lt;br /&gt;
* But they are not generalizable&lt;br /&gt;
** New domain? New DSL!&lt;br /&gt;
** What about applications that span domains? (e.g., multiphysics codes)&lt;br /&gt;
&lt;br /&gt;
* Needed: &#039;&#039;a generic infrastructure for incorporating domain knowledge&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
* [https://xstackwiki.modelado.org/images/b/b9/SLEEC-Highlight_summary.pdf SLEEC Project Impact]&lt;br /&gt;
&lt;br /&gt;
== Principles ==&lt;br /&gt;
* Abstractions carried by domain libraries&lt;br /&gt;
** Domain experts encode semantics, not compiler writers&lt;br /&gt;
** &#039;&#039;Need effective annotation language for capturing semantics&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Compiler should be domain agnostic&lt;br /&gt;
** Same infrastructure used for optimization and transformation regardless of domain&lt;br /&gt;
** &#039;&#039;Need common IR for capturing abstractions&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Compiler should be able to optimize for various objectives&lt;br /&gt;
** Do not want to focus solely on performance&lt;br /&gt;
** &#039;&#039;Need generic optimization ability and cost models&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
[[File:SLEEC-Overview.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Annotation language&#039;&#039;&#039; for capturing semantic properties of domain libraries&lt;br /&gt;
* &#039;&#039;&#039;High-level intermediate representation&#039;&#039;&#039; to represent programs that use annotated domain libraries&lt;br /&gt;
* &#039;&#039;&#039;Transformation strategies&#039;&#039;&#039; that leverage annotations to perform semantics-driven code transformations&lt;br /&gt;
* &#039;&#039;&#039;Optimization heuristics&#039;&#039;&#039; that use domain-specific cost models to find more efficient program variants&lt;br /&gt;
* &#039;&#039;&#039;Iterative refinement techniques&#039;&#039;&#039; that let the compiler work with incomplete information and infer missing information when possible&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
* Consider annotated linear algebra library that supports two methods&lt;br /&gt;
** Matrix multiply&lt;br /&gt;
** Equation solve&lt;br /&gt;
&lt;br /&gt;
* Operations have mathematical properties that establish equivalence&lt;br /&gt;
** Can solve ABx = b in two ways:&lt;br /&gt;
*** C = AB followed by Cx = b&lt;br /&gt;
*** Az = b followed by Bx = z&lt;br /&gt;
** Latter may be more effective if A &amp;amp; B have special properties (e.g., triangular)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program Code&#039;&#039;&#039;&lt;br /&gt;
[[File:SLEEC-Program-Code.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Abstract&#039;&#039;&#039;&lt;br /&gt;
* Abstract into high level representation&lt;br /&gt;
* Expression tree to capture flow of data&lt;br /&gt;
* Library methods represented as high level operations&lt;br /&gt;
* Operands can be subtrees, too, to support composition&lt;br /&gt;
&lt;br /&gt;
[[File:SLEEC-Abstract-Transform.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transform&#039;&#039;&#039;&lt;br /&gt;
* Transformations expressed as rewrite rules on expression trees&lt;br /&gt;
* Rewrites match operation types (domain specific) but compiler applies them without understanding domain semantics&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Concretize&#039;&#039;&#039;&lt;br /&gt;
* Re-materialize back to source code, or transform to other, lower-level IR&lt;br /&gt;
[[File:SLEEC-Concretize.png]]&lt;br /&gt;
&lt;br /&gt;
=== Annotation Language ===&lt;br /&gt;
* Domain libraries annotated by domain experts to interface with compiler infrastructure&lt;br /&gt;
* Questions&lt;br /&gt;
** How to abstract libraries into IR&lt;br /&gt;
** What kinds of transformations are legal&lt;br /&gt;
*** Represent as rewrite rules&lt;br /&gt;
*** How to verify? Can we synthesize?&lt;br /&gt;
** How to concretize&lt;br /&gt;
*** Can this be inferred?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost models&#039;&#039;&#039;&lt;br /&gt;
* Most annotations deal with library interface&lt;br /&gt;
** Semantic properties are associated with library specification, not implementation&lt;br /&gt;
* Can also provide cost estimates for library methods&lt;br /&gt;
** Implementation and architecture specific&lt;br /&gt;
* Can express other properties of implementation&lt;br /&gt;
** Energy estimates&lt;br /&gt;
** Accuracy information&lt;br /&gt;
&lt;br /&gt;
=== Compiler Infrastructure ===&lt;br /&gt;
* Compiler does not explicitly understand domains&lt;br /&gt;
** But is extensible, allowing IR to be extended as new domains are added&lt;br /&gt;
* Transformations are just pattern-matched rewrite rules&lt;br /&gt;
** Can use domain-specific information such as domain-specific equivalences, domain-specific properties&lt;br /&gt;
** Can also substitute equivalent implementations of same method&lt;br /&gt;
* Generic compiler + annotated domain library = domain-specific compiler&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cost-drive optimization&#039;&#039;&#039;&lt;br /&gt;
* Applying transformations to program generates semantically equivalent program variants&lt;br /&gt;
** No “best” variant: different implementations will work better in different situations or optimize for different metrics&lt;br /&gt;
* Compilation as optimization problem&lt;br /&gt;
** Minimize objective function&lt;br /&gt;
*** FLOPs, energy efficiency, etc.&lt;br /&gt;
** Subject to constraints&lt;br /&gt;
*** Semantically equivalent to original program, meets accuracy constraints, etc.&lt;br /&gt;
* Same infrastructure can be used to optimize for a variety of metrics&lt;br /&gt;
&lt;br /&gt;
=== Iterative Refinement ===&lt;br /&gt;
* Typical problem with domain-specific languages or annotation approaches: what if program is incompletely annotated?&lt;br /&gt;
* Want compiler to still produce useful results&lt;br /&gt;
* Key property: compilation process is about optimization, not correctness&lt;br /&gt;
** Lack of information does not raise correctness issues&lt;br /&gt;
** As more annotations are provided, compilation results improve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inference&#039;&#039;&#039;&lt;br /&gt;
* Can we infer missing information?&lt;br /&gt;
* Transformation annotations&lt;br /&gt;
** Can we use synthesis techniques to infer legal transformations?&lt;br /&gt;
* Cost models&lt;br /&gt;
** Can we use machine learning techniques to build cost models automatically?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Potential Impacts ==&lt;br /&gt;
* &#039;&#039;&#039;Programmability:&#039;&#039;&#039; Programmers can focus on developing methods, using high level libraries, without worrying about careful optimization&lt;br /&gt;
* &#039;&#039;&#039;Performance portability:&#039;&#039;&#039; Ability to select between library variants automatically eases transition to new architectures&lt;br /&gt;
* &#039;&#039;&#039;Scalability:&#039;&#039;&#039; Cost models can incorporate parallelism, locality, communication to enhance scalability&lt;br /&gt;
* &#039;&#039;&#039;Energy efficiency:&#039;&#039;&#039; Parameterized compilation can optimize for energy use instead of performance without rewriting infrastructure&lt;br /&gt;
* &#039;&#039;&#039;Resilience:&#039;&#039;&#039; Cost models can incorporate resilience information (e.g., algorithmic fault tolerance information), compilation can choose variants based on resilience properties&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation Plan ==&lt;br /&gt;
* Work driven by “challenge” applications and domains&lt;br /&gt;
** Computational mechanics and multiscale techniques (lead: Arun Prakash)&lt;br /&gt;
** Peridynamics and Trilinos libraries (lead: Michael Parks)&lt;br /&gt;
* Build compiler infrastructure in ROSE&lt;br /&gt;
** Compiler infrastructure and optimization strategies (leads: Milind Kulkarni and Sam Midkiff)&lt;br /&gt;
** Annotation language and IR (leads: Milind Kulkarni and Sam Midkiff)&lt;br /&gt;
** Cost models and performance modeling (lead: Vijay Pai)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concrete Deliverables ==&lt;br /&gt;
* Annotation language&lt;br /&gt;
* Common IR&lt;br /&gt;
* Generic compiler infrastructure&lt;br /&gt;
* “Showcase” annotated libraries&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
&lt;br /&gt;
=== Software Releases ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SemCache&#039;&#039;&#039; Will provide annotated, concrete, domain-specific libraries that use SLEEC technology to automatically manage communication between CPU and GPU for codes using Trilinos/Kokkos. Integration in progress.&lt;br /&gt;
&lt;br /&gt;
=== Presentations/Papers ===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Exploiting Domain Knowledge to Optimize Parallel Computational Mechanics Codes.&amp;quot; ICS 2013 [https://engineering.purdue.edu/~milind/docs/ics13b.pdf (PDF)]&lt;br /&gt;
* &amp;quot;SemCache: Semantics-aware Caching for Efficient GPU Offloading.&amp;quot; ICS 2013. [https://engineering.purdue.edu/~milind/docs/ics13a.pdf (PDF)]&lt;br /&gt;
* SLEEC 2014 Progress Presentation [https://engineering.purdue.edu/SLEEC/SLEEC-2014.pdf (PDF)]&lt;br /&gt;
* &amp;quot;SemCache++: Semantics-aware Caching for Efficient Multi-GPU Offloading.&amp;quot; ICS 2015. [https://engineering.purdue.edu/~milind/docs/ics15.pdf (PDF)]&lt;br /&gt;
* &amp;quot;Exploiting Domain Knowledge to Optimize Mesh Partitioning for Multiscale Methods.&amp;quot; Supercomputing 2015 (Poster). [https://engineering.purdue.edu/~milind/docs/sc15.pdf (PDF)]&lt;br /&gt;
* &amp;quot;Optimizing the LULESH Stencil Code using Concurrent Collections.&amp;quot; WolfHPC 2015. [https://engineering.purdue.edu/~milind/docs/wolfhpc15.pdf (PDF)]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=PIPER&amp;diff=5410</id>
		<title>PIPER</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=PIPER&amp;diff=5410"/>
		<updated>2023-07-10T05:03:18Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = PIPER: Performance Insight for Programmers and Exascale Runtimes&lt;br /&gt;
| image = [[File:Screen_Shot_2013-09-27_at_11.17.54_PM.png]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| website = &lt;br /&gt;
| team-members = LLNL, PNNL, Rice Uni., U. of Maryland, U. of Utah, U. of Wisconsin&lt;br /&gt;
| pi = [[Martin Schulz]]&lt;br /&gt;
| co-pi = Peer-Timo Bremer, Todd Gamblin, Jeff Hollingsworth, John Mellor-Crummey, Barton Miller, Valerio Pascucci, Nathan Tallent}}&lt;br /&gt;
&lt;br /&gt;
The PIPER (Performance Insight for Programmers and Exascale Runtimes) project is developing new techniques for measuring, analyzing, attributing, and presenting performance data on exascale systems.&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http://www.llnl.gov/ Lawrence Livermore National Laboratory] ([https://scalability.llnl.gov/ team pages])&lt;br /&gt;
* [http://www.pnnl.gov Pacific Northwest National Laboratory] ([http://hpc.pnnl.gov/people/tallent/ team pages])&lt;br /&gt;
* [http://www.rice.edu Rice University] ([http://hpctoolkit.org/ team pages])&lt;br /&gt;
* [http://www.umd.edu University of Maryland] ([http://www.dyninst.org/harmony team pages])&lt;br /&gt;
* [http://www.utah.edu University of Utah] ([http://www.sci.utah.edu team pages])&lt;br /&gt;
* [http://www.wisc.edu University of Wisconsin] ([http://www.paradyn.org team pages])&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
Exascale architectures and applications will be much more complex than today&#039;s systems, and to achieve high performance, radical changes will be required in high performance computing (HPC) applications and in the system software stack. In such a variable environment, performance tools are essential to enable users to optimize application and system code. Tools must provide online performance feedback to runtime systems to guide online adaptation, and they must output intuitive summaries and visualizations to help developers identify performance problems.&lt;br /&gt;
&lt;br /&gt;
To provide this essential functionality for the extreme-scale software stack, we are developing new abstractions, techniques, and novel tools for data measurement, analysis, attribution, diagnostic feedback, and visualization. This enables Performance Insights for Programmers and Exascale Runtimes (PIPER). This project cuts across the entire software stack by collecting data in all system components through novel abstractions and integrated introspection, providing data attribution and analysis in a system-wide context and across programming models, enabling global correlations of performance data from independent sources in different domains, and delivering dynamic feedback to run-time systems and applications through auto-tuning as well as interactive visualizations.&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
* [https://xstackwiki.modelado.org/images/b/b8/PIPER-Impact_summary.pdf PIPER Project Impact]&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
PIPER consists of four thrust areas, organized into three phases.&lt;br /&gt;
The following figure gives an overall view of our approach:&lt;br /&gt;
&lt;br /&gt;
[[File:columns.png]]&lt;br /&gt;
&lt;br /&gt;
* Thrust 1: We design and implement a series of new scalable measurement techniques to pinpoint and quantify the main roadblocks on the way to exascale, including lack of parallelism, energy consumption, and load imbalance.&lt;br /&gt;
* Thrust 2: We combine a broad range of stack-wide metrics and measurements to gain  a global picture of the application&#039;s execution running on top of the highly complex and possibly adaptive exascale system architecture.&lt;br /&gt;
* Thrust 3: We exploit the stack-wide correlated data and develop a suite of new feature-based analysis and visualization techniques that allow us to gain true insight into a code&#039;s behavior and relay this information back to the user in an intuitive fashion&lt;br /&gt;
* Thrust 4: We apply the analysis results to enable feedback into the system stack enabling autonomic optimization loops both for high- and low-level adaptations.&lt;br /&gt;
&lt;br /&gt;
We are implementing our research in a set of modular components that can be deployed&lt;br /&gt;
across various execution and programming models. Wherever possible, we leverage the extensive&lt;br /&gt;
tool infrastructures available through prior work in our project team and integrate&lt;br /&gt;
the results of our research back into these existing production-level tool sets.&lt;br /&gt;
&lt;br /&gt;
== Architecture and Interaction with the Software Stack ==&lt;br /&gt;
&lt;br /&gt;
We implement our research in a set of modular components that can be deployed&lt;br /&gt;
across various execution and programming models, covering both legacy (MPI+X) models and new models developed in other X-Stack2 projects. Wherever possible, we leverage the extensive&lt;br /&gt;
tool infrastructures available through prior work in our project team and integrate&lt;br /&gt;
the results of our research back into these existing production-level tool sets.&lt;br /&gt;
Furthermore, we make the results of our research available to a broad audience&lt;br /&gt;
and work with the larger tools community to achieve a wider adaption.&lt;br /&gt;
The figure below provides an initial high-level sketch of our envisioned architecture&lt;br /&gt;
that will provide the PIPER functionality:&lt;br /&gt;
&lt;br /&gt;
[[File:Piper_architecture.png]]&lt;br /&gt;
&lt;br /&gt;
We target measurements from the entire hardware/software stack. That is,&lt;br /&gt;
we expect to use measurements from both the underlying system hardware as well&lt;br /&gt;
as custom measurements derived from the application. The measurements themselves&lt;br /&gt;
leverage a series of adaptive instrumentation techniques. As part of the&lt;br /&gt;
measurement operation, we associate the measurements with a local&lt;br /&gt;
call stack. The correlated local stack/performance measurement data feeds&lt;br /&gt;
an analysis pipeline consisting of both node-local analysis methods, and&lt;br /&gt;
distributed, wider-context analysis methods.&lt;br /&gt;
The resulting data&lt;br /&gt;
store supports a high-level query interface used by visualization and data&lt;br /&gt;
analysis reporting tools informing the user. Such a system also enables dynamic tuning,&lt;br /&gt;
and feedback-directed optimization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Released Software ==&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure Elements ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.paradyn.org/html/dyninst9.0.3-features.html Dyninst 9.0 - Dynamic Instrumentation Library]&lt;br /&gt;
* [http://www.paradyn.org/html/mrnet5.0.0-features.html MRNet 5.0 - Tree-based Overlay Network]&lt;br /&gt;
* [https://github.com/OpenMPToolsInterface OMPT/OMPD - Tool Interfaces for OpenMP]&lt;br /&gt;
&lt;br /&gt;
=== Bottleneck Detection / Analysis ===&lt;br /&gt;
&lt;br /&gt;
* [http://hpctoolkit.org/ HPCToolkit - Sampling centric analysis and blame shifting]&lt;br /&gt;
&lt;br /&gt;
=== Performance Visualization ===&lt;br /&gt;
&lt;br /&gt;
* [https://computation.llnl.gov/project/performance-analysis-through-visualization/software.php Boxfish - Visual performance analysis through data centric mappings]&lt;br /&gt;
* [https://github.com/scalability-llnl/ravel Ravel - MPI trace visualization using logical timelines]&lt;br /&gt;
* [https://github.com/scalability-llnl/MemAxes MemAxes/Mitos - Visualization of on-node memory traffic]&lt;br /&gt;
&lt;br /&gt;
=== Auto-Tuning ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.dyninst.org/harmony Active Harmony 4.5 - Multiparameter Tuning Systme]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Ron_Brightwell&amp;diff=5409</id>
		<title>Ron Brightwell</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Ron_Brightwell&amp;diff=5409"/>
		<updated>2023-07-10T05:02:44Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=Ron Brightwell.jpeg&lt;br /&gt;
|firstname=Ron&lt;br /&gt;
|lastname=Brightwell&lt;br /&gt;
|company=Sandia National Laboratories&lt;br /&gt;
|position=Department Manager&lt;br /&gt;
|location=Albuquerque NM&lt;br /&gt;
|country=United States&lt;br /&gt;
|linkedin=https://www.linkedin.com/in/ron-brightwell-797bb74/&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=File:Ron_Brightwell.jpeg&amp;diff=5408</id>
		<title>File:Ron Brightwell.jpeg</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=File:Ron_Brightwell.jpeg&amp;diff=5408"/>
		<updated>2023-07-10T05:02:35Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Ron_Brightwell&amp;diff=5407</id>
		<title>Ron Brightwell</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Ron_Brightwell&amp;diff=5407"/>
		<updated>2023-07-10T05:02:07Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Person |portrait=Ron Brightwell.jpeg |firstname=Ron |middlename= |lastname=Brightwell |company=Sandia National Laboratories |position=Department Manager |location=Albuquerqu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person |portrait=Ron Brightwell.jpeg |firstname=Ron |middlename= |lastname=Brightwell |company=Sandia National Laboratories |position=Department Manager |location=Albuquerque NM |country=United States |sector= |linkedin=https://www.linkedin.com/in/ron-brightwell-797bb74/ }}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=XPRESS&amp;diff=5406</id>
		<title>XPRESS</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=XPRESS&amp;diff=5406"/>
		<updated>2023-07-10T05:01:37Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox2 project&lt;br /&gt;
| title = XPRESS&lt;br /&gt;
| image = [[File:XPRESS-Logos.png|350px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [http://www.sandia.gov/ SNL], [http://www.indiana.edu/ IU], [http://www.lbl.gov/ LBNL], [http://www.lsu.edu/ LSU], [http://www.ornl.gov/ ORNL], [http://www.renci.org/ UNC/RENCI], [http://www.uh.edu/ UH], [https://www.uoregon.edu/ UO] &lt;br /&gt;
| pi = [[Ron Brightwell]]&lt;br /&gt;
| chief-scientist = Thomas Sterling (IU)&lt;br /&gt;
| co-pi = Andrew Lumsdaine (IU), Hartmut Kaiser (LSU), Barbara Chapman (UH), Allen Maloney (UO), Chris Baker (ORNL), Allan Porterfield (UNC/RENCI), Alice Koniges (LBNL)&lt;br /&gt;
| website = http://xstack.sandia.gov/xpress&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;eXascale Programming Environment and System Software&#039;&#039;&#039; or &#039;&#039;&#039;XPRESS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http://www.sandia.gov/ Sandia National Laboratories (SNL)]: LXK operating system, OpenX software architecture, Applications&lt;br /&gt;
* [http://www.indiana.edu/ Indiana University (IU)]: Parallex Execution Model, OpenX software architecture, HPX‐4 runtime system, XPI&lt;br /&gt;
* [http://www.lbl.gov/ Lawrence Berkeley National Laboratory (LBNL)]: Applications&lt;br /&gt;
* [http://www.lsu.edu/ Louisiana State University (LSU)]: HPX‐4 runtime system&lt;br /&gt;
* [http://www.ornl.gov/ Oak Ridge National Laboratory (ORNL)]: Applications&lt;br /&gt;
* [http://www.uh.edu/ University of Houston (UH)]: Application migration&lt;br /&gt;
* [http://renci.org/research/xpress/ University of North Carolina at Chapel Hill/RENCI (UNC/RENCI)]: XPI, HPX‐4, APEX&lt;br /&gt;
* [https://www.uoregon.edu/ University of Oregon (UO)]: Performance instrumentation (APEX)&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
*[https://xstackwiki.modelado.org/images/7/78/XPRESS-Highlights_Summary.pdf XPRESS Project Impact]&lt;br /&gt;
&lt;br /&gt;
== Products == &lt;br /&gt;
&lt;br /&gt;
* [[List of products]]&lt;br /&gt;
&lt;br /&gt;
This  [[Media:XPRESS-Products-2015.pdf|document]] lists all of the products for the XPRESS project.&lt;br /&gt;
&lt;br /&gt;
* Publications&lt;br /&gt;
** A complete list of publications is available [http://xstack.sandia.gov/xpress/publications.html here].&lt;br /&gt;
&lt;br /&gt;
*Software&lt;br /&gt;
** A list of software for this project is available [http://xstack.sandia.gov/xpress/software.html here].&lt;br /&gt;
&lt;br /&gt;
[[File:New-openx.jpg|400x400px|frame|The OpenX Software Architecture]]&lt;br /&gt;
&lt;br /&gt;
== Goals, Objectives, and Approach ==&lt;br /&gt;
* &#039;&#039;&#039;Goals:&#039;&#039;&#039;&lt;br /&gt;
** Enable exascale performance capability for current and future DOE applications&lt;br /&gt;
** Develop and deliver a practical computing system software X‐stack, “OpenX”, for future practical DOE computing systems&lt;br /&gt;
** Provide programming methods, environments, languages, and tools for effective means of expressing application and system software for portable exascale system execution&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Objectives:&#039;&#039;&#039;&lt;br /&gt;
** Derive a dynamic adaptive introspective strategy for exploiting opportunities and addressing critical exascale technology challenges in the form of an abstract execution model&lt;br /&gt;
** Devise a software architecture as a framework for future exascale system design and implementation&lt;br /&gt;
** Implement core interrelated and interoperable components of the software architecture to realize a fully working and usable system&lt;br /&gt;
** Test, evaluate, validate, and demonstrate correctness, performance, resiliency, and energy efficiency&lt;br /&gt;
** Provide technology transfer through cooperative engagement of industry hardware and software vendors and national labs via documentation and training&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Approach:&#039;&#039;&#039;&lt;br /&gt;
** Research, develop, and deploy a software stack to exploit the ParalleX execution model&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
&lt;br /&gt;
=== ParalleX Execution Model ===&lt;br /&gt;
* An execution model to provide the governing principles of computation to guide the system co-design and interoperability of software component layers and portability across system classes &lt;br /&gt;
&lt;br /&gt;
* Goal is to provide conceptual foundation to dramatically increase efficiency and scalability through transition from static to dynamic resource management and task scheduling and exploitation of new sources of parallelism &lt;br /&gt;
&lt;br /&gt;
* Key semantic constructs &lt;br /&gt;
** Active Global Address Space (“AGAS”) for single system image &lt;br /&gt;
** First class lightweight user threads for medium­‐gain parallelism &lt;br /&gt;
** “Parcels” message­‐driven computing for latency mitigation &lt;br /&gt;
** Local Control Objects (“LCO”) for powerful system synchronization &lt;br /&gt;
&lt;br /&gt;
* Performance strategy&lt;br /&gt;
** Scalability through lightweight thread level parallelism, overlapping successive phases of computation with powerful synchronization and elimination of global barriers, automatic exposure/exploitation of intrinsic meta‐data parallelism, effective use of finer grain parallelism through reduction of overhead that bounds granularity &lt;br /&gt;
** Latency mitigation through parcels by reducing numbers of long distance actions (split­‐phase transactions), localizing remote data and work, migrating continuations to change locus of continued execution with data structure, lightweight thread context switching, and direct in­‐memory and parcel generation without thread instantiation, and locality semantics &lt;br /&gt;
** Overhead reduction is derived by powerful semantics of synchronization for minimum work, optimized thread control &lt;br /&gt;
** Contention amelioration through dynamic resource management&lt;br /&gt;
&lt;br /&gt;
=== LXK: Lightweight eXascale Kernel ===&lt;br /&gt;
* Based on Sandia’s Kitten lightweight kernel &lt;br /&gt;
* Boots idenDcally to Linux &lt;br /&gt;
** Repurposes basic Linux funcDonality (PCI, NUMA, ACPI, etc.) &lt;br /&gt;
** Supports POSIX threads (NPTL) and OpenMP &lt;br /&gt;
** Allows innovaDon in key areas &lt;br /&gt;
*** Memory management &lt;br /&gt;
*** Multicore messaging &lt;br /&gt;
*** Network stack optimizations &lt;br /&gt;
*** Fully tick‐less operation &lt;br /&gt;
** 20K LOC &lt;br /&gt;
&lt;br /&gt;
* Allows for re‐thinking OS structure and implementation of &lt;br /&gt;
** Lightweight asynchronous system services &lt;br /&gt;
** Dynamic composability and modularity &lt;br /&gt;
** Adaptive resource policy enforcement mechanisms &lt;br /&gt;
** Interface to runtime system(s) &lt;br /&gt;
** Integrated instrumentation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kitten Implementation&#039;&#039;&#039;&lt;br /&gt;
* Monolithic, C code, GNU toolchain, Kbuild configuration &lt;br /&gt;
* Supports x86­‐64 architecture only, considering port to ARM &lt;br /&gt;
** Boots on standard PC architecture, Cray XT, and in virtual machines &lt;br /&gt;
** Boots identically to Linux (Kitten bzImage and init_task) &lt;br /&gt;
&lt;br /&gt;
* Repurposes basic functionality from Linux &lt;br /&gt;
** Hardware bootstrap &lt;br /&gt;
** Basic OS kernel primitives (lists, locks, wait queues, etc.) &lt;br /&gt;
** PCI, NUMA, ACPI, IOMMU, … &lt;br /&gt;
** Directory structure similar to Linux, arch dependent/independent directories &lt;br /&gt;
&lt;br /&gt;
* Custom address space management and task management &lt;br /&gt;
** User‐level API for managing physical memory, building virtual address spaces &lt;br /&gt;
** User‐level API for creating tasks, which run in virtual address spaces &lt;br /&gt;
** User‐level API for migrating tasks between cores&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kitten Thread Support&#039;&#039;&#039;&lt;br /&gt;
* Kitten user‐applications link with standard GNU C library (Glibc) and other system libraries installed on the Linux build host &lt;br /&gt;
&lt;br /&gt;
* Functionality added to Kitten to support Glibc NPTL POSIX threads implementation &lt;br /&gt;
** Futex() system call (fast user‐level locking) &lt;br /&gt;
** Basic support for signals &lt;br /&gt;
** Match Linux implementation of thread local storage &lt;br /&gt;
** Support for multiple threads per CPU core, preemptively scheduled &lt;br /&gt;
&lt;br /&gt;
* Kitten supports runtimes that work on top of POSIX threads &lt;br /&gt;
** Glibc GOMP OpenMP implementation &lt;br /&gt;
** Sandia Qthreads &lt;br /&gt;
** Probably others with a little effort&lt;br /&gt;
&lt;br /&gt;
=== HPX Runtime System ===&lt;br /&gt;
* A next‐generation runtime system software layer that supports the semantics of the ParalleX execution model for significant increase in efficiency and scalability &lt;br /&gt;
*  HPX‐3 provides &lt;br /&gt;
** Existing early proof‐of‐concept software dynamic adaptive resource management, task scheduling, global name space, efficient powerful synchronization, and Parcel message­‐driven computation. Interfaces with conventional Unix­‐like OS. &lt;br /&gt;
** HPX­‐5 &lt;br /&gt;
** Modular system software architecture with specified functionality, interfaces and protocols for intra­‐operability and interfaces to OS and programming environment &lt;br /&gt;
** Introspection closed­‐loop system for &lt;br /&gt;
*** Resiliency through microcheckpointing &lt;br /&gt;
*** Dynamic load balancing &lt;br /&gt;
*** Power monitoring and control&lt;br /&gt;
&lt;br /&gt;
=== XPI: Low‐Level Intermediate Form ===&lt;br /&gt;
* User programming syntax and source‐to‐source compiler target for high‐level programming languages &lt;br /&gt;
* Provides stable application plakorm based on HPX, which is expected to change underneath throughout project &lt;br /&gt;
* A library of C­‐bindings to represent lowest­‐level semantics, policies, and mechanisms for ParalleX execution model &lt;br /&gt;
* XPI construct classes&lt;br /&gt;
** Process&lt;br /&gt;
** Thread&lt;br /&gt;
** Locality&lt;br /&gt;
** Parcel&lt;br /&gt;
** Future&lt;br /&gt;
** Dataflow&lt;br /&gt;
** Housekeeping&lt;br /&gt;
&lt;br /&gt;
=== XPRESS Information Flow ===&lt;br /&gt;
* Passing information between layers will be critical &lt;br /&gt;
** In current systems information flows one direction &lt;br /&gt;
&lt;br /&gt;
* For Exascale static scheduling decisions will not work &lt;br /&gt;
** Dynamic environment &lt;br /&gt;
*** Billion‐way parallelism &lt;br /&gt;
*** Resilience &lt;br /&gt;
*** Reliability &lt;br /&gt;
*** Energy &lt;br /&gt;
*** Shared resource contention &lt;br /&gt;
&lt;br /&gt;
* Feedback will be required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Performance Information as Glue&#039;&#039;&#039;&lt;br /&gt;
* Performance informaDon &lt;br /&gt;
** Current: post‐execution performance tools &lt;br /&gt;
** Exascale: dynamic application introspection &lt;br /&gt;
&lt;br /&gt;
* For performance and reliability thread/core/node/system knowledge will be critical throughout the software stack &lt;br /&gt;
** Interfaces designed to enable information flow &lt;br /&gt;
*** Utilities need to know current system performance &lt;br /&gt;
*** Utilities need to know how other utilities are reacting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exascale Performance Observability&#039;&#039;&#039;&lt;br /&gt;
* Exascale requires a fundamentally new observability paradigm &lt;br /&gt;
** Reflects translation of application and mapping of computation model to execution model &lt;br /&gt;
** Designed specifically to support introspection of runtime performance for adaptation and control &lt;br /&gt;
** Aware of multiple objectives &lt;br /&gt;
*** System‐level resource utilization data and analysis, energy consumption, and health information &lt;br /&gt;
&lt;br /&gt;
* Exascale observability abstraction &lt;br /&gt;
** Inherent state of exascale execution is dynamic &lt;br /&gt;
** Embodies non‐stationarity of performance, energy, resilience during application execution &lt;br /&gt;
** Constantly shaped by the adaptation of resources to meet computational needs and optimize execution objectives&lt;br /&gt;
&lt;br /&gt;
=== OpenX Software Stack and APEX ===&lt;br /&gt;
&lt;br /&gt;
=== APEX ===&lt;br /&gt;
* XPRESS performance measurement/analysis/introspection &lt;br /&gt;
** Observation and runtime analysis of performance, energy, and reliability &lt;br /&gt;
** Online introspection resource utilization, energy consumption, and health information &lt;br /&gt;
** Coupling of introspection with OpenX software stack for self­‐adaptive control &lt;br /&gt;
&lt;br /&gt;
* APEX: Autonomic Performance Environment for eXascale &lt;br /&gt;
** Support performance awareness and performance reactivity &lt;br /&gt;
** Couple with application and execution knowledge &lt;br /&gt;
** Serve top­‐down AND bottom‐up requirements of OpenX &lt;br /&gt;
** Performance overlay on OpenX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;APEX’s Role for Top­‐Down OpenX Requirements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Top-­‐down requirements are driven by: &lt;br /&gt;
** Mapping of applications to the ParalleX model &lt;br /&gt;
** Translation through the programming models and the language compilers into runtime operations and execution &lt;br /&gt;
** Performance abstractions (PA) at each level define: &lt;br /&gt;
*** Set of parameters to be observed by the next levels down &lt;br /&gt;
*** Performance model to be evaluated and provide basis for control &lt;br /&gt;
** Performance abstractions are coupled with observations through APEX’s hierarchical performance framework &lt;br /&gt;
** Realization of control mechanisms (reactive to PA actualization) &lt;br /&gt;
&lt;br /&gt;
* Top­‐down view sees APEX functionality as part of the application’s execution, specialized with observability and introspection support built into each OpenX layer: &lt;br /&gt;
** LXK OS – system resource, utilization, job contention, overhead &lt;br /&gt;
** HPX – threads, queues, concurrency, remote, parcels, memory &lt;br /&gt;
** XPI/Legacy – language‐level performance semantics&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;APEX’s Role for Bottom­‐Up OpenX Requirements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bottom­‐up requirements are driven by: &lt;br /&gt;
** Performance introspection across the OpenX layers &lt;br /&gt;
** Enable dynamic, adaptive operation, and decision control &lt;br /&gt;
** Online access and analysis of observations at different levels &lt;br /&gt;
** Working model is multi‐parameter system optimization &lt;br /&gt;
&lt;br /&gt;
* APEX creates the performance feedback mechanisms and builds an efficient hierarchical infrastructure for connecting subscribers to runtime performance state &lt;br /&gt;
** Intra‐level performance awareness for HPX and LXK &lt;br /&gt;
** Interplay with the overall application dynamics (top­‐down) &lt;br /&gt;
*** Top­‐down requirement implement constraints &lt;br /&gt;
** Performance information is the result of runtime analysis&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Top­‐Down Development Approach&#039;&#039;&#039; &lt;br /&gt;
* Define performance abstraction (focusing on higher level) &lt;br /&gt;
** Specify observability requirements, and results semantics &lt;br /&gt;
** Provide application context for association &lt;br /&gt;
** What are the performance models, attributes, factors? &lt;br /&gt;
&lt;br /&gt;
* Build into legacy languages and XPI &lt;br /&gt;
** APEX programming of PA infrastructure &lt;br /&gt;
** Invokes HPX performance measurement API &lt;br /&gt;
&lt;br /&gt;
* Integrate TAU capabilities for APEX realization &lt;br /&gt;
** Instrumentation &lt;br /&gt;
*** legacy programming (MPI, OpenMP, OpenACC) &lt;br /&gt;
*** imperative API (XPI) for ParalleX programming &lt;br /&gt;
** TAU mapping for measurement contextualization &lt;br /&gt;
** Wrapper interposition to intercept HPX runtime layer &lt;br /&gt;
&lt;br /&gt;
* Create introspection API for feedback&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Legacy Application Migration and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
* Seamless migration, no modification needed for apps &lt;br /&gt;
** Retargeting OpenMP compiler to OpenX &lt;br /&gt;
** Adapting MPI to OpenX, need MPI system‐level adjustment, and change of configuration logic &lt;br /&gt;
&lt;br /&gt;
* Two approaches for retargeting OpenMP via XPI: &lt;br /&gt;
** Through a POSIX compliant interface using XPI, e.g. pthreads on top of XPI &lt;br /&gt;
*** +: No (or minor) modification needed to OpenMP compiler &lt;br /&gt;
*** -­: May only use a limited subset of OpenX features &lt;br /&gt;
** Rewrite OpenMP compiler and runtime to XPI &lt;br /&gt;
*** +: Explore OpenX advanced features &lt;br /&gt;
&lt;br /&gt;
* OpenACC integration with OpenX &lt;br /&gt;
** Adapt the OpenACC data movement mechanism to OpenX communication parcels in the AGAS &lt;br /&gt;
** Integrate accelerator kernel execution of OpenACC with the OpenX execution model &lt;br /&gt;
&lt;br /&gt;
* Evaluation: &lt;br /&gt;
** Applications: Mini­‐apps with MPI+OpenMP/OpenACC &lt;br /&gt;
** Performance and productivity feedback to the OpenX implementation team&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5405</id>
		<title>Wilfred Pinfold</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5405"/>
		<updated>2023-07-10T05:00:37Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=WilfredPinfold864.png&lt;br /&gt;
|firstname=Wilfred&lt;br /&gt;
|middlename=Robert&lt;br /&gt;
|lastname=Pinfold&lt;br /&gt;
|company=OpenCommons&lt;br /&gt;
|position=President&lt;br /&gt;
|location=Maupin OR&lt;br /&gt;
|country=United States&lt;br /&gt;
|linkedin=https://www.linkedin.com/in/wilfred-pinfold-aa6b68/&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5404</id>
		<title>Wilfred Pinfold</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5404"/>
		<updated>2023-07-10T05:00:14Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=WilfredPinfold864.png&lt;br /&gt;
|firstname=Wilfred&lt;br /&gt;
|middlename=Robert&lt;br /&gt;
|lastname=Pinfold&lt;br /&gt;
|company=OpenCommons&lt;br /&gt;
|position=President&lt;br /&gt;
|location=Maupin OR&lt;br /&gt;
|country=United States&lt;br /&gt;
|sector=Transportation&lt;br /&gt;
|linkedin=https://www.linkedin.com/in/wilfred-pinfold-aa6b68/&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5403</id>
		<title>Wilfred Pinfold</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5403"/>
		<updated>2023-07-10T04:57:43Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person |portrait=WilfredPinfold.png |firstname=Wilfred |middlename=Robert |lastname=Pinfold |company=OpenCommons |position=President |location=Maupin OR |country=United States |sector=Transportation |linkedin=https://www.linkedin.com/in/wilfred-pinfold-aa6b68/ }}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=File:WilfredPinfold.png&amp;diff=5402</id>
		<title>File:WilfredPinfold.png</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=File:WilfredPinfold.png&amp;diff=5402"/>
		<updated>2023-07-10T04:55:15Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5401</id>
		<title>Wilfred Pinfold</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Wilfred_Pinfold&amp;diff=5401"/>
		<updated>2023-07-10T04:53:10Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Person |portrait=Pinfold200.jpg |firstname=Wilfred |middlename=Robert |lastname=Pinfold |company=urban.systems Inc. |position=CEO |location=Maupin OR |country=United States...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person |portrait=Pinfold200.jpg |firstname=Wilfred |middlename=Robert |lastname=Pinfold |company=urban.systems Inc. |position=CEO |location=Maupin OR |country=United States |sector=Transportation |linkedin=www.wilfredpinfold.com }}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Traleika_Glacier&amp;diff=5400</id>
		<title>Traleika Glacier</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Traleika_Glacier&amp;diff=5400"/>
		<updated>2023-07-10T04:52:42Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = Traleika Glacier X-Stack&lt;br /&gt;
| image = [[File:Traleikaglacier.jpg]] &amp;lt;!--[[File:TG-Logos.png|350px]]--&amp;gt;&lt;br /&gt;
| imagecaption =  &lt;br /&gt;
| team-members = [http://www.intel.com/ Intel], [https://www.reservoir.com/ Reservoir Labs], [http://www.etinternational.com/ ETI], [http://www.udel.edu/ UDEL], [http://www.ucsd.edu/ UC San Diego], [http://www.rice.edu/ Rice U.], [http://cs.illinois.edu/ UIUC], [http://www.pnnl.gov/ PNNL]&lt;br /&gt;
| pi = [[Shekhar Borkar]]&lt;br /&gt;
| co-pi = [[Wilfred Pinfold]], Richard Lethin (Reservoir Labs), Laura Carrington (UC San Diego), Vivek Sarkar (Rice U.), David Padua (UIUC), Josep Torrellas (UIUC), Andres Marquez (PNNL)&lt;br /&gt;
| website = [https://xstack.exascale-tech.com/wiki/index.php/Main_Page https://xstack.exascale-tech.com/wiki/index.php/Main_Page]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http://www.intel.com/ Intel:] Shekhar Borkar (PI); Hardware guidance, HW/SW co-design, resiliency, technical management&lt;br /&gt;
* [https://www.reservoir.com/ Reservoir Labs:] Richard Lethin (PI); Programming system, R-Stream, tools, optimization&lt;br /&gt;
&amp;lt;!---------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
* [http://www.etinternational.com/ ET International (ETI):] PI TBD ; Simulators, execution model and runtime support&lt;br /&gt;
* [http://www.udel.edu/ University of Delaware (UDEL):] Guang Gao (PI); Execution model research&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
* [http://www.ucsd.edu/ University of California, San Diego (UC San Diego):] Laura Carrington (PI); Applications&lt;br /&gt;
* [http://www.rice.edu/ Rice University:] Vivek Sarkar (PI); Programming system, runtime system&lt;br /&gt;
* [http://cs.illinois.edu/ University of Illinois at Urbana-Champaign (UIUC):] David Padua, Josep Torrellas (PIs); Programming system, Hierarchical Tiles Arrays (HTA), architecture, system architecture evaluation&lt;br /&gt;
* [http://www.pnnl.gov/ Pacific Northwest National Laboratory (PNNL):] Andres Marquez (PI); Kernels and proxy apps for evaluation&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
*[https://xstackwiki.modelado.org/images/2/21/Traleika_Glacier_Impacts.pdf Traleika Glacier Project Impact]&lt;br /&gt;
&lt;br /&gt;
== Goals and Objectives ==&lt;br /&gt;
&#039;&#039;&#039;Goal:&#039;&#039;&#039; &lt;br /&gt;
The Traleika Glacier X-Stack program will develop X-Stack software components in close collaboration with application specialists at the DOE co-design centers and with the best available knowledge of the Exascale systems we anticipate will be available in 2018/2020.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
Intel has built a straw-man hardware platform that embodies potential technology solutions to well understood challenges. This straw-man is implemented in the form of a simulator that will be used as a tool to test software components under investigation by Traleika team members. Co-design will be achieved by developing representative application components that stress software components and platform technologies and then use these stress tests to refine platform and software elements iteratively to an optimum solution. All software and simulator components will be developed in open source facilitating open cross team collaboration. The interface between the software components and the simulator will be built to facilitate back end replacement with current production architectures (MIC and Xeon) providing a broadly available software development vehicle and facilitating the integration of new tools and compilers conceived and developed under this proposal with existing environments like MPI, OpenMP, and OpenCL.&lt;br /&gt;
&lt;br /&gt;
The Traleika Glacier X-Stack team brings together strong technical expertise from across the exascale software stack. Utilizing applications of high interest to the DoE from five National Labs, coupled with software systems expertise from Reservoir Labs, ET International, the University of Illinois, University of California San Diego, University of Delaware, and Rice University, using a foundation of platform excellence from Intel. This project builds collaboration between many of the partners making this team uniquely capable of rapid progress. The research is not only expected to further the art in system software for high performance computing but also provide invaluable feedback thru the co-design loop for hardware design and application development. By breaking down research and development barriers between layers in the solution stack this collaboration and the open tools it produces will spur innovation for the next generation of high performance computing systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Objectives:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Energy efficiency:&#039;&#039;&#039; SW components interoperate, harmonize, exploit HW features, and optimize the system for energy efficiency&lt;br /&gt;
* &#039;&#039;&#039;Data locality:&#039;&#039;&#039; PGM system &amp;amp; system SW optimize to reduce data movement&lt;br /&gt;
* &#039;&#039;&#039;Scalability:&#039;&#039;&#039; SW components scalable, portable to O(109)—extreme parallelism&lt;br /&gt;
* &#039;&#039;&#039;Programmability:&#039;&#039;&#039; New (Asychronous) &amp;amp; legacy (MPI+OpenMP), with gentle slope for productivity&lt;br /&gt;
* &#039;&#039;&#039;Execution model:&#039;&#039;&#039; Objective function based, dynamic, global system optimization&lt;br /&gt;
* &#039;&#039;&#039;Self-awareness:&#039;&#039;&#039; Dynamically respond to changing conditions and demands&lt;br /&gt;
* &#039;&#039;&#039;Resiliency:&#039;&#039;&#039; Asymptotically provide reliability of N-modular redundancy using HW/SW co-design; HW detection, SW correction&lt;br /&gt;
&lt;br /&gt;
== Status Reports ==&lt;br /&gt;
* [[media:TG_X-Stack_Review_Top_2_20140401.pdf| Traleika Glacier X-Stack Highlights]], April 1, 2014&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_Status_Review_20140325.pdf| Traleika Glacier X-Stack Status Review]], March 25, 2014&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_M5+6_Status_Report_20140312_Redacted.pdf|Traleika Glacier Year 2 Interim Status Report]], March 12, 2014&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_progress_report_20140523_Redacted.pdf|Traleika Glacier Year 2 Progress Report]], May 30, 2014&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_M8_Status_Report_20140907.pdf|Traleika Glacier Milestone 8 Report]], September 1, 2014&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_M9_Status_Report_20141208.pdf|Traleika Glacier Milestone 9 Report]], December 8, 2014&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_M10_Status_Report.pdf|Traleika Glacier Milestone 10 Report]], March 2, 2015&lt;br /&gt;
* [[media:DE-SC0008717_TG_X-Stack_M11_Status_Report_20150602.pdf|Traleika Glacier Milestone 11 Report]], June 2, 2014&lt;br /&gt;
&lt;br /&gt;
== Meetings and Presentations ==&lt;br /&gt;
=== Weekly Extreme Scale Deep-Dive: Schedule and Archive ===&lt;br /&gt;
* [https://eci.exascale-tech.com/wiki/index.php/Weekly_Technical_Review_Meeting Weekly Technical Review Meeting] (Tuesdays, 10-12 Pacific Time)&lt;br /&gt;
&lt;br /&gt;
=== Co-Design Workshops (Newest to Oldest) ===&lt;br /&gt;
* [http://www.modelado.org/dynamic-runtime-community-project-review-fall-2016/ 7th Co-Design Project Review - September 27 - 29, 2016]&lt;br /&gt;
* [https://eci.exascale-tech.com/wiki/index.php/Application_Workshop_5_-_September_29,_2015_-_October_1,_2015 Application Workshop 5 - September 29, 2015 - October 1, 2015]&lt;br /&gt;
* [https://eci.exascale-tech.com/wiki/index.php/Application_Workshop_4_-_April_7-8,_2015 Application Workshop 4 - April 7-8, 2015]&lt;br /&gt;
* [https://eci.exascale-tech.com/wiki/index.php/Application_Workshop_3_-_September_30,_2014_-_October_2,_2014 Application Workshop 3 - September 30, 2014 - October 2, 2014]&lt;br /&gt;
* [https://eci.exascale-tech.com/wiki/index.php/Application_Workshop_2_-_January_21-23,_2014 Application Workshop 2 - January 21-23, 2014]&lt;br /&gt;
&lt;br /&gt;
== Traleika Glacier products ==&lt;br /&gt;
=== Research Products ===&lt;br /&gt;
* [https://xstack.exascale-tech.com/wiki/index.php/Traleika_Glacier_Research_Products Research Products]&lt;br /&gt;
=== Software Releases ===&lt;br /&gt;
* [https://xstack.exascale-tech.com/wiki/index.php/Traleika_Glacier_Software_Releases Software Releases]&lt;br /&gt;
&amp;lt;!---commented out - replaced with links to xstack public site  ******************************************&lt;br /&gt;
== Publications ==&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
* &#039;&#039;Programmer Obliviousness is Bliss: Ideas for Runtime-Managed Granularity&#039;&#039;, Romain Cledat, Sagnak Tasirlar (Rice University) and Rob Knauerhase (Intel). To be published at HotPar ’13, June 24, 2013, San Jose, CA - https://www.usenix.org/conference/hotpar13 &lt;br /&gt;
* &#039;&#039;How to stop interconnects from hindering the future of computing!&#039;&#039;, Shekhar Borkar, Optical interconnects Conference, May 2013&lt;br /&gt;
* &#039;&#039;Exascale Computing—a fact or a fiction?&#039;&#039;, Shekhar Borkar, IPDPS, May 2013&lt;br /&gt;
* &#039;&#039;Functional Simulator for Exascale System Research&#039;&#039;, Romain Cledat (Intel), Josh Fryman (Intel), Ivan Ganev (Intel), Sam Kaplan (ETI), Rishi Khan (ETI), Asit Mishra (Intel), Bala Seshasayee (Intel), Ganesh Venkatesh (Intel), Dave Dunning (Intel), Shekhar Borkar (Intel), Workshop on Modeling &amp;amp; Simulation of Exascale Systems &amp;amp; Applications, September 18th-19th, 2013, University of Washington, Seattle, WA - http://hpc.pnl.gov/modsim/2013/&lt;br /&gt;
&lt;br /&gt;
=== Reservoir Labs ===&lt;br /&gt;
* &#039;&#039;A Tale of Three Runtimes&#039;&#039;, Nicolas Vasilache, Muthu Baskaran, Tom Henretty, Benoit Meister, M. Harper Langston, and Richard Lethin, submitted 5-Sep-14 in [http://arxiv.org/abs/1409.1914 arXiv.org]&lt;br /&gt;
&lt;br /&gt;
=== Rice University ===&lt;br /&gt;
* &#039;&#039;Integrating Asynchronous Task Parallelism with MPI&#039;&#039;. Sanjay Chatterjee, Sağnak Taşırlar, Zoran Budimlić, Vincent Cavé, Millind Chabbi, Max Grossman, Yonghong Yan and Vivek Sarkar. 27th IEEE International Parallel &amp;amp; Distributed Processing Symposium (IPDPS 2013), May 2013, Boston, MA. &lt;br /&gt;
* &#039;&#039;Compiler Optimization of an Application-specific Runtime&#039;&#039;, Kathleen Knobe (Intel) and Zoran Budimlić (Rice), CPC 2013: 17th Workshop on Compilers for Parallel Computing, July 3-5, 2013, Lyon, France. (to appear).&lt;br /&gt;
* &#039;&#039;Compiler Optimization of an Application-specific Runtime&#039;&#039;. Kathleen Knobe (Intel) and Zoran Budimlic (Rice). In Compilers for Parallel Computers (CPC), July 2013.&lt;br /&gt;
* &#039;&#039;Compiler Optimization of an Application-specific Runtime&#039;&#039;. Kathleen Knobe (Intel) and Zoran Budimlic (Rice). Abstract to appear in CnC&#039;13 workshop, September 2013.&lt;br /&gt;
* &#039;&#039;Automatic Selection of Distribution Functions for Distributed CnC&#039;&#039;, Kamal Sharma (Rice), Kathleen Knobe (Intel), Frank Schlimbach (Intel), Vivek Sarkar (Rice).  Abstract to appear in CnC&#039;13 workshop, September 2013. &lt;br /&gt;
* &#039;&#039;CnC on Open Community Runtime&#039;&#039;, Alina Sbirlea (Rice) and Zoran Budimlic (Rice). Abstract to appear in CnC&#039;13 workshop, September 2013.&lt;br /&gt;
* &#039;&#039;Bounded Memory Scheduling of CnC Programs&#039;&#039;, Dragos Sbirlea (Rice), Zoran Budimlic (Rice) and Vivek Sarkar (Rice). Abstract to appear in CnC&#039;13 workshop, September 2013.&lt;br /&gt;
* &#039;&#039;CDSC-GL: A CnC-inspired Graph Language&#039;&#039;, Zoran Budimlic (Rice), Jason Cong (UCLA), Zhou Li (UCLA), Louis-Noel Pouchet (UCLA), Vivek Sarkar (Rice), Alina Sbirlea (Rice), Mo Xu (UCLA), Pen Zhang (UCLA). Abstract to appear in CnC&#039;13 workshop, September 2013.&lt;br /&gt;
* &#039;&#039;Bounded memory scheduling of dynamic task graphs&#039;&#039;, Dragos Sbirlea, Zoran Budimlić, Vivek Sarkar, submitted to IPDPS 2014.&lt;br /&gt;
* &#039;&#039;Isolation for Nested Task Parallelism&#039;&#039;, Jisheng Zhao, Roberto Lublinerman, Zoran Budimlic, Swarat Chaudhuri, Vivek Sarkar, The 29th International Conference on the Object-Oriented Programming, System, Languages and Application (OOPSLA), October 2013.&lt;br /&gt;
* &#039;&#039;Bounded memory scheduling of dynamic task graphs&#039;&#039;, Dragos Sbirlea, Zoran Budimlic, Vivek Sarkar, to appear in The 23rd International Conference on Parallel Architectures and Compilation Techniques (PACT 2014).&lt;br /&gt;
* &#039;&#039;Expressing DOACROSS Loop Dependencies in OpenMP&#039;&#039;, Jun Shirako, Priya Unnikrishnan, Sanjay Chatterjee, Kelvin Li, Vivek Sarkar, 9th International Workshop on OpenMP (IWOMP), September 2013.&lt;br /&gt;
* &#039;&#039;The Flexible Preconditions Model for Macro-Dataflow Execution&#039;&#039;, Dragoș Sbîrlea, Alina Sbîrlea, Kyle B. Wheeler, Vivek Sarkar, The 3rd Data-Flow Execution Models for Extreme Scale Computing (DFM), September 2013.&lt;br /&gt;
&lt;br /&gt;
=== Pacific Northwest National Lab ===&lt;br /&gt;
* &#039;&#039;ACDT: Architected Composite Data Types Trading-in Unfettered Data Access for Improved Execution&#039;&#039;, Marquez, A. et.al, submitted to the 23rd International ACM symposium on High Performance Parallel and Distributed Computing 2014, Vancouver Canada.&lt;br /&gt;
&lt;br /&gt;
=== University of Delaware ===&lt;br /&gt;
* &#039;&#039;An Implementation of the Codelet Model&#039;&#039;, Joshua Suetterlein, Stephane Zuckerman, and Guang R. Gao, to be published in the proceedings of the 19th International European Conference on Parallel and Distributed Computing (EuroPar  2013), August 26-30,  Aachen, Germany. &lt;br /&gt;
* &#039;&#039;Towards Memory-Load Balanced Fast Fourier Transformations in Fine-Gain Execution Models&#039;&#039;, Chen Chen, Yao Wu, Stephane Zuckerman, and Guang R. Gao, to be published in Proceedings of 2013 Workshop on Multithreaded Architectures and Applications (MTAAP 2013). 27th IEEE International Parallel &amp;amp; Distributed Processing Symposium, May 24, Boston, MA, USA. &lt;br /&gt;
* [[media:Toward_a_Self-Aware_System_for_Exascale_Architectures_20130614.pdf|&#039;&#039;Toward a Self-Aware System for Exascale Architectures&#039;&#039;]][http://www.capsl.udel.edu/pub/doc/papers/rome13.pdf], Aaron Myles Landwehr, Stephane Zuckerman, Guang R. Gao, CAPSL Technical Memo 123, June 2013. &lt;br /&gt;
* [http://www.capsl.udel.edu/pub/doc/papers/LCPC2013.pdf|&#039;&#039;Optimizing the LU Factorization for Energy Efficiency on a Many-Core Architecture&#039;&#039;], Elkin Garcia, Jaime Arteaga, Robert Pavel, and Guang R. Gao, in Proceedings of the 26th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2013), Santa Clara, CA, September 25-27, 2013.&lt;br /&gt;
* &#039;&#039;Position Paper: Locality-Driven Scheduling of Tasks for Data-Dependent Multithreading&#039;&#039;, Jaime Arteaga, Stephane Zuckerman, Elkin Garcia, and Guang R. Gao, in Proceedings of Workshop on Multi-Threaded Architectures and Applications (MTAAP 2014), May 2014, Accepted.&lt;br /&gt;
* &#039;&#039;Runtime Systems for Extreme Scale Platforms&#039;&#039;, Sanjay Chatterjee, PhD Thesis, December 2013.&lt;br /&gt;
&lt;br /&gt;
=== Joint Publications ===&lt;br /&gt;
* &#039;&#039;Compiler Support for Software Cache Coherence&#039;&#039;, Sanket Tavarageri, Wooil Kim, Josep Torrellas, and P Sadayappan Pacific Northwest National Labs (John Feo, Andres Marquez), submitted for publication.&lt;br /&gt;
* &#039;&#039;A Dynamic Schema to increase performance in Many-core Architectures through Percolation operations&#039;&#039;, Elkin Garcia, Daniel Orozco, Rishi Khan, Ioannis Venetis, Kelly Livingston, and Guang Gao, in Proceedings of the 2013 IEEE International Conference on High Performance Computing (HiPC 2013), Hyderabad, India, December 18 - 21, 2013.&lt;br /&gt;
* &#039;&#039;ASAFESSS: A Scheduler-driven Adaptive Framework for Extreme Scale Software Stacks&#039;&#039;, Tom St. John, Benoit Meister, Andres Marquez, Joseph B. Manzano, Guang R. Gao, and Xiaoming Li, in Proceedings of the 4th International Workshop on Adaptive Self-Tuning Computing Systems (ADAPT&#039;14); 9th International Conference on High-Performance and Embedded Architectures and Compilers (HiPEAC&#039;14), Vienna, Austria. January 20-22, 2014. Best Paper Award.&lt;br /&gt;
&lt;br /&gt;
==Presentations and Other Collateral==&lt;br /&gt;
&lt;br /&gt;
* [[media:Ocr-bof-slides_20121114.pdf|&#039;&#039;Birds-of-a-Feather&#039;&#039;]] session at SuperComputing12, November 14, 2012. See the OCR homepage at https://01.org/projects/open-community-runtime.&lt;br /&gt;
* [[media:TG_Overview_Carrington.pdf|&#039;&#039;Traleika Glacier X-Stack Overview&#039;&#039;]], presented by Laura Carrington (UCSD) at the Fourth ExaCT All Hands Meeting, Sandia National Laboratories, May 14, 2013&lt;br /&gt;
* [[media:OCR-SC13-BOF.pdf|&#039;&#039;The Open Community Runtime Framework for Exascale Systems&#039;&#039;]], Birds of a Feather Session, SC13, Denver, November 19, 2013, Vivek Sarkar (Rice), Rob Knauerhase (Intel), Rich Lethin (Reservoir Labs)&lt;br /&gt;
* [[media:OnePage_LULESH_to_CnC.pdf|&#039;&#039;Experience developing CnC versions of DOE Applications&#039;&#039;]] - Ellen Porter (PNNL), Kath Knobe (Intel), John Feo (PNNL) - 4/15/14&lt;br /&gt;
* [[media:2014-05-23-XS-PI-meeting-v4.pdf|&#039;&#039;May 2014 PI Meeting&#039;&#039;]]&lt;br /&gt;
* [[media:OCR-SC14-BOF.pdf|&#039;&#039;Open Community Runtime (OCR) Framework for Extreme Scale Systems&#039;&#039;]], Birds of a Feather Session, SC14, New Orleans, November 20, 2014, Vivek Sarkar (Rice), Barbara Chapman (U. Houston), William Gropp (U. Illinois)&lt;br /&gt;
&lt;br /&gt;
=== CnC’13 workshop September, 2013 ===&lt;br /&gt;
The following were presented at the CnC’13 workshop September, 2013. This was the fifth annual CnC workshop. It was co-located with Languages and Compilers for Parallel Systems (LCPC) in Santa Clara, CA.&lt;br /&gt;
* &#039;&#039;Compiler Optimization of an Application-Specific Runtime&#039;&#039;. Kathleen Knobe (Intel) and Zoran Budimlic (Rice). * &lt;br /&gt;
* &#039;&#039;The CnC tuning capability&#039;&#039;, Sanjay Chatterjee (Rice), Zoran Budimlic (Rice), Vivek Sarkar (Rice), Kathleen Knobe (Intel).  &lt;br /&gt;
* &#039;&#039;Automatic Selection of Distribution Functions for Distributed CnC&#039;&#039;, Kamal Sharma (Rice), Kathleen Knobe (Intel), Frank Schlimbach (Intel), Vivek Sarkar (Rice)*.&lt;br /&gt;
* &#039;&#039;CnC on Open Community Runtime&#039;&#039;, Alina Sbirlea (Rice) and Zoran Budimlic (Rice). &lt;br /&gt;
* &#039;&#039;Bounded Memory Scheduling of CnC Programs&#039;&#039;, Dragos Sbirlea (Rice), Zoran Budimlic (Rice) and Vivek Sarkar (Rice). *&lt;br /&gt;
* &#039;&#039;CDSC-GL: A CnC-inspired Graph Language&#039;&#039;, Zoran Budimlic (Rice), Jason Cong (UCLA), Zhou Li (UCLA), Louis-Noel Pouchet (UCLA), Vivek Sarkar (Rice), Alina Sbirlea (Rice), Mo Xu (UCLA), Pen Zhang (UCLA).*&lt;br /&gt;
* &#039;&#039;Implementing Asynchronous Checkpoint/Restart for CnC&#039;&#039;, Nick Vrvilo and Vivek Sarkar (Rice University) Kath Knobe and Frank Schlimbach(Intel)&lt;br /&gt;
* &#039;&#039;Automatic CnC generation from a sequential specification&#039;&#039;, Nicolas Vasilache (Reservoir Labs, Inc.)&lt;br /&gt;
&lt;br /&gt;
Note: Asterisked (*) presentations are supportive of the Traleika Glacier X-Stack strategic aims and objectives but not directly under the statement of work. &lt;br /&gt;
&lt;br /&gt;
=== About OCR - Open Community Runtime ===&lt;br /&gt;
* [[OCR Module General organization]] - snapshot as of May 1, 2014. For most recent version, visit https://xstack.exascale-tech.com/wiki/index.php/OCR_Module_General_organization&lt;br /&gt;
* [[OCR Module Policy Domain]] - snapshot as of May 1, 2014. For most recent version visit https://xstack.exascale-tech.com/wiki/index.php/OCR_Module_Policy_Domain&lt;br /&gt;
&lt;br /&gt;
---------------------------&amp;gt;&lt;br /&gt;
== Scope of the Project ==&lt;br /&gt;
[[File:TG-Scope.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
[[File:TG-Roadmap.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Straw-man System Architecture and Evaluation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:TG-Strawman-System.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data-locality and BW Tapering, Why So Important?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:TG-Data-Locality.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programming and Execution Models ==&lt;br /&gt;
[[File:TG-Programming-Model.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programming model&#039;&#039;&#039;&lt;br /&gt;
* Separation of concerns: Domain specification &amp;amp; HW mapping&lt;br /&gt;
* Express data locality with hierarchical tiling&lt;br /&gt;
* Global, shared, non-coherent address space&lt;br /&gt;
* Optimization and auto generation of codelets (HW specific)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Execution model&#039;&#039;&#039;&lt;br /&gt;
* Dataflow inspired, tiny codelets (self contained)&lt;br /&gt;
* Dynamic, event-driven scheduling, non-blocking&lt;br /&gt;
* Dynamic decision to move computation to data&lt;br /&gt;
* Observation based adaption (self-awareness)&lt;br /&gt;
* Implemented in the runtime environment&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Separation of concerns&#039;&#039;&#039;&lt;br /&gt;
* User application, control, and resource management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Programming System Components ===&lt;br /&gt;
&lt;br /&gt;
[[File:TG-System-Components.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Runtime ===&lt;br /&gt;
* Different runtimes target different aspects&lt;br /&gt;
** IRR: targeted for Intel Straw-man architecture&lt;br /&gt;
** SWARM: runtime for a wide range of parallel machines&lt;br /&gt;
** DAR3TS: explore codelet PXM using portable C++&lt;br /&gt;
** Habanero-C: interfaces IRR, tie-in to CnC&lt;br /&gt;
&lt;br /&gt;
* All explore related aspects of the codelet Program Exec Model (PXM)&lt;br /&gt;
&lt;br /&gt;
* Goal: Converge towards Open Collaborative Runtime (OCR)&lt;br /&gt;
** Enabling technology development for codelet execution &lt;br /&gt;
** Model systems, foster novel runtime systems research&lt;br /&gt;
&lt;br /&gt;
* Greater visibility through SW stack -&amp;gt; efficient computing&lt;br /&gt;
** Break OS/Runtime information firewall&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some Promising Results:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:TG-Runtime-Results.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Runtime Research Agenda&#039;&#039;&#039;&lt;br /&gt;
* Locality aware scheduling—heuristics for locality/E-efficiency&lt;br /&gt;
** Extensions to standard Habanero-C runtime&lt;br /&gt;
&lt;br /&gt;
* Adaptive boosting and idling of hardware&lt;br /&gt;
** Avoid energy expensive unsuccessful steals that perform no work&lt;br /&gt;
** Turbo mode for a core executing serial code&lt;br /&gt;
** Fine grain resource (including energy) management&lt;br /&gt;
&lt;br /&gt;
* Dynamic data-block movement&lt;br /&gt;
** Co-locate codelets and data&lt;br /&gt;
** Move codelets to data&lt;br /&gt;
&lt;br /&gt;
* Introspection and dynamic optimization&lt;br /&gt;
** Performance counters, sensors provide real time information&lt;br /&gt;
** Optimization of the system for user defined objective&lt;br /&gt;
** (Go beyond energy proportional computing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simulators and Tools ===&lt;br /&gt;
&lt;br /&gt;
[[File:TG-Simulators-Tools.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Simulators—what to expect and not&#039;&#039;&#039;&lt;br /&gt;
* Evaluation of architecture features for PGM and EXE models&lt;br /&gt;
* Relative comparison of performance, energy&lt;br /&gt;
* Data movement patterns to memory and interconnect&lt;br /&gt;
* Relative evaluation of resource management techniques&lt;br /&gt;
&lt;br /&gt;
[[File:TG-Simulator-Expect-Not.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Results Using Simulators&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:TG-Simulator-Results.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Applications and HW-SW Codesign ==&lt;br /&gt;
[[File:TG-App-HW-Co-design.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== X-Stack Components ==&lt;br /&gt;
[[File:TG-XStack-Components.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Metrics ==&lt;br /&gt;
[[File:TG-Metrics.png|600px]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Shekhar_Borkar&amp;diff=5399</id>
		<title>Shekhar Borkar</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Shekhar_Borkar&amp;diff=5399"/>
		<updated>2023-07-10T04:51:42Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=Shekhar Borkar.jpeg&lt;br /&gt;
|firstname=Shekhar&lt;br /&gt;
|middlename=Y&lt;br /&gt;
|lastname=Borkar&lt;br /&gt;
|company=Qualcomm&lt;br /&gt;
|position=Intel Fellow&lt;br /&gt;
|location=Hillsboro OR&lt;br /&gt;
|country=United States&lt;br /&gt;
|linkedin=https://www.linkedin.com/in/shekhar-borkar-9068097b/&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=File:Shekhar_Borkar.jpeg&amp;diff=5398</id>
		<title>File:Shekhar Borkar.jpeg</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=File:Shekhar_Borkar.jpeg&amp;diff=5398"/>
		<updated>2023-07-10T04:51:29Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Shekhar_Borkar&amp;diff=5397</id>
		<title>Shekhar Borkar</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Shekhar_Borkar&amp;diff=5397"/>
		<updated>2023-07-10T04:51:00Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Person |portrait=Shekhar Borkar.jpeg |firstname=Shekhar |middlename=Y |lastname=Borkar |company=Qualcomm |position=Intel Fellow |location=Hillsboro OR |country=United States...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person |portrait=Shekhar Borkar.jpeg |firstname=Shekhar |middlename=Y |lastname=Borkar |company=Qualcomm |position=Intel Fellow |location=Hillsboro OR |country=United States |sector= |linkedin=https://www.linkedin.com/in/shekhar-borkar-9068097b/ }}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=DEGAS&amp;diff=5396</id>
		<title>DEGAS</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=DEGAS&amp;diff=5396"/>
		<updated>2023-07-10T04:50:06Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = DEGAS&lt;br /&gt;
| image = [[File:DEGAS-Logos.png|350px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [http://www.lbl.gov/ LBNL], [http://www.rice.edu/ Rice U.], [http://www.berkeley.edu/ UC Berkeley], [https://www.utexas.edu/ UT Austin], [https://www.llnl.gov/ LLNL], [http://www.ncsu.edu/ NCSU]&lt;br /&gt;
| pi = [[Katherine Yelick]]&lt;br /&gt;
| co-pi = Vivek Sarkar (Rice U.), James Demmel (UC Berkeley), Mattan Erez (UT Austin), Dan Quinlan (LLNL)&lt;br /&gt;
| website = [http://crd.lbl.gov/departments/computer-science/CLaSS/research/DEGAS/ DEGAS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamic Exascale Global Address Space&#039;&#039;&#039; or &#039;&#039;&#039;DEGAS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http://www.lbl.gov/ Lawrence Berkeley National Laboratory (LBNL)]&lt;br /&gt;
* [http://www.rice.edu/ Rice University]&lt;br /&gt;
* [http://www.berkeley.edu/ University of California, Berkeley]&lt;br /&gt;
* [https://www.utexas.edu/ University of Texas at Austin]&lt;br /&gt;
* [https://www.llnl.gov/ Lawrence Livermore National Laboratory (LLNL)]&lt;br /&gt;
* [http://www.ncsu.edu/ North Carolina State University (NCSU)]&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
* [https://xstackwiki.modelado.org/images/0/09/DEGAS-Highlight_Summary.pdf DEGAS Project Impact]&lt;br /&gt;
&lt;br /&gt;
== Mission ==&lt;br /&gt;
&#039;&#039;&#039;Mission Statement:&#039;&#039;&#039; To ensure the broad success of Exascale systems through a unified programming model that is productive, scalable, portable, and interoperable, and meets the unique Exascale demands of energy efficiency and resilience.&lt;br /&gt;
&lt;br /&gt;
[[File:DEGAS-Mission.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Goals &amp;amp; Objectives ==&lt;br /&gt;
* &#039;&#039;&#039;Scalability:&#039;&#039;&#039; Billion‐way concurrency, thousand‐way on chip with new architectures&lt;br /&gt;
* &#039;&#039;&#039;Programmability:&#039;&#039;&#039; Convenient programming through a global address space and high‐level abstractions for parallelism, data movement and resilience&lt;br /&gt;
* &#039;&#039;&#039;Performance Portability:&#039;&#039;&#039; Ensure applications can be moved across diverse machines using implicit (automatic) compiler optimizations and runtime adaptation&lt;br /&gt;
* &#039;&#039;&#039;Resilience:&#039;&#039;&#039; Integrated language support for capturing state and recovering from faults&lt;br /&gt;
* &#039;&#039;&#039;Energy Efficiency:&#039;&#039;&#039; Avoid communication, which will dominate energy costs, and adapt to performance heterogeneity due to system-­‐level energy management&lt;br /&gt;
* &#039;&#039;&#039;Interoperability:&#039;&#039;&#039; Encourage use of languages and features through incremental adoption&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programming Models ==&lt;br /&gt;
=== Two Distinct Parallel Programming Questions ===&lt;br /&gt;
* What is the parallel control model?&lt;br /&gt;
&lt;br /&gt;
[[File:DEGAS-Parallel-Control-Model.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* What is the model for sharing/communication?&lt;br /&gt;
&lt;br /&gt;
[[File:DEGAS-Sharing-Model.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Applications Drive New Programming Models ===&lt;br /&gt;
[[File:DEGAS-Message-Passing.png]]&lt;br /&gt;
&lt;br /&gt;
* Message Passing Programming&lt;br /&gt;
** Divide up domain in pieces&lt;br /&gt;
** Compute one piece and exchange&lt;br /&gt;
** &#039;&#039;&#039;MPI and many libraries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DEGAS-Global-Address-Space.png]]&lt;br /&gt;
&lt;br /&gt;
* Global Address Space Programming&lt;br /&gt;
** Each start computing&lt;br /&gt;
** Grab whatever/whenever&lt;br /&gt;
** &#039;&#039;&#039;UPC, CAF, X10, Chapel, Fortress, Titanium, GlobalArrays&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hierarchical Programming Model ===&lt;br /&gt;
[[File:DEGAS-Hierarchical-PM.png|right|400px]]&lt;br /&gt;
* &#039;&#039;&#039;Goal:&#039;&#039;&#039; Programmability of exascale applications while providing scalability, locality, energy efficiency, resilience, and portability&lt;br /&gt;
** &#039;&#039;Implicit constructs:&#039;&#039; parallel multidimensional loops, global distributed data structures, adaptation for performance heterogeneity&lt;br /&gt;
** &#039;&#039;Explicit constructs:&#039;&#039; asynchronous tasks, phaser synchronization, locality &lt;br /&gt;
&lt;br /&gt;
* Built on scalability, performance, and asynchrony of PGAS models&lt;br /&gt;
** Language experience from UPC, Habanero‐C, Co‐Array Fortran, Titanium&lt;br /&gt;
&lt;br /&gt;
* Both intra and inter‐node; focus is on node model&lt;br /&gt;
&lt;br /&gt;
* Languages demonstrate DEGAS programming model&lt;br /&gt;
** &#039;&#039;Habanero‐UPC:&#039;&#039; Habanero’s intra‐node model with UPC’s inter‐node model&lt;br /&gt;
** &#039;&#039;Hierarchical Co‐Array Fortran (CAF):&#039;&#039; CAF for on‐chip scaling and more&lt;br /&gt;
** &#039;&#039;Exploration of high level languages:&#039;&#039; E.g., Python extended with H‐PGAS&lt;br /&gt;
&lt;br /&gt;
* Language‐independent H‐PGAS Features:&lt;br /&gt;
** Hierarchical distributed arrays, asynchronous tasks, and compiler specialization for hybrid (task/loop) parallelism and heterogeneity&lt;br /&gt;
** Semantic guarantees for deadlock avoidance, determinism, etc.&lt;br /&gt;
** Asynchronous collectives, function shipping, and hierarchical places&lt;br /&gt;
** End‐to‐end support for asynchrony (messaging, tasking, bandwidth utilization through concurrency)&lt;br /&gt;
** Early concept exploration for applications and benchmarks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Communication-Avoiding Compilers ===&lt;br /&gt;
[[File:DEGAS-Communication-Node.png|300px|right]]&lt;br /&gt;
* &#039;&#039;&#039;Goal:&#039;&#039;&#039; massive parallelism, deep memory and network hierarchies, plus functional and performance heterogeneity&lt;br /&gt;
** &#039;&#039;&#039;Fine‐grained task and data parallelism:&#039;&#039;&#039; enable performance portability&lt;br /&gt;
** &#039;&#039;&#039;Heterogeneity:&#039;&#039;&#039; guided by functional, energy and performance characteristics&lt;br /&gt;
** &#039;&#039;&#039;Energy efficiency:&#039;&#039;&#039; minimize data movement and hooks to runtime adaptation&lt;br /&gt;
** &#039;&#039;&#039;Programmability:&#039;&#039;&#039; manage details of memory, heterogeneity, and containment&lt;br /&gt;
** &#039;&#039;&#039;Scalability:&#039;&#039;&#039; communication and synchronization hiding through asynchrony &lt;br /&gt;
&lt;br /&gt;
* H-PGAS into the Node&lt;br /&gt;
** Communication is all data movement&lt;br /&gt;
&lt;br /&gt;
* Build on code‐generation infrastructure&lt;br /&gt;
** ROSE for H‐CAF and Communication‐Avoidance optimizations&lt;br /&gt;
** BUPC and Habanero‐C; Zoltan&lt;br /&gt;
** Additional theory of CA code generation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exascale Programming: Support for Future Algorithms ===&lt;br /&gt;
[[File:DEGAS-Algorithm.png|600px]]&lt;br /&gt;
* &#039;&#039;&#039;Approach:&#039;&#039;&#039; “Rethink” algorithms to optimize for data movement&lt;br /&gt;
** New class of communication‐optimal algorithms&lt;br /&gt;
** Most codes are not bandwidth limited, but many should be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Challenges:&#039;&#039;&#039; How general are these algorithms?&lt;br /&gt;
** Can they be automated and for what types of loops?&lt;br /&gt;
** How much benefit is there in practice?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Runtime Systems (ARTS) ===&lt;br /&gt;
[[File:DEGAS-Infiniband-Throughput.png|right|400px]]&lt;br /&gt;
* &#039;&#039;&#039;Goal:&#039;&#039;&#039; Adaptive runtime for manycore systems that are hierarchical, heterogeneous and provide asymmetric performance&lt;br /&gt;
** &#039;&#039;&#039;Reactive and proactive control:&#039;&#039;&#039; for utilization and energy efficiency&lt;br /&gt;
** &#039;&#039;&#039;Integrated tasking and communication:&#039;&#039;&#039; for hybrid programming&lt;br /&gt;
** &#039;&#039;&#039;Sharing of hardware threads:&#039;&#039;&#039; required for library interoperability&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Novelty:&#039;&#039;&#039; Scalable control; integrated tasking with communication&lt;br /&gt;
** &#039;&#039;&#039;Adaptation:&#039;&#039;&#039; Runtime annotated with performance history/intentions&lt;br /&gt;
** &#039;&#039;&#039;Performance models:&#039;&#039;&#039; Guide runtime optimizations, specialization&lt;br /&gt;
** &#039;&#039;&#039;Hierarchical:&#039;&#039;&#039; Resource/energy&lt;br /&gt;
** &#039;&#039;&#039;Tunable control:&#039;&#039;&#039; Locality/load balance&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Leverages:&#039;&#039;&#039; Existing runtimes&lt;br /&gt;
** &#039;&#039;&#039;Lithe&#039;&#039;&#039; scheduler composition; &#039;&#039;&#039;Juggle&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;BUPC and Habanero‐C&#039;&#039;&#039; runtimes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Synchronization Avoidance vs Resource Management ===&lt;br /&gt;
&lt;br /&gt;
[[File:DEGAS-Resource-Mgmt.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Management of critical resources will be more important:&lt;br /&gt;
** &#039;&#039;Memory and network bandwidth limited&#039;&#039; by cost and energy&lt;br /&gt;
** &#039;&#039;Capacity limited at many levels:&#039;&#039; network buffers at interfaces, internal network congestion are real and growing problems&lt;br /&gt;
&lt;br /&gt;
* Can runtimes manage these or do users need to help?&lt;br /&gt;
** Adaptation based on history and (user‐supplied) intent?&lt;br /&gt;
** Where will bottlenecks be for a given architecture and application?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lith Scheduling Abstraction: &amp;quot;Harts&amp;quot; (Hardware Threads) ===&lt;br /&gt;
[[File:DEGAS-Harts.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lightweight Communication (GASNet-EX) ===&lt;br /&gt;
[[File:DEGAS-GASNet.png|right]]&lt;br /&gt;
* &#039;&#039;&#039;Goal:&#039;&#039;&#039; Maximize bandwidth use with lightweight communication&lt;br /&gt;
** &#039;&#039;&#039;One‐sided communication:&#039;&#039;&#039; to avoid over‐synchronization&lt;br /&gt;
** &#039;&#039;&#039;Active‐Messages:&#039;&#039;&#039; for productivity and portability&lt;br /&gt;
** &#039;&#039;&#039;Interoperability:&#039;&#039;&#039; with MPI and threading layers&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Novelty:&#039;&#039;&#039;&lt;br /&gt;
** Congestion management: for 1‐sided communication with ARTS&lt;br /&gt;
** Hierarchical: communication management for H‐PGAS&lt;br /&gt;
** Resilience: globally consist states and fine‐grained fault recovery&lt;br /&gt;
** Progress: new models for scalability and interoperatbility&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Leverage GASNet&#039;&#039;&#039; (redesigned):&lt;br /&gt;
** Major changes for on‐chip interconnects&lt;br /&gt;
** Each network has unique opportunities&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Resilience through Containment Domains ===&lt;br /&gt;
[[File:DEGAS-Resilience.png|right]]&lt;br /&gt;
* &#039;&#039;&#039;Goal:&#039;&#039;&#039; Provide a resilient runtime for PGAS applications&lt;br /&gt;
** Applications should be able to customize resilience to their needs&lt;br /&gt;
** Resilient runtime that provides easy‐to‐use mechanisms&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Novelty:&#039;&#039;&#039; Single analyzable abstraction for resilience&lt;br /&gt;
** PGAS Resilience consistency model&lt;br /&gt;
** Directed and hierarchical preservation&lt;br /&gt;
** Global or localized recovery&lt;br /&gt;
** Algorithm and system‐specific detection, elision, and recovery&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Leverage:&#039;&#039;&#039; Combined superset of prior approaches&lt;br /&gt;
** Fast checkpoints for large bulk updates&lt;br /&gt;
** Journal for small frequent updates&lt;br /&gt;
** Hierarchical checkpoint‐restart&lt;br /&gt;
** OS‐level save and restore&lt;br /&gt;
** Distributed recovery&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resilience: Research Questions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. How to define consistent (i.e. allowable) states in the PGAS model?&lt;br /&gt;
* Theory well understood for fail‐stop message‐passing, but not PGAS.&lt;br /&gt;
&lt;br /&gt;
2. How do we discover consistent states once we&#039;ve defined them?&lt;br /&gt;
* Containment domains offer a new approach, beyond conventional sync-and‐stop algorithms.&lt;br /&gt;
&lt;br /&gt;
3. How do we reconstruct consistent states after a failure?&lt;br /&gt;
* Explore low overhead techniques that minimize effort required by applications programmers.&lt;br /&gt;
* Leverage BLCR, GASnet, Berkeley UPC for development, and use Containment Domains as prototype API for requirements discovery&lt;br /&gt;
[[File:DEGAS-Resilience-Research-Area.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Energy and Performance Feedback ===&lt;br /&gt;
[[File:DEGAS-Nvidia-graph.png|right|300px]]&lt;br /&gt;
* &#039;&#039;&#039;Goal:&#039;&#039;&#039; Monitoring and feedback of performance and energy for online and offline optimization&lt;br /&gt;
** Collect and distill: performance/energy/timing data&lt;br /&gt;
** Identify and report bottlenecks: through summarization/visualization&lt;br /&gt;
** Provide mechanisms: for autonomous runtime adaptation&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Novelty:&#039;&#039;&#039; Automated runtime introspection&lt;br /&gt;
** Provide monitoring: power/network utilization&lt;br /&gt;
** Machine Learning: identify common characteristics&lt;br /&gt;
** Resource management: including dark silicon&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Leverage:&#039;&#039;&#039; Performance/energy counters&lt;br /&gt;
** Integrated Performance Monitoring (IPM)&lt;br /&gt;
** Roofline formalism&lt;br /&gt;
** Performance/energy counters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
[[File:DEGAS-Software-Stack.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DEGAS Pieces of the Puzzle ==&lt;br /&gt;
[[File:DEGAS-Puzzle.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [http://crd.lbl.gov/assets/Uploads/FTG/Projects/DEGAS/DEGAS-products-April2016.pdf Products] from DEGAS research (as of 04/2016) ==&lt;br /&gt;
&lt;br /&gt;
== [http://crd.lbl.gov/departments/computer-science/CLaSS/research/DEGAS/degas-software-releases Software Releases] ==&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=D-%C2%ADTEC&amp;diff=5395</id>
		<title>D-­TEC</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=D-%C2%ADTEC&amp;diff=5395"/>
		<updated>2023-07-10T04:49:37Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = D-TEC&lt;br /&gt;
| image = [[File:DTEC-Logos.png|350px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [https://www.llnl.gov/ LLNL], [http://www.mit.edu/ MIT], [http://www.rice.edu/ Rice U.], [http://www.ibm.com/ IBM], [http://www.osu.edu/ OSU], [http://www.berkeley.edu/ UC Berkeley], [https://www.uoregon.edu/ U. of Oregon], [http://www.lbl.gov/ LBNL], [http://www.ucsd.edu/ UC San Diego]&lt;br /&gt;
| pi = [[Dan Quinlan]]&lt;br /&gt;
| co-pi = ???&lt;br /&gt;
| website = http://dtec-xstack.org/&lt;br /&gt;
| download = http://dtec-xstack.org/?page_id=4&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSL Technology for Exascale Computing&#039;&#039;&#039; or &#039;&#039;&#039;D-TEC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Domain Specific Languages (DSLs)&#039;&#039;&#039; are a tranformational technology that capture expert knowledge about applica@on domains. For the domain scientist, the DSL provides a view of the high‐level programming model. The DSL compiler captures expert knowledge about  how to map high‐level abstractions to different architectures. The DSL compiler’s analysis and transformations are complemented by the general compiler analysis and transformations shared by general purpose languages.&lt;br /&gt;
&lt;br /&gt;
* There are different types of DSLs:&lt;br /&gt;
** Embedded DSLs: Have custom compiler support for high level abstractions defined in a host language (abstractions defined via a library, for example)&lt;br /&gt;
** General DSLs (syntax extended): Have their own syntax and grammar; can be full languages, but defined to address a narrowly defined domain&lt;br /&gt;
&lt;br /&gt;
* DSL design is a responsibility shared between application domain and algorithm scientists&lt;br /&gt;
&lt;br /&gt;
* Extraction of abstractions requires significant application and algorithm expertise&lt;br /&gt;
&lt;br /&gt;
* We have an application team to:&lt;br /&gt;
** provide expertise that will ground our DSL research&lt;br /&gt;
** ensure its relevance to DOE and enable impact by the end of three years&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [https://www.llnl.gov/ Lawrence Livermore National Laboratory (LLNL)]: Daniel J. Quinlan (Lead PI)&lt;br /&gt;
* [http://www.mit.edu/ Massachusetts Institute of Technology (MIT)]: Saman Amarasinghe, Armando Solar‐Lezama, Adam Chlipala, Srinivas Devadas, Una‐May O’Reilly, Nir Shavit, Youssef Marzouk&lt;br /&gt;
* [http://www.rice.edu/ Rice University]: John Mellor‐Crummey, Vivek Sarkar&lt;br /&gt;
* [http://www.ibm.com/ IBM]: Vijay Saraswat, David Grove&lt;br /&gt;
* [http://www.osu.edu/ Ohio State University (OSU)]: P. Sadayappan, Atanas Rountev&lt;br /&gt;
* [http://www.berkeley.edu/ University of California, Berkeley]: Ras Bodik&lt;br /&gt;
* [https://www.uoregon.edu/ University of Oregon]: Craig Rasmussen&lt;br /&gt;
* [http://www.lbl.gov/ Lawrence Berkeley National Laboratory (LBNL)]: Phil Colella&lt;br /&gt;
* [http://www.ucsd.edu/ University of California, San Diego]: Scott Baden&lt;br /&gt;
&lt;br /&gt;
See [[Media:dtec-contacts.xlsx]] for team member contact information.&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
*[https://xstackwiki.modelado.org/images/9/99/D-TEC_Summary_Highlight.pdf D-TEC Project Impact]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Goals and Objectives ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D‐TEC Goal: Making DSLs Effective for Exascale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* We address all parts of the Exascale Stack:&lt;br /&gt;
** &#039;&#039;&#039;Languages (DSLs):&#039;&#039;&#039; define and build several DSLs economically&lt;br /&gt;
** &#039;&#039;&#039;Compilers:&#039;&#039;&#039; define and demonstrate the analysis and optimizations required to build DSLs&lt;br /&gt;
** &#039;&#039;&#039;Parameterized Abstract Machine:&#039;&#039;&#039; define how the hardware is evaluated to provide inputs to the compiler and runtime&lt;br /&gt;
** &#039;&#039;&#039;Runtime System:&#039;&#039;&#039; define a runtime system and resource management support for DSLs&lt;br /&gt;
** &#039;&#039;&#039;Tools:&#039;&#039;&#039; design and use tools to communicate to specific levels of abstraction in the DSLs&lt;br /&gt;
&lt;br /&gt;
* We will provide effective performance by addressing exascale challenges:&lt;br /&gt;
** &#039;&#039;&#039;Scalability:&#039;&#039;&#039; deeply integrated with state‐of‐art X10 scaling framework&lt;br /&gt;
** &#039;&#039;&#039;Programmability:&#039;&#039;&#039; build DSLs around high levels of abstraction for specific domains&lt;br /&gt;
** &#039;&#039;&#039;Performance Portability:&#039;&#039;&#039; DSL compilers give greater flexibility to the code generation for diverse architectures&lt;br /&gt;
** &#039;&#039;&#039;Resilience:&#039;&#039;&#039; define compiler and runtime technology to make code resilient&lt;br /&gt;
** &#039;&#039;&#039;Energy Efficiency:&#039;&#039;&#039; machine learning and autotuning will drive energy efficiency&lt;br /&gt;
** &#039;&#039;&#039;Correctness:&#039;&#039;&#039; formal methods technologies required to verify DSL transformations&lt;br /&gt;
** &#039;&#039;&#039;Heterogeneity:&#039;&#039;&#039; demonstrate how to automatically generate lower level multi‐ISA code&lt;br /&gt;
&lt;br /&gt;
* Our approach includes interoperability and a migration strategy:&lt;br /&gt;
** &#039;&#039;&#039;Interoperability with MPI + X:&#039;&#039;&#039; demonstrate embedding of DSLs into MPI + X applications&lt;br /&gt;
** &#039;&#039;&#039;Migration for Existing Code:&#039;&#039;&#039; demonstrate source‐to-source technology to migrate existing code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Poster ===&lt;br /&gt;
&lt;br /&gt;
[[File:D-TEC_poster_X-Stack_kickoff_v3.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
=== Quad Chart ===&lt;br /&gt;
&lt;br /&gt;
Download [[Media:DTEC-Quad Chart_and_Highlight_v6.pdf]].&lt;br /&gt;
&lt;br /&gt;
=== Two Pager ===&lt;br /&gt;
&lt;br /&gt;
Download [[Media:D-TEC_2013_TwoPager_v1.pdf]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The D‐TEC approach addresses the full Exascale workflow ==&lt;br /&gt;
[[File:DTEC-workflow.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* Discovery of domain specific abstractions from proxy‐apps by application and algorithm experts&lt;br /&gt;
&lt;br /&gt;
* (C1 &amp;amp; C2) Defining Domain Specific Languages (DSLs)&lt;br /&gt;
** The role of the DSL is to encapsulate expert knowledge&lt;br /&gt;
*** About the problem domain&lt;br /&gt;
*** The DSL compiler encapsulates how to optimize code for that domain on new architectures&lt;br /&gt;
** Rosebud used to define DSLs &#039;&#039;(a novel framework for joint optimization of mixed DSLs)&#039;&#039;&lt;br /&gt;
*** DSL specification is used to generate a &amp;quot;DSL plug‐in” for Rosebud&#039;s DSL compiler&lt;br /&gt;
*** Supports both embedded and general DSLs and multiple DSLs in one host‐language source file&lt;br /&gt;
*** DSL optimization is done via cost‐based search over the space of possible rewritings&lt;br /&gt;
*** Costs are domain‐specific, based on shared abstract machine model + ROSE analysis results&lt;br /&gt;
*** Cross‐DSL optimization occurs naturally via search of combined rewriting space&lt;br /&gt;
** Sketching used to define DSLs &#039;&#039;(cutting‐edge aspect of our proposal)&#039;&#039;&lt;br /&gt;
*** Series of manual refinements steps (code rewrites) define the transformations&lt;br /&gt;
*** Equivalence checking between steps to verify correctness&lt;br /&gt;
*** The series of transformations define the DSL compiler using ROSE&lt;br /&gt;
*** Machine learning is used to drive optimizations&lt;br /&gt;
** Both approaches will leverage the common ROSE infrastructure&lt;br /&gt;
** Both approaches will leverage the SEEC enhanced X10 runtime system&lt;br /&gt;
&lt;br /&gt;
* (C3) DSL Compiler&lt;br /&gt;
** Leverages ROSE compiler throughout&lt;br /&gt;
&lt;br /&gt;
* (C4) Parameterized Abstract Machine&lt;br /&gt;
** Extraction of machine characteristics&lt;br /&gt;
&lt;br /&gt;
* (C5) Runtime System&lt;br /&gt;
** Leverages X10 and extends it with SEEC support&lt;br /&gt;
&lt;br /&gt;
* (C6) Tools&lt;br /&gt;
** We will define source-­to‐source migration tools&lt;br /&gt;
** We will define the mappings between DSL layers to support future tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
&lt;br /&gt;
=== Rosebud ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rosebud Overview&#039;&#039;&#039;&lt;br /&gt;
* Unified framework for DSL implementation&lt;br /&gt;
** all aspects: parsing, analysis, optimization, code generation&lt;br /&gt;
** all types: embedded, custom‐syntax, standalone&lt;br /&gt;
&lt;br /&gt;
* Modular development and use of DSLs&lt;br /&gt;
** textual DSL description =&amp;gt; plug­‐in to ROSE DSL Compiler&lt;br /&gt;
** plug‐ins developed separately from ROSE and each other&lt;br /&gt;
&lt;br /&gt;
* Knowledge‐based optimization of DSL programs&lt;br /&gt;
** plug‐in encapsulates expert optimization knowledge&lt;br /&gt;
** ROSE supplies conventional compiler optimizations&lt;br /&gt;
&lt;br /&gt;
* Flexible code generation&lt;br /&gt;
** DSL lowered to any ROSE host language&lt;br /&gt;
** DSL compiled directly to (portable) machine code via LLVM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rosebud Implementation&#039;&#039;&#039;&lt;br /&gt;
* DSL front end&lt;br /&gt;
** SGLR parser + predefined host‐language grammars&lt;br /&gt;
** attribute grammar + ROSE extensible AST and analysis&lt;br /&gt;
&lt;br /&gt;
* DSL optimizer&lt;br /&gt;
** declarative rewriting system + procedural hooks to ROSE&lt;br /&gt;
** cost‐based heuristic search of implementation space&lt;br /&gt;
** domain‐specific costs based on abstract machine model&lt;br /&gt;
** cross‐DSL optimization arises naturally from joint search space&lt;br /&gt;
&lt;br /&gt;
* DSL code generator&lt;br /&gt;
** ROSE host language unparsers&lt;br /&gt;
** ROSE AST =&amp;gt; LLVM SSA code&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rosebud Plug-ins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Rosebud-Plug-ins.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* Plug‐ins developed separately from ROSE and each other&lt;br /&gt;
* Plug‐ins distributed in source or object form&lt;br /&gt;
* Selected plug‐ins supplied to Rosebud DSL Compiler to compile mixed DSLs in a host language source file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rosebud DSL Compiler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Rosebud-DSL-Compiler.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Rosebud-Parsing.png|right]]&lt;br /&gt;
&#039;&#039;&#039;Two­‐phase parsing for DSL language support&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Host language + multiple DSLs in the same source file&lt;br /&gt;
** expressive custom notations&lt;br /&gt;
** familiar general-purpose language&lt;br /&gt;
&lt;br /&gt;
* Phase 1: extract and parse DSLs&lt;br /&gt;
** via Stratego SDF parsing system&lt;br /&gt;
&lt;br /&gt;
* Phase 2: parse host language&lt;br /&gt;
** via existing ROSE front ends&lt;br /&gt;
&lt;br /&gt;
* Merge DSL tree fragments into host language AST&lt;br /&gt;
** DSL plug-ins provide custom tree nodes and semantic analysis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LOPe Programming Model ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LOPe programming model is easily expressed in Fortran because of syntax for arrays&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Halo attribute added to arrays&lt;br /&gt;
** HALO(1:*:1, 1:*:1)&lt;br /&gt;
** specifies one border cell on each side of a two‐dimensional array&lt;br /&gt;
** * implies &amp;quot;stuff&amp;quot; in the middle&lt;br /&gt;
[[File:DTEC-Halo-1.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Halo-2.png|right]]&lt;br /&gt;
* Halos are logical cells not necessarily physically part of the array&lt;br /&gt;
&lt;br /&gt;
* Halos can be communicated with coarrays&lt;br /&gt;
** DIMENSION(:,:)[:,:]&lt;br /&gt;
** halo region in pink&lt;br /&gt;
** logically extends to neighbor processors&lt;br /&gt;
** exchange_halo(Array)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LOPe programming model is easily expressed in Fortran because of syntax for concurrency&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Concurrent attribute added to procedures&lt;br /&gt;
** restricted semantics for array element access to avoid race conditions&lt;br /&gt;
** copy halo in, write single element out (visible after all threads exit)&lt;br /&gt;
[[File:DTEC-Code-1.png]]&lt;br /&gt;
&lt;br /&gt;
* Called from within a &#039;&#039;&#039;DO CONCURRENT&#039;&#039;&#039; loop&lt;br /&gt;
[[File:DTEC-Code-2.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transformation (via ROSE) of a LOPe program to OpenCL allows execution on a GPU&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Transformation.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiler Research is essential for DSLs (C3)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The DSL compiler captures expert knowledge about how to optimize high‐level abstractions to different architectures and is complemented by general compiler analysis and transformations such as that shared by general purpose language compilers. Architecture specific features are reasoned about through machine learning and/or the use of a parameterized abstract machine model that can be tailored to different machines.&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-C3.png|right]]&lt;br /&gt;
&lt;br /&gt;
* We will leverage existing technologies:&lt;br /&gt;
** Source‐to‐source technology in ROSE (LLNL and Rice)&lt;br /&gt;
** X10 front‐end for connection to ROSE (IBM) &lt;br /&gt;
** LLVM as low level IR in ROSE (LLNL and Rice)&lt;br /&gt;
** Polyhedral analysis to support optimizations (OSU)&lt;br /&gt;
** Machine learning to drive optimizations (MIT)&lt;br /&gt;
** Correctness checking (MIT and UCB)&lt;br /&gt;
&lt;br /&gt;
*We will develop new technologies:&lt;br /&gt;
** Rosebud DSL specification &lt;br /&gt;
** DSL specific analysis and optimizations&lt;br /&gt;
** Automated DSL compiler generation&lt;br /&gt;
** X10 support in ROSE&lt;br /&gt;
** Define mappings between DSL layers to compiler analysis&lt;br /&gt;
** Refinement using equivalence checking&lt;br /&gt;
** Verification for transformations&lt;br /&gt;
&lt;br /&gt;
* We will advance the state‐of‐the‐art:&lt;br /&gt;
** Formal methods use for HPC&lt;br /&gt;
** Generation of DSLs for productivity and performance portability&lt;br /&gt;
** Extending/Using polyhedral analysis to drive code generation for heterogeneous architectures&lt;br /&gt;
&lt;br /&gt;
* Exascale challenges:&lt;br /&gt;
** Scalability: code generation for X10/SEEC and Scalable Data Structures, program synthesis&lt;br /&gt;
** Programmability: two approaches to DSL construction, automated equivalence checking&lt;br /&gt;
** Performance Portability: Using parameterized abstract machines, machine learning, auto‐tuning of refinement search spaces&lt;br /&gt;
** Resilience: Compiler‐based software TMR&lt;br /&gt;
** Energy Efficiency: using machine learning&lt;br /&gt;
&lt;br /&gt;
* Interoperability and Migration Plans:&lt;br /&gt;
** Interoperability: A single compiler IR supports reusing analysis and transformations&lt;br /&gt;
** Migration Plan: Using source‐to‐source technology permits leveraging the vendor’s compiler&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Experimental Results (Habanero Hierarchical Place Tree)&#039;&#039;&#039;&lt;br /&gt;
* Actual hardware: four quad-core Xeon sockets; each socket contains two core-pairs; each core shares an L2 cache&lt;br /&gt;
* Possible abstract machine models:&lt;br /&gt;
** Use Habanero Hierarchal Place Tree (HPT) abstraction for these results&lt;br /&gt;
** Experiment with three HPT abstractions of same hardware:&lt;br /&gt;
*** 1x16 --- one root place with 16 leaf places &amp;lt;This model focuses on L1 Cache locality&amp;gt;&lt;br /&gt;
*** 8x2 --- 8 non-leaf places, each of which has 2 leaf places &amp;lt;This model focuses on the L2 cache shared by a core-pair&amp;gt;&lt;br /&gt;
*** 16x1 --- like 1x16, except that it ignores the root place&lt;br /&gt;
* Preliminary execution times for SOR2D (size C) on above hardware underscore the importance of selecting the right abstraction for a given application-platform combination&lt;br /&gt;
** 1x16 --- 1.14 seconds&lt;br /&gt;
** 8x2 --- 0.61 seconds&lt;br /&gt;
** 16x1 --- 1.90 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X10 ===&lt;br /&gt;
&#039;&#039;&#039;Current X10 Runtime Software Stack&#039;&#039;&#039;&lt;br /&gt;
[[File:DTEC-X10-1.png|right|300px]]&lt;br /&gt;
* Core Class Libraries&lt;br /&gt;
** Fundamental classes &amp;amp; primitives, Arrays, core I/O, collections, etc&lt;br /&gt;
** Written in X10; compiled to C++ or Java&lt;br /&gt;
&lt;br /&gt;
* XRX (X10 Runtime in X10)&lt;br /&gt;
** APGAS functionality&lt;br /&gt;
*** Concurrency: async/finish&lt;br /&gt;
*** Distribution: Places/at&lt;br /&gt;
** Written in X10; compiled to C++ or Java&lt;br /&gt;
&lt;br /&gt;
* X10 Language Native Runtime&lt;br /&gt;
** Runtime support for core sequential X10 language features&lt;br /&gt;
** Two versions: C++ and Java&lt;br /&gt;
&lt;br /&gt;
* X10RT&lt;br /&gt;
** Active messages, collectives, bulk data transfer&lt;br /&gt;
** Implemented in C&lt;br /&gt;
** Abstracts/unifies network layers (PAMI, DCMF, MPI, etc) to enable X10 on a range of transports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Leveraging X10 Runtime for Native Applications&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-X10-2.png|right|300px]]&lt;br /&gt;
&#039;&#039;Native APGAS API&#039;&#039;&lt;br /&gt;
* Provides C++/C APIs to APGAS functionality of X10 Runtime&lt;br /&gt;
** Concurrency: async/finish&lt;br /&gt;
** Distribution: Places/at&lt;br /&gt;
&lt;br /&gt;
* Additionally exposes subset of X10RT APIs for use by native applications&lt;br /&gt;
** Collective operations&lt;br /&gt;
** One‐sided active messages&lt;br /&gt;
&lt;br /&gt;
* Allows non‐X10 applications to leverage X10 runtime facilities via a library interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scalability of X10 Runtime&#039;&#039;&#039;&lt;br /&gt;
* Scalability&lt;br /&gt;
** X10 programs have achieved good scaling at &amp;gt; 32k cores on P7IH (PERCS) and up to 8k cores on BlueGene/P&lt;br /&gt;
&lt;br /&gt;
* Support for Intra‐node scalability&lt;br /&gt;
** async/finish enable high‐level programming of fine‐grained concurrency&lt;br /&gt;
** Advanced features (clocks, collecting finish) support determinate programming of common concurrency idioms&lt;br /&gt;
** Workstealing implementation: both Fork/Join &amp;amp; Cilk‐style&lt;br /&gt;
** APGAS programing model extended to GPUs&lt;br /&gt;
*** X10 kernels can be compiled to CUDA&lt;br /&gt;
*** compiler-­‐mediated data/control transfer between CPU/GPU&lt;br /&gt;
&lt;br /&gt;
* Support for Inter‐node scalability&lt;br /&gt;
** Places/at; collectives; one‐sided active messages; asynchronous bulk data transfer APIs&lt;br /&gt;
** Utilizes available transports (PAMI, DCMF, MPI)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SEEC Runtime ===&lt;br /&gt;
* Understands high‐level goals&lt;br /&gt;
** E.g., performance, accuracy, power&lt;br /&gt;
&lt;br /&gt;
* Makes observations&lt;br /&gt;
** Is app on current machine meeting goals?&lt;br /&gt;
&lt;br /&gt;
* Understands actions&lt;br /&gt;
** Provided by opt. management, machine, uncertainty quantifica@on&lt;br /&gt;
&lt;br /&gt;
* Makes decisions about how to take action given goals and current observations&lt;br /&gt;
** Uses control theory, machine learning, and possibly game theory&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-SEEC.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Polyhedral Compiler Transformations ===&lt;br /&gt;
[[File:DTEC-Polyhedral.png|right|300px]]&lt;br /&gt;
&lt;br /&gt;
* Advantages over standard AST‐based compiler frameworks&lt;br /&gt;
** Seamless support of imperfectly nested loops&lt;br /&gt;
** Handle symbolic loop bounds&lt;br /&gt;
** Powerful uniform model for composition of transformations&lt;br /&gt;
** Model‐driven optimization using the power of integer linear programming&lt;br /&gt;
&lt;br /&gt;
* Work planned on D‐TEC project&lt;br /&gt;
** Leverage/integrate DSL properties in the optimization process&lt;br /&gt;
** Expose API for analysis and semantics‐preserving transformations of programs&lt;br /&gt;
** Multi‐target code generation using domain semantics and architecture characteristics&lt;br /&gt;
** Communication optimization using high‐level semantic information&lt;br /&gt;
** Address challenges in applying polyhedral transformations to complex DOE application codes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multi‐target Domain‐specialized Code Generation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Code-Generation.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MIT Sketch ===&lt;br /&gt;
&#039;&#039;&#039;MIT Sketch: how does it work&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Synthesis engine works by elimination&lt;br /&gt;
** Partial implementation defines space of possible solutions&lt;br /&gt;
** Classes of incorrect solutions are eliminated by analyzing why particular incorrect solutions failed&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-MIT-Sketch-1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sketching Enhanced Refinement: Low‐Level&#039;&#039;&#039;&lt;br /&gt;
* Synthesis simplifies manual refinement&lt;br /&gt;
** Sophisticated implementation is simple if we can elide low‐level details&lt;br /&gt;
** Automated equivalence checking helps avoid bugs in the refinement process&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-MIT-Sketch-2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sketching Enhanced Refinement: High‐Level&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-MIT-Sketch-3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The role of constraints on types ==&lt;br /&gt;
* Constraints can appear on classes or functions&lt;br /&gt;
* Constraints allow locality of reasoning and simplify synthesis&lt;br /&gt;
* Examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Multiplication.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DTEC-Fault-Tolerance.png|right|300px]]&lt;br /&gt;
== Fault Tolerance ==&lt;br /&gt;
&lt;br /&gt;
* User defines bound on expected error&lt;br /&gt;
* UQ to determine how fault contribute to total error&lt;br /&gt;
* Represent total error a function of errors caused by transient faults (in individual tasks)&lt;br /&gt;
* Total error is a function of errors introduced in each faulty task&lt;br /&gt;
* Errors due to faults modeled as random noise&lt;br /&gt;
* Each random quantity &#039;&#039;_ε_i_&#039;&#039; captures transient fault influence on tasks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tools for Legacy Code Modernization ==&lt;br /&gt;
* Incrementally add DSL constructs to legacy codes&lt;br /&gt;
** Replace performance‐critical sections by DSLs&lt;br /&gt;
** Our “mixed‐DSLs + host language” architecture supports this&lt;br /&gt;
&lt;br /&gt;
* Manual addition of DSL constructs is low risk&lt;br /&gt;
&lt;br /&gt;
* Semi‐automatic addition of DSL constructs is promising&lt;br /&gt;
** Recognize opportunities for DSL constructs using same pattern‐matching as in rewriting system&lt;br /&gt;
** Human could direct, assist, verify, or veto&lt;br /&gt;
&lt;br /&gt;
* Fully automatic rewriting of fragments to DSL constructs may be possible&lt;br /&gt;
&lt;br /&gt;
* Benefits&lt;br /&gt;
** Higher performance using aggressive DSL optimization&lt;br /&gt;
** Performance portability without a complete rewrite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tools for Understanding DSL Performance ==&lt;br /&gt;
[[File:DTEC-DSL-Performance.png|right|300px]]&lt;br /&gt;
* Challenges&lt;br /&gt;
** Huge semantic gap between embedded DSL and generated code&lt;br /&gt;
** Code generation for DSLs is opaque, debugging is hard, and fine‐grain performance attribution is unavailable&lt;br /&gt;
&lt;br /&gt;
* Goal: Bridge semantic gap for debugging and performance tuning&lt;br /&gt;
&lt;br /&gt;
* Approach&lt;br /&gt;
** Record information during program compilation&lt;br /&gt;
*** two‐way mappings between every token in source and generated code&lt;br /&gt;
*** transformation options, domain knowledge, cost models, and choices&lt;br /&gt;
** Monitor and attribute execution characteristics with instrumentation and sampling&lt;br /&gt;
*** e.g., parallelism, resource consumption, contention, failure, scalability&lt;br /&gt;
** Map performance back to source, transformations, and domain knowledge&lt;br /&gt;
** Compensate for approximate cost models with empirical autotuning&lt;br /&gt;
&lt;br /&gt;
* Technologies to be developed&lt;br /&gt;
** Strategies for maintaining mappings without overly burdening DSL implementers&lt;br /&gt;
** Strategies for tracking transformations, knowledge, and costs through compilation&lt;br /&gt;
** Techniques for exploring and explaining the roles of transformations and knowledge&lt;br /&gt;
** Algorithms for refining cost estimates with observed costs to support autotuning&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Migrating Existing Codes ==&lt;br /&gt;
&#039;&#039;&#039; Benefits of custom, source to source translation&#039;&#039;&#039;&lt;br /&gt;
* Automatically restructure conventional code using a custom source‐to‐source translator ...&lt;br /&gt;
* ... that captures semantic knowledge of the application domain ...  thereby improving performance&lt;br /&gt;
* Embedded Domain Specific Languages&lt;br /&gt;
** Automatically tolerate communication delays&lt;br /&gt;
** Squeeze out library overheads&lt;br /&gt;
* Library primitives → primitive language objects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Management Plan and Collaboration Paths with Advisory Board and Outside Community ==&lt;br /&gt;
[[File:DTEC-Plan.png|600px]]&lt;br /&gt;
==D-­TEC Products and Publications==&lt;br /&gt;
Product List&lt;br /&gt;
# D-TEC compiler and verification research work, X10-ROSE support, Embedded DSL compilers, and ROSE connection to OpenTuner: http://www.rosecompiler.org/  &lt;br /&gt;
# The Open Fortran Project’s (OFP) parser:  https://github.com/OpenFortranProject/ofp-sdf . &lt;br /&gt;
# Rosebud: https://svn.rice.edu/r/rosebud . &lt;br /&gt;
# Halide:  http://halide-lang.org &lt;br /&gt;
# OpenTuner:  http://opentuner.org/&lt;br /&gt;
# The X10 toolchain, X10/APGAS runtime system, and the X10 proxy applications: http://x10-lang.org/&lt;br /&gt;
# Bamboo: http://cseweb.ucsd.edu/groups/hpcl/scg/BambooWebsite/&lt;br /&gt;
# PolyOpt is a ROSE plug-in distributed with ROSE and also available at: http://hpcrl.cse.ohio-state.edu/wiki/index.php/Polyhedral_Compilation &lt;br /&gt;
# Simit: http://groups.csail.mit.edu/commit/ . &lt;br /&gt;
# Sketch: http://people.csail.mit.edu/asolar/. &lt;br /&gt;
# Cloverleaf auto-converted using synthesis: http://people.csail.mit.edu/asolar/. &lt;br /&gt;
# Lulesh built using synthesis:  http://people.csail.mit.edu/asolar/. &lt;br /&gt;
# MSL, the distributed synthesis language: at http://people.csail.mit.edu/asolar/. &lt;br /&gt;
# Rely: at http://people.csail.mit.edu/mcarbin/. &lt;br /&gt;
# Rosette, a Racket-based language for hosting solver-aided DSLs: http://homes.cs.washington.edu/~emina/rosette/.&lt;br /&gt;
# Chlorophyll: synthesis-aided DSL and compiler for spatial parallel architectures: http://pl.eecs.berkeley.edu/projects/chlorophyll/.&lt;br /&gt;
&lt;br /&gt;
Publication List&lt;br /&gt;
# Markus Schordan, Pei-Hung Lin, Dan Quinlan, and Louis-Nol Pouchet. Verification of polyhedral optimizations with constant loop bounds infinite state space computations. In Tiziana Margaria and Bernhard Steffen, editors, Leveraging Applications of Formal Methods, Verification and Validation. Specialized Techniques and Applications, volume 8803 of Lecture Notes in Computer Science, pages 493{508. Springer Berlin Heidelberg, 2014.&lt;br /&gt;
# Chunhua Liao, Daniel J. Quinlan, Thomas Panas, and Bronis R. de Supinski. A rose-based openmp 3.0 research compiler supporting multiple runtime libraries. In Mitsuhisa Sato, ToshihiroHanawa, Matthias S. Muller, Barbara M. Chapman, and Bronis R. de Supinski, editors, IWOMP, volume 6132 of Lecture Notes in Computer Science, pages 15{28. Springer, 2010.&lt;br /&gt;
# Chunhua Liao, Yonghong Yan, Bronis R de Supinski, Daniel J Quinlan, and Barbara Chapman. Early experiences with the openmp accelerator model. In OpenMP in the Era of Low Power Devices and Accelerators, pages 84{98. Springer, 2013.&lt;br /&gt;
#  Dan Quinlan and Chunhua Liao. The ROSE source-to-source compiler infrastructure. In Cetus Users and Compiler Infrastructure Workshop, Galveston Island, TX, USA, October 2011.&lt;br /&gt;
# Yonghong Yan, Pei-Hung Lin, Chunhua Liao, Bronis R. de Supinski, and Daniel J. Quinlan. Supporting multiple accelerators in high-level programming models. In Proceedings of the Sixth International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM &#039;15, pages 170{180, New York, NY, USA, 2015. ACM. &lt;br /&gt;
# Pei-Hung Lin, Chunhua Liao, Daniel J. Quinlan, and Stephen Guzik. Experiences of using the openmp accelerator model to port doe stencil applications, 2014. Poster presented at the Workshop on accelerator programming using directives, Nov. 17, 2014, New Orleans, LA.&lt;br /&gt;
# Markus Schordan, Pei-Hung Lin, Dan Quinlan, and Louis-Nol Pouchet. Verification of parallel polyhedral transformations with arbitrary constant loop bounds, 2015. In review process of EuroPar2015.&lt;br /&gt;
# Jonathan Ragan-Kelley. Decoupling Algorithms from the Organization of Computation for High Performance Image Processing. Ph.d. thesis, Massachusetts Institute of Technology, Cambridge,MA, June 2014.&lt;br /&gt;
# Jason Ansel. Autotuning Programs with Algorithmic Choice. Ph.d. thesis, Massachusetts Institute of Technology, Cambridge, MA, February 2014.&lt;br /&gt;
# Jeffrey Bosboom. Streamjit: A commensal compiler for high-performance stream programming. S.m. thesis, Massachusetts Institute of Technology, Cambridge, MA, June 2014.&lt;br /&gt;
# Eric Wong. Optimizations in stream programming for multimedia applications. M.eng. thesis, Massachusetts Institute of Technology, Cambridge, MA, Aug 2012.&lt;br /&gt;
# Phumpong Watanaprakornkul. Distributed data as a choice in petabricks. M.eng. thesis, Massachusetts Institute of Technology, Cambridge, MA, Jun 2012.&lt;br /&gt;
# Charith Mendis, Jeffrey Bosboom, Kevin Wu, Shoaib Kamil, Jonathan Ragan-Kelley, Sylvain Paris, Qin Zhao, and Saman Amarasinghe. Helium: Lifting high-performance stencil kernels from stripped x86 binaries to halide dsl code. In ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2015.&lt;br /&gt;
# Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan Ragan-Kelley, Jeffrey Bosboom, Una-May O&#039;Reilly, and Saman Amarasinghe. Opentuner: An extensible framework for program autotuning. In International Conference on Parallel Architectures and Compilation Techniques, Edmonton, Canada, August 2014.&lt;br /&gt;
# Jeffrey Bosboom, Sumanaruban Rajadurai, Weng-Fai Wong, and Saman Amarasinghe. Streamjit: A commensal compiler for high-performance stream programming. In ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, Portland, OR, October 2014.&lt;br /&gt;
# Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Fredo Durand, and Saman Amarasinghe. Halide: A language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In ACM SIGPLAN Conference on Programming Language Design and Implementation, Seattle, WA, June 2013.&lt;br /&gt;
# Phitchaya Mangpo Phothilimthana, Jason Ansel, Jonathan Ragan-Kelley, and Saman Amarasinghe. Portable performance on heterogeneous architectures. In The International Conference on Architectural Support for Programming Languages and Operating Systems, Houston, TX, March 2013.&lt;br /&gt;
# Maciej Pacula, Jason Ansel, Saman Amarasinghe, and Una-May O&#039;Reilly. Hyperparameter tuning in bandit-based adaptive operator selection. In European Conference on the Applications of Evolutionary Computation, Malaga, Spain, Apr 2012.&lt;br /&gt;
# Jason Ansel, Maciej Pacula, Yee Lok Wong, Cy Chan, Marek Olszewski, Una-May O&#039;Reilly, and Saman Amarasinghe. Siblingrivalry: Online autotuning through local competitions. In International Conference on Compilers Architecture and Synthesis for Embedded Systems, Tampere, Finland, Oct 2012.&lt;br /&gt;
# Jonathan Ragan-Kelley, Andrew Adams, Sylvain Paris, Marc Levoy, Saman Amarasinghe, and Fredo Durand. Decoupling algorithms from schedules for easy optimization of image processing pipelines. ACM Transactions on Graphics, 31(4), July 2012.&lt;br /&gt;
# Dan Alistarh, Patrick Eugster, Maurice Herlihy, Alexander Matveev, and Nir Shavit. Stacktrack: An automated transactional approach to concurrent memory reclamation. In Proceedings of the Ninth European Conference on Computer Systems, EuroSys &#039;14, pages 25:1{25:14, New York, NY, USA, 2014. ACM.&lt;br /&gt;
# Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Una-May O&#039;Reilly, and Saman Amarasinghe. Opentuner: An extensible framework for program autotuning. Technical Report MIT/CSAIL Technical Report MIT-CSAIL-TR-2013-026, Massachusetts Institute of Technology, Cambridge, MA, Nov 2013.&lt;br /&gt;
# Alexander Matveev and Nir Shavit. Reduced hardware norec: A safe and scalable hybrid transactional memory. In 20th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2015, Istanbul, Turkey, 2015. ACM.&lt;br /&gt;
# Sasa Misailovic, Michael Carbin, Sara Achour, Zichao Qi, and Martin C. Rinard. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages &amp;amp;#38; Applications, OOPSLA &#039;14, pages 309{328, New York, NY, USA, 2014. ACM.&lt;br /&gt;
# Zhilei Xu, Shoaib Kamil, and Armando Solar-Lezama. Msl: A synthesis enabled language for distributed implementations. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC &#039;14, pages 311{322, Piscataway, NJ, USA, 2014. IEEE Press.&lt;br /&gt;
# F. Augustin and Y. ~ M. Marzouk. Uncertainty quantification in high performance computing (invited position paper). SIGPLAN Workshop on Probabilistic and Approximate Computing(APPROX), 2014.&lt;br /&gt;
# David Grove, Josh Milthorpe, and Olivier Tardieu. Supporting array programming in X10. In Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, ARRAY&#039;14, pages 38:38{38:43, New York, NY, USA, 2014. ACM.&lt;br /&gt;
# Wei Zhang, Olivier Tardieu, David Grove, Benjamin Herta, Tomio Kamada, Vijay Saraswat, and Mikio Takeuchi. GLB: Lifeline-based global load balancing library in X10. In Proceedings of the First Workshop on Parallel Programming for Analytics Applications, PPAA &#039;14, pages 31{40, New York, NY, USA, 2014. ACM.&lt;br /&gt;
# Olivier Tardieu, David Grove, Benjamin Herta, Tomio Kamada, Vijay Saraswat, Mikio Takeuchi, and Wei Zhang. X10 for Productivity and Performance at Scale: A Submission to the 2013 HPC Class II Challenge, October 2013.&lt;br /&gt;
# Craig Rasmussen, Matthew Sottile, Daniel Nagle, and Soren Rasmussen. Locally-oriented programming: A simple programming model for stencil-based computations on multi-level distributed memory architectures. In Proceedings of Euro-Par 2015 Parallel Processing, Lecture Notes in Computer Science. Springer International Publishing, 2015. Submitted, February 2015.&lt;br /&gt;
# Thomas Steel Henretty. Performance Optimization of Stencil Computations on Modern SIMD Architectures. PhD thesis, The Ohio State University, 2014.&lt;br /&gt;
# Justin Andrew Holewinski. Automatic Code Generation for Stencil Computations on GPU Architectures. PhD thesis, The Ohio State University, 2012.&lt;br /&gt;
# Mahesh Ravishankar. Automatic parallelization of loops with data dependent control flow and array access patterns. PhD thesis, The Ohio State University, 2014.&lt;br /&gt;
# Kevin Alan Stock. Vectorization and Register Reuse in High Performance Computing. PhD thesis, The Ohio State University, 2014.&lt;br /&gt;
# Tom Henretty, Richard Veras, Franz Franchetti, Louis-Noel Pouchet, J. Ramanujam, and P. Sadayappan. A stencil compiler for short-vector simd architectures. In Proceedings of the 27th International ACM Conference on International Conference on Supercomputing, ICS &#039;13, pages 13{24, New York, NY, USA, 2013. ACM.&lt;br /&gt;
# Justin Holewinski, Louis-Noel Pouchet, and P. Sadayappan. High-performance code generation for stencil computations on gpu architectures. In Proceedings of the 26th ACM International Conference on Supercomputing, ICS &#039;12, pages 311{320, New York, NY, USA, 2012. ACM.&lt;br /&gt;
# Louis-Noel Pouchet, Peng Zhang, P. Sadayappan, and Jason Cong. Polyhedral-based data reuse optimization for configurable computing. In Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, FPGA &#039;13, pages 29{38, New York, NY, USA, 2013. ACM.&lt;br /&gt;
# S. Rajbhandari, A. Nikam, Pai-Wei Lai, K. Stock, S. Krishnamoorthy, and P. Sadayappan. Cast: Contraction algorithm for symmetric tensors. In Parallel Processing (ICPP), 2014 43rd International Conference on, pages 261{272, Sept 2014.&lt;br /&gt;
# Samyam Rajbhandari, Akshay Nikam, Pai-Wei Lai, Kevin Stock, Sriram Krishnamoorthy, and P. Sadayappan. A communication-optimal framework for contracting distributed tensors. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC &#039;14, pages 375{386, Piscataway, NJ, USA, 2014. IEEE Press.&lt;br /&gt;
# Mahesh Ravishankar, John Eisenlohr, Louis-Noel Pouchet, J. Ramanujam, Atanas Rountev, and P. Sadayappan. Code generation for parallel execution of a class of irregular loops on distributed memory systems. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, SC &#039;12, pages 72:1{72:11, Los Alamitos, CA, USA, 2012. IEEE Computer Society Press.&lt;br /&gt;
# Mahesh Ravishankar, John Eisenlohr, Louis-Noel Pouchet, J. Ramanujam, Atanas Rountev, and P. Sadayappan. Automatic parallelization of a class of irregular loops for distributed memory systems. ACM Transactions on Parallel Computing, 1(1):7:1{7:37, September 2014.&lt;br /&gt;
# Mahesh Ravishankar, Roshan Dathathri, Venmugil Elango, Louis-Noel Pouchet, J Ramanujam, Atanas Rountev, and P Sadayappan. Distributed memory code generation for mixed irregular/regular computations. In Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 65{75. ACM, 2015.&lt;br /&gt;
# Kevin Stock, Martin Kong, Tobias Grosser, Louis-Noel Pouchet, Fabrice Rastello, J. Ramanujam, and P. Sadayappan. A framework for enhancing data reuse via associative reordering. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI &#039;14, pages 65{76, New York, NY, USA, 2014. ACM.&lt;br /&gt;
# Venmugil Elango, Fabrice Rastello, Louis-Noel Pouchet, J. Ramanujam, and P. Sadayappan. On characterizing the data movement complexity of computational dags for parallel execution. In Proceedings of the 26th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA &#039;14, pages 296{306, New York, NY, USA, 2014. ACM.&lt;br /&gt;
# Naznin Fauzia, Venmugil Elango, Mahesh Ravishankar, J. Ramanujam, Fabrice Rastello, Atanas Rountev, Louis-Noel Pouchet, and P. Sadayappan. Beyond reuse distance analysis: Dynamic analysis for characterization of data locality potential. ACM Trans. Archit. Code Optim., 10(4):53:1{53:29, Dec. 2013.&lt;br /&gt;
# Martin Kong, Richard Veras, Kevin Stock, Franz Franchetti, Louis-Noel Pouchet, and P. Sadayappan. When polyhedral transformations meet simd code generation. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI &#039;13, pages 127{138, New York, NY, USA, 2013. ACM.&lt;br /&gt;
# Lai Wei and John Mellor-Crummey. Autotuning tensor transposition. In Proceedings of the 19th International Workshop on High-level Parallel Programming Models and Supportive Environments, May 2014.&lt;br /&gt;
# Vivek Sarkar. Jun Shirako, Louis-Noel Pouchet. Oil and water can mix: An integration of polyhedral and ast-based transformations. In IEEE Conference on High Performance Computing, Networking, Storage and Analysis (SC&#039;14). IEEE, 2014.&lt;br /&gt;
# Vivek Sarkar. Prasanth Chatarasi, Jun Shirako. Polyhedral transformations of explicitly parallel programs. In 5th International Workshop on Polyhedral Compilation Techniques (IMPACT 2015). IEEE, 2015.&lt;br /&gt;
# Kamal Sharma. Locality Transformations of Computation and Data for Portable Performance. PhD thesis, Rice University, August 2014.&lt;br /&gt;
# Jun Shirako and Vivek Sarkar. Oil and water can mix! Experiences with integrating polyhedral and AST-based Transformations. In 17th Workshop on Compilers for Parallel Programming, July 2013.&lt;br /&gt;
# Jisheng Zhao, Michael Burke, and Vivek Sarkar. Rice ROSE Compositional Analysis and Transformation Framework (R2CAT). Technical report, LLNL Technical Report 590233, October 2012.&lt;br /&gt;
# Phitchaya Mangpo Phothilimthana, Tikhon Jelvis, Rohin Shah, Nishant Totla, Sarah Chasins, and Rastislav Bodik. Chlorophyll: synthesis-aided compiler for low-power spatial architectures. In O&#039;Boyle and Pingali [58], page 42.&lt;br /&gt;
# Emina Torlak and Rastislav Bodik. A lightweight symbolic virtual machine for solver-aided host languages. In O&#039;Boyle and Pingali [58], page 54.&lt;br /&gt;
# Rajeev Alur, Rastislav Bodik, Garvit Juniwal, Milo M. K. Martin, Mukund Raghothaman, Sanjit A. Seshia, Rishabh Singh, Armando Solar-Lezama, Emina Torlak, and Abhishek Udupa. Syntax-guided synthesis. In Formal Methods in Computer-Aided Design, FMCAD 2013, Portland, OR, USA, October 20-23, 2013, pages 1{8. IEEE, 2013.&lt;br /&gt;
# Emina Torlak and Rastislav Bodik. Growing solver-aided languages with rosette. In Antony L. Hosking, Patrick Th. Eugster, and Robert Hirschfeld, editors, ACM Symposium on New Ideas in Programming and Reflections on Software, Onward! 2013, part of SPLASH &#039;13, Indianapolis, IN, USA, October 26-31, 2013, pages 135{152. ACM, 2013.&lt;br /&gt;
# Leo A. Meyerovich, Matthew E. Torok, Eric Atkinson, and Rastislav Bodik. Parallel schedule synthesis for attribute grammars. In Alex Nicolau, Xiaowei Shen, Saman P. Amarasinghe, and Richard W. Vuduc, editors, ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP &#039;13, Shenzhen, China, February 23-27, 2013, pages 187{196. ACM, 2013.&lt;br /&gt;
# Michael F. P. O&#039;Boyle and Keshav Pingali, editors. ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI &#039;14, Edinburgh, United Kingdom - June 09- 11, 2014. ACM, 2014.&lt;br /&gt;
# Tan Nguyen, Pietro Cicotti, Eric Bylaska, Dan Quinlan, and Scott B. Baden. Bamboo: translating mpi applications to a latency-tolerant, data-driven form. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, SC &#039;12, pages 39:1{39:11, Los Alamitos, CA, USA, 2012. IEEE Computer Society Press.&lt;br /&gt;
# Tan Nguyen and Scott B. Baden. Bamboo-preliminary scaling results on multiple hybrid nodes of knights corner and sandy bridge processors. In Proc. WOLFHPC: Workshop on Domain-Specific Languages and High-Level Frameworks for HPC, SC13, The International Conference for High Performance Computing, Networking, Storage and Analysis, Denver CO, 2013.&lt;br /&gt;
&lt;br /&gt;
== DTEC Usage ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Project&lt;br /&gt;
! Technology Readiness&lt;br /&gt;
! TRL Level (1-9)&lt;br /&gt;
! Downloads (Last 14 Days)&lt;br /&gt;
! Visitors,(Last 14 Days)&lt;br /&gt;
! Commits,(Last 12 Months)&lt;br /&gt;
! Contributors (Last 12 Months)&lt;br /&gt;
! OpenHub.net Analysis&lt;br /&gt;
! Institutional Usage&lt;br /&gt;
! University Usage&lt;br /&gt;
! DTEC Deliverables&lt;br /&gt;
! URL&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ROSE&lt;br /&gt;
| Open Source, used by LLNL ASC application teams and both internal and external research to DOE&lt;br /&gt;
| 7&lt;br /&gt;
| 21&lt;br /&gt;
| 434&lt;br /&gt;
| 1808&lt;br /&gt;
| 16&lt;br /&gt;
| 28,464 total commits by 123 developers and 5M lines of code: https://www.openhub.net/p/rose-compiler&lt;br /&gt;
| IBM, Intel, DOE LLNL, DOE LBL, DoD&lt;br /&gt;
| MIT, University of Utah, Texas A&amp;amp;M, Rice, UCSD, Universify Of Oregon, University of Colorado, CalTech, UIUC&lt;br /&gt;
| Source-to-source compiler Framework, including Rosetta IR node support, specific DSL tools, CodeThorn verification tools, and X10 language support&lt;br /&gt;
| http://www.roseCompiler.org&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Halide&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 1251&lt;br /&gt;
| 595&lt;br /&gt;
| 10597&lt;br /&gt;
| 61&lt;br /&gt;
| &lt;br /&gt;
| Google, Adobe, Intel, Qualcomm, Facebook + more&lt;br /&gt;
| Many...&lt;br /&gt;
| &lt;br /&gt;
| http://halide-lang. org/&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| OpenTuner&lt;br /&gt;
| &lt;br /&gt;
| 6&lt;br /&gt;
| 51&lt;br /&gt;
| 59&lt;br /&gt;
| 330&lt;br /&gt;
| 11&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| http://opentuner.org/&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rely Language&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| MSL - Synththesis Language/ Sketch Synthesizer&lt;br /&gt;
| Open source, Released as part of the Sketch language.&lt;br /&gt;
| &lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 210&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| Adobe&lt;br /&gt;
| MIT, UW, Rice, Berkeley&lt;br /&gt;
| Synthesis framework for SPMD kernels&lt;br /&gt;
| http://people.csail.mit.edu/asolar&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| SImit Langauge&lt;br /&gt;
| Language for physical simulations and sparse systems&lt;br /&gt;
| 5&lt;br /&gt;
| 70&lt;br /&gt;
| 1284&lt;br /&gt;
| 2418&lt;br /&gt;
| 11&lt;br /&gt;
| &lt;br /&gt;
| Adobe&lt;br /&gt;
| MIT, Berkely, Stanford, UT Austin, U Toronto, Texas A&amp;amp;M,&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| X10 Runtime&lt;br /&gt;
| Open source language with compiler, runtime and IDE; used by research teams within IBM and international research institutes/universities; demonstrated at petascale in HPC challenge; substantial test suite and libraries and applications (see http://x10-lang.org/x10-community/applications.html)&lt;br /&gt;
| 7&lt;br /&gt;
| 243 (SourceForge)&lt;br /&gt;
| 164 (Github repo)&lt;br /&gt;
| 606&lt;br /&gt;
| 14&lt;br /&gt;
| 27K commits made by 100 contributors and 700K lines of code: https://www.openhub.net/p/x10&lt;br /&gt;
| IBM, RIKEN, INRIA&lt;br /&gt;
| http://x10-lang.org/x10-community/universities-using-x10.html University of Alberta, Australian National University, UCLA, Carnegie Mellon University, Columbia University, TU Dresden, University of Erlangen-Nuremberg, Georgetown University, Imperial College London, IMT Institute for Advanced Studies Lucca, IIT Madras, Karlsruhe Institute of Technology, University of Kassel, Kobe University, McGill University, University of Paris-1 Sorbonne/CRI, Universidad Nacional Autónoma de México, TU Munich, Tianjin University, Tokyo Institute of Technology, University of Tokyo&lt;br /&gt;
| APGAS libraries for C++, Java and Scala; X10 compiler support for user-defined control constructs, and improvements to X10DT IDE, X10RT transport layer over MPI User-Level Fault Mitigation (ULFM), X10RT transport layer over MPI-3; proxy applications LULESH, MCCK, CoMD&lt;br /&gt;
| http://x10-lang.org/&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Rosebud&lt;br /&gt;
| Incomplete research prototype&lt;br /&gt;
| 3&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 200&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| http://svn.rice.edu/r/rosebud.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| PolyOpt&lt;br /&gt;
| Open source&lt;br /&gt;
| 4&lt;br /&gt;
| 5&lt;br /&gt;
| 27&lt;br /&gt;
| 103&lt;br /&gt;
| 3&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| OSU, INRIA, UCLA, UIUC, CSU,...&lt;br /&gt;
| Polyhedral optimizer for ROSE, inc. high-order stencil optimizations for CPUs.&lt;br /&gt;
| http://hpcrl.cse.ohio-state.edu/wiki/index.php/Polyhedral_Compilation&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Verification Tools (CodeThorn)&lt;br /&gt;
| Released within ROSE distribution, currently used for multiple international verification compititions, winning 3rd, 2nd, 1st, and 1st, over the last four years.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| http://www.roseCompiler.org&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Bamboo&lt;br /&gt;
| Open source translator and run time for convertingMPI source to data driven formulation that hides communication&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NYU&lt;br /&gt;
| Bamboo Translator for C++&lt;br /&gt;
| http://cseweb.ucsd.edu/groups/hpcl/scg/BambooWebsite&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Open Fortran Project&lt;br /&gt;
| Open source Fortran compiler front end. Used by: 1. ROSE (Fortran parser); 2. Open MPI (tool generation); 3. TAU Performance Tools (Fortran parser); 4. OpenCoarrays (coarray to library-call transformations); 5. University of Oregon (MATLAB MEX file generator); 6. EDX (Fortran to C# conversions).&lt;br /&gt;
| 7&lt;br /&gt;
| 1&lt;br /&gt;
| 18&lt;br /&gt;
| 318&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://github.com/OpenFortranProject/ofp-sdf&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| http://people.csail.mit.edu/asolar&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| http://homes.cs.washington.edu/~emina/rosetta&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| DTEC Web Site:&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| http://portal.nersc.gov/ project/rosecompiler/dtec/wordpress/&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Formal Verification&lt;br /&gt;
| Coq proofs of stencil algorithms and programs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| AMRStencil&lt;br /&gt;
| C++11 Embedded Domain Specific Language for Stencil-based Adaptive Mesh Refinement algorithms.&lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| 8&lt;br /&gt;
| 20&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| LBNL, LLNL&lt;br /&gt;
| &lt;br /&gt;
| AMRStencil API. Reference Manual. Multigrid Example. Euler&#039;s Equation example.&lt;br /&gt;
| svn repo https://anag-repo.lbl.gov/svn/AMRStencil&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=DynAX&amp;diff=5394</id>
		<title>DynAX</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=DynAX&amp;diff=5394"/>
		<updated>2023-07-10T04:48:33Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = DynAX&lt;br /&gt;
| image = [[File:BrandywineTeam-logo.png|180px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| website = [http://www.etinternational.com/xstack/ www.etinternational.com/xstack]&lt;br /&gt;
| team-members = [http://www.etinternational.com/ ETI], [https://www.reservoir.com/ Reservoir Labs], [http://cs.illinois.edu/ UIUC], [http://www.pnnl.gov/ PNNL]&lt;br /&gt;
| pi = [[Guang Gao]]&lt;br /&gt;
| co-pi = Benoit Meister (Reservoir Labs), &lt;br /&gt;
David Padua (UIUC), &lt;br /&gt;
John Feo (PNNL)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamically Adaptive X-Stack&#039;&#039;&#039; or &#039;&#039;&#039;DynAX&#039;&#039;&#039; is a team led by ET International to conduct a research on runtime software for exascale computing. &lt;br /&gt;
&lt;br /&gt;
Moving forward, exascale software will be unable to rely on minimally invasive system interfaces to provide an execution environment.  Instead, a software runtime layer is necessary to mediate between an application and the underlying hardware and software.  This proposal describes a model of execution based on codelets, which are small pieces of work that are sequenced by expressing their interdependencies to runtime software instead of relying on the implicit sequencing of a software thread.  In addition, this document will also describe interactions between the runtime layer, compiler, and programming language.&lt;br /&gt;
&lt;br /&gt;
The runtime software for exascale computing must be able to deal with a very large amount of outstanding work at any given time and manage enormous amounts of data, some of which may be highly volatile.  The relationship between work and the data it acts upon or generates is crucial to maintaining high performance and low power usage. A poor understanding of data locality may lead to a much higher amount of communication, which is extremely undesirable in an exascale environment.  To assist it in associating work with data and facilitating the migration of work to data and vice versa, such a runtime may impose a hierarchy on regions of the system, dividing it up along address space and privacy boundaries to allow it to guess at the cost inherent in communicating between regions.  Furthermore, tying data and work to locations in the hierarchy creates a construct by which transparent work stealing and sharing may be applied, helping to keep stolen work near its data and allowing shared work to be issued to specific regions.&lt;br /&gt;
&lt;br /&gt;
Compilers also need to reflect the requirements of exascale computing systems.  A compiler that supports a codelet execution model must be able to determine appropriate boundaries for codelets in software and generate the codelets and code to interface with both the runtime and a transformed version of the input program.  We propose that a three-step compilation process be used, wherein program code is compiled down to a high-level-language-independent internal representation, which can then be compiled down to C code that makes API calls into runtime software.  This C code can then be compiled down to a platform-specific binary for execution on the target system, using existing C compilers for the generated sequential code.  Higher-level analysis of the relationship between codelets and data can be performed in earlier steps, and this can enable the compiler to emit static hints to the runtime to assist in making decisions on scheduling and placement.  Compilers can also assist in providing for fault tolerance by supporting containment domains, which can be used by the runtime software to assist in program checkpointing.&lt;br /&gt;
&lt;br /&gt;
This work will be done in the context of DOE co-design applications. We will use kernels of these applications as well as other benchmarks and synthetic kernels in the course of our research. The needs of the co-design applications will provide valuable feedback to the research process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* &#039;&#039;&#039;[http://www.etinternational.com/ ET International (ETI):]&#039;&#039;&#039; Execution Model, Runtime Systems, Parallel Intermediate Language, Resilience&lt;br /&gt;
* &#039;&#039;&#039;[https://www.reservoir.com/ Reservoir Labs:]&#039;&#039;&#039; Programming Models, Loop Optimizations&lt;br /&gt;
* &#039;&#039;&#039;[http://cs.illinois.edu/ University of Illinois at Urbana-Champaign (UIUC):]&#039;&#039;&#039; High level data structures and algorithms for parallelism and locality&lt;br /&gt;
* &#039;&#039;&#039;[http://www.pnnl.gov/ Pacific Northwest National Laboratory (PNNL):]&#039;&#039;&#039; Co-design and NWChem kernels for evaluation, energy efficiency&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&#039;&#039;&#039;Scalability:&#039;&#039;&#039; Expose, express, and exploit O(10^10) concurrency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Locality:&#039;&#039;&#039; Locality aware data types, algorithms, and optimizations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programmability:&#039;&#039;&#039; Easy expression of asynchrony, concurrency, locality&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability:&#039;&#039;&#039; Stack portability across heterogeneous architectures&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energy Efficiency:&#039;&#039;&#039; Maximize static and dynamic energy savings while managing the tradeoff between energy efficiency, resilience, and performance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resilience:&#039;&#039;&#039; Gradual degradation in the face of many faults&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interoperability:&#039;&#039;&#039; Leverage legacy code through a gradual transformation towards exascale performance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applications:&#039;&#039;&#039; Support NWChem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
[[File:DynAX-Roadmap.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Impact ==&lt;br /&gt;
&#039;&#039;&#039;Scalability:&#039;&#039;&#039; &lt;br /&gt;
* Expose, express and exploit new forms of parallelism&lt;br /&gt;
* Provide mechanisms of task scheduling across the system as if it were one system rather than many disparate pieces&lt;br /&gt;
* Symmetric access semantics across heterogeneous devices&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Locality:&#039;&#039;&#039; &lt;br /&gt;
* Provide mechanisms to express locality as a first-class citizen&lt;br /&gt;
* Expose the memory hierarchies to the compiler (and programmer)&lt;br /&gt;
* Provide data types and memory models so that the programmer can view the system as one system instead of many disparate memories&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programmability:&#039;&#039;&#039; &lt;br /&gt;
* Create easier ways of expressing asynchrony thereby enabling programmers to write more scalable programs&lt;br /&gt;
* R-Stream will automatically extract parallelism and locality from common idioms&lt;br /&gt;
* Provide data types and algorithms that provide high-level representations of arrays mapped to the memory and algorithm hierarchy for automatic parallelization and data placement&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability:&#039;&#039;&#039; &lt;br /&gt;
* Demonstrate a software stack that is portable to multiple architectures provided a C compiler&lt;br /&gt;
* Support a platform abstraction layer in SWARM, which will allow it to operate on multiple heterogeneous architectures &lt;br /&gt;
* Work with Xpress on the XPI interface to show application portability between runtime systems&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energy Efficiency:&#039;&#039;&#039; &lt;br /&gt;
* Collocate execution and data&lt;br /&gt;
* Dynamically load balance execution based on resource availability&lt;br /&gt;
* Dynamically scale resources based on load&lt;br /&gt;
* Provide new programming constructs (Rescinded Primitive Data Types) that allow compressed data formats at higher memory levels to minimize data transfer costs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resilience:&#039;&#039;&#039; &lt;br /&gt;
* Integrate containment domains and their extensions into the SWARM runtime system and SCALE compiler&lt;br /&gt;
* Allow graceful degradation in the face of exascale-level faults and a framework for software validation of soft faults&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interoperability:&#039;&#039;&#039; &lt;br /&gt;
* Work with Xpress on XPI interoperability with legacy codes such that all X-Stack runtime systems and all X-Stack applications can benefit from Evolutionary/Revolutionary runtime system interoperability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applications:&#039;&#039;&#039; &lt;br /&gt;
* Provide NWChem kernels and expertise to all X-Stack projects &lt;br /&gt;
* Use Co-Design and NWChem applications to evaluate the Brandywine Team Software Stack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Stack ==&lt;br /&gt;
&lt;br /&gt;
[[File:Xstack-software-stack.png|X-Stack Software Stack|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The X-Stack software stack consists of high level data objects and algorithms (HTA: Hierarchical Tiled Arrays), R-Stream loop optimizing compiler, SCALE parallel language compiler, and SWARM distributed heterogeneous runtime system. The project will extend the existing software tools to improve on parallelism, locality, programmability, portability, energy efficiency, resilience, and interoperability (see left). In addition, it will add new infrastructure for energy efficiency (Rescinded Primitive Data Types) and resilience (Containment Domains).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SWARM (SWift Adaptive Runtime Machine)&#039;&#039;&#039;&lt;br /&gt;
[[File:SWARM-trace-comparison.png|right|350px]]&lt;br /&gt;
* Codelets&lt;br /&gt;
** Basic unit of parallelism&lt;br /&gt;
** Nonblocking tasks&lt;br /&gt;
** Scheduled upon satisfaction of precedent constraints&lt;br /&gt;
* Hierarchical Locale Tree: spatial position, data locality&lt;br /&gt;
* Lightweight Synchronization&lt;br /&gt;
* Asynchronous Split-phase Transactions: latency hiding&lt;br /&gt;
* Message Driven Computation&lt;br /&gt;
* Control-flow and Dataflow Futures&lt;br /&gt;
* Error Handling&lt;br /&gt;
* Active Global Address Space (planned)&lt;br /&gt;
* Fault tolerance (planned)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;R-Stream&#039;&#039;&#039;&lt;br /&gt;
[[File:R-StreamMF.jpg|right|350px]] &lt;br /&gt;
* Current capabilities:&lt;br /&gt;
** Automatic parallelization and mapping&lt;br /&gt;
** Heterogeneous, hierarchical targets&lt;br /&gt;
** Automatic DMA/comm. generation/optimization&lt;br /&gt;
** Auto-tuning tile sizes, mapping strategies, etc.&lt;br /&gt;
** Scheduling with parallelism/locality layout tradeoffs&lt;br /&gt;
** Corrective array expansion&lt;br /&gt;
* Planned capabilities:&lt;br /&gt;
** Extend explicit data placement&lt;br /&gt;
** Generation of parallel codelet codes from serial codes&lt;br /&gt;
** Generation of SCALE IR and tuning hints on scheduling and data placement&lt;br /&gt;
** Automatic mapping of irregular mesh codes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:HTA.png|right|350px]]&lt;br /&gt;
&#039;&#039;&#039;Hierarchical Tiled Arrays&#039;&#039;&#039;&lt;br /&gt;
* HTAs are recursive data structure&lt;br /&gt;
** Tree structured representation of memory&lt;br /&gt;
* Includes library of operations to enable the programming of codelets in the familiar notation of C/C++&lt;br /&gt;
** Represent parallelism using operations on arrays and sets&lt;br /&gt;
** Represent parallelism using parallel constructs such as parallel loops&lt;br /&gt;
* Compiler optimizations on sequences of HTA operations will be evaluated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:RPDTA.png|right|350px]]&lt;br /&gt;
&#039;&#039;&#039;Rescinded Primitive Data Type Access&#039;&#039;&#039;&lt;br /&gt;
* Redundancy removal to improve performance/energy &lt;br /&gt;
** Communication&lt;br /&gt;
** Storage&lt;br /&gt;
* Redundancy addition to improve fault tolerance &lt;br /&gt;
** High Level fault tolerant error correction codes and their distributed placement&lt;br /&gt;
* Placeholder representation for aggregated data elements &lt;br /&gt;
** Memory allocation/deallocation/copying&lt;br /&gt;
** Memory consistency models &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NWChem&#039;&#039;&#039;&lt;br /&gt;
* DOE’s Premier computational chemistry software&lt;br /&gt;
* One-of-a-kind solution scalable with respect to scientific challenge and compute platforms&lt;br /&gt;
* From molecules and nanoparticles to solid state and biomolecular systems&lt;br /&gt;
* Open-source has greatly expanded user and developer base (ECL 2.0)&lt;br /&gt;
* Worldwide distribution (70% is academia)&lt;br /&gt;
* Ab initio molecular dynamics runs at petascale&lt;br /&gt;
* Scalability to 100,000 processors demonstrated&lt;br /&gt;
* Smart data distribution and communication algorithms enable hybrid-DFT to scale to large numbers of processors&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
&#039;&#039;&#039;Q1 (12/1/2012)&#039;&#039;&#039;&lt;br /&gt;
* [[media:Q1.pdf|Q1 Report]]&lt;br /&gt;
* [[media:Q1-cholesky.pptx|Presentation on Cholesky Decomposition work]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q2 (3/1/2013)&#039;&#039;&#039;&lt;br /&gt;
* [[media:BrandywineXStackReportQ2.pdf|Q2 Report]]&lt;br /&gt;
* [[media:pil_api_v0.3.pdf|PIL Design v0.3]]&lt;br /&gt;
* [[media:SCF_text_document.docx|NWChem SCF module description]]&lt;br /&gt;
* [[media:Scf.tar.gz|NWChem SCF code download]]&lt;br /&gt;
&#039;&#039;&#039;March 2013 PI Meeting&#039;&#039;&#039;: [[media:DynAX_March_2013_PI_meeting.pptx|PI Meeting presentation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EXaCT All-hands meeting&#039;&#039;&#039;: [[media:DynAX_EXaCT_meeting.pptx|DynAX Presentation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q3 (6/1/2013)&#039;&#039;&#039;&lt;br /&gt;
* [[media:BrandywineXStackReportQ3.pdf|Q3 Report]]&lt;br /&gt;
* [[media:Scf2.tar.gz|NWChem SCF code download version 2]]&lt;br /&gt;
* [[media:Pil_api_v0.4.pdf|PIL Design v0.4]]&lt;br /&gt;
* [[media:TCG.tar.gz|Tensor Contraction Engine (OpenMP, CUDA, C, Fortran)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Year 1 report&#039;&#039;&#039;: [[media:BrandywineXStackReportY1.pdf|Y1 Report]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q4 (9/1/2013)&#039;&#039;&#039;&lt;br /&gt;
* [[media:BrandywineXStackReportQ4.pdf|Q4 Report]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q5 (12/1/2013)&#039;&#039;&#039;&lt;br /&gt;
* [[media:BrandywineXStackReportQ5.pdf|Q5 Report]]&lt;br /&gt;
* [[media:Tce.tar.gz|TCE C Generator code]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q6 (3/1/2014)&#039;&#039;&#039;&lt;br /&gt;
* [[media:BrandywineXStackReportQ6.pdf|Q6 Report]]&lt;br /&gt;
* [[media:TCE slides.pdf|TCE Presentation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q7 (6/1/2014)&#039;&#039;&#039;&lt;br /&gt;
* [[media:DynAXXStackQ7Report.pdf|Q7 Report]]&lt;br /&gt;
* [[media:Dynax_Deep_Dive_Presentation_-_HTA.pdf|HTA Deep Dive presentation]]&lt;br /&gt;
* [[media:Tce-20140605.tar.gz|TCE for OCR and SWARM (function-level parallelism)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Year 2 report&#039;&#039;&#039;: [[media:DynAXX-StackYear2report.pdf|Y2 Report]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q8 (9/1/2014)&#039;&#039;&#039;&lt;br /&gt;
* [[media:DynAXXStackQ8Report.pdf|Q8 Report]]&lt;br /&gt;
* [[media:Dfm2014-cyang49.pdf|Publication - &amp;quot;Hierarchically Tiled Array as a High-Level Abstraction for Codelets&amp;quot; (DFM2014)]]&lt;br /&gt;
* [[media:DennisGaoVMOS.v2.pdf|Publication - &amp;quot;On the Feasibility of a Codelet Based Multi-core Operating System&amp;quot; (DFM2014)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q9 (12/1/2014)&#039;&#039;&#039;&lt;br /&gt;
* [[media:DynAXXStackQ9Report.pdf|Q9 Report]]&lt;br /&gt;
* [[media:Lcpc_2014_shrestha.pdf|Publication - &amp;quot;Jagged Tiling for Intra-tile Parallelism and Fine-Grain Multithreading&amp;quot; (LCPC2014)]]&lt;br /&gt;
* [[media:Tce-20141110.tar.gz|TCE for OCR (block-level parallelism)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q10 (3/1/2015)&#039;&#039;&#039;&lt;br /&gt;
* [[media:DynaxXStackQ10Report.pdf|Q10 Report]]&lt;br /&gt;
* [[media:Containment_domains_slides.pdf|Containment Domains presentation]]&lt;br /&gt;
* [[media:Cgo_slides_xstack_v7.pdf|Locality Aware Concurrent Start for Stencil Applications]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q11 (6/1/2015)&#039;&#039;&#039;&lt;br /&gt;
* [[media:DynAX-XStackQ11Report.pdf|Q11 Report]]&lt;br /&gt;
* [[media:ETITechnicalReport01.pdf|ETI Technical Report 01 : Landing Containment Domains on SWARM:  Toward a Robust Resiliency Solution on A Dynamic Adaptive Runtime Machine]]&lt;br /&gt;
* [[media:ETITechnicalReport02.pdf|ETI Technical Report 02 : Legacy MPI Codes and its interoperability with fine grain task-parallel runtime systems for Exascale]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q12 &#039;&#039;&#039;&lt;br /&gt;
* [[media:DynAX-XStackQ12Report.pdf|Q12 Report]]&lt;br /&gt;
* [[media:GL_DataRes.pdf| PNNL DeepDive : Group Locality: Gregarious Data Restructuring]]&lt;br /&gt;
* [[media:Brandywine_Presentation_8-12-2015_v2.pdf| ETI DeepDive : Containment Domains In SWARM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Year 3 report&#039;&#039;&#039;: [[media:DynAXYear3.pdf|Y3 Report]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NCE &#039;&#039;&#039;&lt;br /&gt;
* [[media:ETI NCE.pdf|ETI NCE Report]]&lt;br /&gt;
* [[media:PNNL NCE.pdf|PNNL NCE Report]]&lt;br /&gt;
* [[media:Reservoir NCE.pdf|Reservoir NCE Report]]&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=File:Guang_gao.jpeg&amp;diff=5393</id>
		<title>File:Guang gao.jpeg</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=File:Guang_gao.jpeg&amp;diff=5393"/>
		<updated>2023-07-10T04:48:01Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Guang_Gao&amp;diff=5392</id>
		<title>Guang Gao</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Guang_Gao&amp;diff=5392"/>
		<updated>2023-07-10T04:47:31Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Person |portrait=guang_gao.jpeg |firstname=Guang |middlename=R. |lastname=Gao |company=University of Delaware |position=Endowed Distinguished Professor of Electrical &amp;amp; Compu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person |portrait=guang_gao.jpeg |firstname=Guang |middlename=R. |lastname=Gao |company=University of Delaware |position=Endowed Distinguished Professor of Electrical &amp;amp; Computer Engineering |location=Newark DE |country=United States |sector= |linkedin=https://www.linkedin.com/in/guang-r-gao-27824b5/ }}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=CORVETTE&amp;diff=5391</id>
		<title>CORVETTE</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=CORVETTE&amp;diff=5391"/>
		<updated>2023-07-10T04:46:33Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = CORVETTE&lt;br /&gt;
| image = [[File:CORVETTE-Logos.png|300px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [http://www.berkeley.edu/ UC Berkeley], [http://www.lbl.gov/ LBNL]&lt;br /&gt;
| pi = [[Koushik Sen]]&lt;br /&gt;
| co-pi = James W. Demmel (UC Berkeley), Costin Iancu (LBNL)&lt;br /&gt;
| website = [http://crd.lbl.gov/groups-depts/ftg/projects/current-projects/corvette/ CORVETTE]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program &#039;&#039;Cor&#039;&#039;rectness, &#039;&#039;Ve&#039;&#039;rification, and &#039;&#039;T&#039;&#039;es&#039;&#039;t&#039;&#039;ing for &#039;&#039;E&#039;&#039;xascale&#039;&#039;&#039; or &#039;&#039;&#039;CORVETTE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
&lt;br /&gt;
=== Researchers ===&lt;br /&gt;
* [http://srl.cs.berkeley.edu/~ksen/doku.php/ Koushik Sen]&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~demmel/ James Demmel]&lt;br /&gt;
* [http://www.crd.lbl.gov/about/staff/cds/ftg/costin-iancu/ Costin Iancu]&lt;br /&gt;
&lt;br /&gt;
=== Postdoctoral Researchers ===&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~hdnguyen/ Hong Diep Nguyen]&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~xuehaiq/ Xuehai Qian]&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~rubio/ Cindy Rubio-Gonz&amp;amp;aacute;lez]&lt;br /&gt;
&lt;br /&gt;
=== Graduate Student Researcher ===&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~nacuong/ Cuong Nguyen]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
*High performance scientific computing&lt;br /&gt;
** Exascale: O(10&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;) nodes, O(10&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;) cores per node&lt;br /&gt;
** Requires asynchrony and “relaxed” memory consistency&lt;br /&gt;
** Shared memory with dynamic task parallelism&lt;br /&gt;
** Languages allow remote memory modification&lt;br /&gt;
&lt;br /&gt;
* Correctness challenges&lt;br /&gt;
** Non-deterministic causes hard to diagnose correctness and performance bugs&lt;br /&gt;
*** Data races, atomicity violations, deadlocks …&lt;br /&gt;
** Bugs in DSL&lt;br /&gt;
** Scientific applications use floating-points: non-determinism leads to non-reproducible results&lt;br /&gt;
** Numerical exceptions can cause rare but critical bugs that are hard for non-experts to detect and fix&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
Develop correctness tools for different programming models: PGAS, MPI, dynamic parallelism&lt;br /&gt;
&lt;br /&gt;
I. Testing and Verification&lt;br /&gt;
* Identify sources of non-determinism in executions&lt;br /&gt;
* Data races, atomicity violations, non‐reproducible floating point results&lt;br /&gt;
* Explore state-of-the-art techniques that use dynamic analysis&lt;br /&gt;
* Develop precise and scalable tools: &amp;lt; 2X overhead&lt;br /&gt;
&lt;br /&gt;
II. Debugging&lt;br /&gt;
* Use minimal amount of concurrency to reproduce bug&lt;br /&gt;
* Support two-level debugging of high-level abstractions&lt;br /&gt;
* Detect causes of floating-point anomalies and determine the minimum precision needed to fix them&lt;br /&gt;
&lt;br /&gt;
==Impact Summary ==&lt;br /&gt;
* [https://xstackwiki.modelado.org/images/4/4c/Corvette-highlight_summary.pdf Corvette Impact Summary]&lt;br /&gt;
&lt;br /&gt;
== List of Products ==&lt;br /&gt;
=== Publications ===&lt;br /&gt;
&lt;br /&gt;
* [http://crd.lbl.gov/assets/pubs_presos/main2.pdf &#039;&#039;Floating Point Precision Tuning Using Blame Analysis&#039;&#039;] Cindy Rubio-Gonz ́alez, Cuong Nguyen, James Demmel, William Kahan, Koushik Sen, Wim Lavrijsen, Costin Iancu, LBNL TR, April 17, 2015.&lt;br /&gt;
* [http://crd.lbl.gov/assets/pubs_presos/main3.pdf &#039;&#039;OPR: Partial Deterministic Record and Replay for One-Sided Communication&#039;&#039;] Xuehai Qian, Koushik Sen, Paul Hargrove, Costin Iancu, LBNL TR, April 17, 2015.&lt;br /&gt;
* [http://crd.lbl.gov/assets/pubs_presos/nwbar.pdf &#039;&#039;Barrier Elision for Production Parallel Programs&#039;&#039;] Milind Chabbi, Wim Lavrijsen, Wibe de Jong, Koushik Sen, John Mellor Crummey, Costin Iancu, PPOPP 2015, February 5, 2015.&lt;br /&gt;
* &amp;quot;Parallel Reproducible Summation James Demmel&amp;quot;, Hong-Diep Nguyen, In IEEE Transactions on Computers, Special Section on Computer Arithmetic 2014, April 30, 2014&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~rubio/includes/sc13.pdf &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision.&#039;&#039;] C. Rubio-Gonz&amp;amp;aacute;lez, C. Nguyen, H.D. Nguyen, J. Demmel, W. Kahan, K. Sen, D.H. Bailey, C. Iancu, and D. Hough. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC&#039;13), Denver, CO, November 2013.&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~hdnguyen/public/papers/ARITH21_Fast_Sum.pdf &#039;&#039;Fast Reproducible Floating-Point Summation&#039;&#039;.] J. Demmel and H.D. Nguyen. In Proceedings of the 21st IEEE Symposium on Computer Arithmetic (ARITH&#039;13), Austin, TX, April 2013.&lt;br /&gt;
* [http://www.eecs.berkeley.edu/~hdnguyen/public/papers/ARITH21_ExaScale.pdf &#039;&#039;Numerical Accuracy and Reproducibility at ExaScale&#039;&#039;.] J. Demmel and H.D. Nguyen. In Proceedings of the 21st IEEE Symposium on Computer Arithmetic (ARITH&#039;13), Austin, TX, April 2013.&lt;br /&gt;
* [http://srl.cs.berkeley.edu/~ksen/papers/thrille-exp.pdf &#039;&#039;Scaling Data Race Detection for Partitioned Global Address Space Programs&#039;&#039;.] C. Park, K. Sen, C. Iancu. In Proceedings of the International Conference on Supercomputing (ICS&#039;13), Eugene, OR, June 2013.&lt;br /&gt;
&lt;br /&gt;
=== Technical Presentations ===&lt;br /&gt;
&lt;br /&gt;
* 06/2014. &#039;&#039;Testing, Debugging, and Precision-tuning of Large-scale Parallel and Floating-point Programs&#039;&#039;. Presenter: Koushik Sen. Invited R. Narasimhan Lecture Award, TIFR, India.&lt;br /&gt;
* 05/2014. &#039;&#039;Precision Tuning of Floating-Point Programs&#039;&#039;. Presenters: Cindy Rubio-Gonz&amp;amp;aacute;lez and Cuong Nguyen. Berkeley Programming Systems Retreat, Santa Cruz, CA.&lt;br /&gt;
* 04/2014. &#039;&#039;Improving Software Reliability and Performance Using Program Analysis&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. University of California, Irvine, Irvine, CA.&lt;br /&gt;
* 03/2014. &#039;&#039;Improving Software Reliability and Performance Using Program Analysis&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. University of Texas at Dallas, Dallas, TX.&lt;br /&gt;
* 03/2014. &#039;&#039;Improving Software Reliability and Performance Using Program Analysis&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. University of California, Davis, Davis, CA.&lt;br /&gt;
* 02/2014. &#039;&#039;Improving Software Reliability and Performance Using Program Analysis&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. The University of New York at Buffalo, Buffalo, NY.&lt;br /&gt;
* 02/2014. &#039;&#039;Improving Software Reliability and Performance Using Program Analysis&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. College of William and Mary, Williamsburg, VA.&lt;br /&gt;
* 02/2014. &#039;&#039;Improving Software Reliability and Performance Using Program Analysis&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Invited talk at SRI International, Menlo Park, CA.&lt;br /&gt;
* 01/2014. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. UC Berkeley ASPIRE Winter Retreat, Tahoe, CA.&lt;br /&gt;
* 12/2013. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Invited talk at Bay Area Scientific Computing Day (BASCD&#039;13), LBNL, Berkeley, CA.&lt;br /&gt;
* 11/2013. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Supercomputing Conference (SC&#039;13), Denver, CO.&lt;br /&gt;
* 11/2013. &#039;&#039;ReproBLAS: Reproducible BLAS&#039;&#039;. Presenter: Hong Diep Nguyen. Supercomputing Conference (SC&#039;13), Denver, CO.&lt;br /&gt;
* 11/2013. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Massachusetts Institute of Technology, Cambridge, MA.&lt;br /&gt;
* 11/2013. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Rising Stars in EECS Workshop, Poster Session, MIT, Cambridge, MA.&lt;br /&gt;
* 08/2013. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Invited talk at Oracle, Compiler Technical Talks Series, Santa Clara, CA.&lt;br /&gt;
* 06/2013. &#039;&#039;Scaling Data Race Detection for Partitioned Global Address Space Programs&#039;&#039;. Presenter: Costin Iancu. International Supercomputing Conference (ICS&#039;13), Eugene, OR.&lt;br /&gt;
* 06/2013. &#039;&#039;Efficient Reproducible Floating-Point Reduction Operations on Large Scale Systems&#039;&#039;. Presenter: Hong Diep Nguyen. SIAM Annual Meeting 2013  (AN13), San Diego, CA.&lt;br /&gt;
* 06/2013. &#039;&#039;Precimonious: Tuning Assistant for Floating-Point Precision&#039;&#039;. Presenter: Cindy Rubio-Gonz&amp;amp;aacute;lez. Lawrence Berkeley National Laboratory DEGAS Retreat, Santa Cruz, CA.&lt;br /&gt;
* 04/2013. &#039;&#039;Fast Reproducible Floating-Point Summation&#039;&#039;. Presenter: Hong Diep Nguyen. 21st IEEE Symposium on Computer Arithmetic (ARITH21), Austin, TX.&lt;br /&gt;
* 04/2013. &#039;&#039;Numerical Reproducibility and Accuracy at ExaScale&#039;&#039;. Presenter: Hong Diep Nguyen. 21st IEEE Symposium on Computer Arithmetic (ARITH21), Austin, TX.&lt;br /&gt;
* 11/2012. &#039;&#039;Reproducible Floating Point Computation: Motivation, Algorithms, Diagnostics&#039;&#039;. Presenter: James Demmel. Birds of a Feather (BOF), Supercomputing Conference (SC&#039;12), Salt Lake City, UT.&lt;br /&gt;
&lt;br /&gt;
=== Software Releases ===&lt;br /&gt;
&lt;br /&gt;
* [http://upc.lbl.gov/thrille.html/ UPC-Thrille]&lt;br /&gt;
* [https://github.com/corvette-berkeley/precimonious/ Precimonious]&lt;br /&gt;
* [http://bebop.cs.berkeley.edu/reproblas/ ReproBLAS]&lt;br /&gt;
&lt;br /&gt;
== Testing and Verification Tools ==&lt;br /&gt;
=== Scalable Testing of Parallel Programs ===&lt;br /&gt;
* Concurrent Programming is hard &lt;br /&gt;
** Bugs happen non­‐deterministically &lt;br /&gt;
** Data races, deadlocks, atomicity violations, etc. &lt;br /&gt;
&lt;br /&gt;
* Goals: build a tool to test and debug concurrent and parallel programs &lt;br /&gt;
** Efficient: reduce overhead from 10x‐100x to 2x &lt;br /&gt;
** Precise &lt;br /&gt;
** Reproducible &lt;br /&gt;
** Scalable &lt;br /&gt;
&lt;br /&gt;
* Active random testing&lt;br /&gt;
&lt;br /&gt;
=== Active Testing ===&lt;br /&gt;
* Phase 1: Static or dynamic analysis to find potential concurrency bug patterns, such as data races, deadlocks, atomicity violations &lt;br /&gt;
** Data races: Eraser or lockset based [PLDI’08] &lt;br /&gt;
** Atomicity violations: cycle in transactions and happens‐before relation [FSE’08] &lt;br /&gt;
** Deadlocks: cycle in resource acquisition graph [PLDI’09] &lt;br /&gt;
** Publicly available tool for Java/Pthreads/UPC [CAV’09] &lt;br /&gt;
** Memory model bugs: cycle in happens­‐before graph [ISSTA’11] &lt;br /&gt;
** For UPC programs running on thousands of cores [SC’11]&lt;br /&gt;
&lt;br /&gt;
* Phase 2: “Direct” testing (or model checking) based on the bug patterns obtained from phase 1 &lt;br /&gt;
** Confirm bugs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Goals&#039;&#039;&#039;&lt;br /&gt;
* Goal 1. Nice to have a trace exhibiting the data race&lt;br /&gt;
* Goal 2. Nice to have a trace exhibiting the assertion failure&lt;br /&gt;
* Goal 3. Nice to have a trace with fewer threads&lt;br /&gt;
* Goal 4. Nice to have a trace with fewer context switches&lt;br /&gt;
&lt;br /&gt;
=== Challenges for Exascale ===&lt;br /&gt;
* Java and pthreads programs &lt;br /&gt;
** Synchronization with locks and condition variables &lt;br /&gt;
** Single node &lt;br /&gt;
* Exascale has different programming models &lt;br /&gt;
** Large scale&lt;br /&gt;
** Bulk communication &lt;br /&gt;
** Collective operations with data movement &lt;br /&gt;
** Memory consistency &lt;br /&gt;
** Distributed shared memory &lt;br /&gt;
* Cannot use centralized dynamic analyses &lt;br /&gt;
* Cannot instrument and track every statement&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Further Challenges&#039;&#039;&#039;&lt;br /&gt;
* Targeted a simple programming paradigm &lt;br /&gt;
** Threads and shared memory &lt;br /&gt;
* Similar techniques are available for MPI and CUDA &lt;br /&gt;
** ISP, DAMPI, MARMOT, Umpire, MessageChecker &lt;br /&gt;
** TASS uses symbolic execu7on &lt;br /&gt;
** PUG for CUDA &lt;br /&gt;
* Analyze programs that mix different paradigms &lt;br /&gt;
** OpenMP, MPI, Shared Distributed Memory &lt;br /&gt;
** Need to correlate non‐determinism across paradigms&lt;br /&gt;
&lt;br /&gt;
=== How Well Does it Scale? ===&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Franklin.png|right|150px]]&lt;br /&gt;
&lt;br /&gt;
* Maximum 8% slowdown at 8K cores &lt;br /&gt;
** Franklin Cray XT4 Supercomputer at NERSC &lt;br /&gt;
** Quad­‐core 2.x3GHz CPU and 8GB RAM per node &lt;br /&gt;
** Portals interconnect&lt;br /&gt;
* Optimizations for scalability &lt;br /&gt;
** Efficient Data Structures &lt;br /&gt;
** Minimize Communication &lt;br /&gt;
** Sampling with Exponential Backoff&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Optimization.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debugging Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Debugging Project I ===&lt;br /&gt;
* Detect bug with fewer threads and fewer context switches&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Experience with C/PThreads&#039;&#039;&#039;: Over 90% of simplified traces were within 2 context switches of optimal&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Context-Switch-Results.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small model hypothesis for parallel programs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Most bugs can be found with few threads &lt;br /&gt;
** 2‐3 threads &lt;br /&gt;
** No need to run on thousands of nodes &lt;br /&gt;
* Most bugs can be found with fewer context switches [Musuvathi and Qadeer, PLDI 07] &lt;br /&gt;
** Helps in sequential debugging&lt;br /&gt;
&lt;br /&gt;
=== Debugging Project II ===&lt;br /&gt;
* Two‐level debugging of DSLs&lt;br /&gt;
* Correlate program state across program versions&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Debugging-DSL.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Debugging Project III ===&lt;br /&gt;
* Find floating point anomalies&lt;br /&gt;
* Recommend safe reduction of precision&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating Point Debugging ==&lt;br /&gt;
&lt;br /&gt;
=== Why do we care? ===&lt;br /&gt;
* Usage of floating point programs has been growing rapidly &lt;br /&gt;
** HPC &lt;br /&gt;
** Cloud, games, graphics, finance, speech, signal processing &lt;br /&gt;
&lt;br /&gt;
* Most programmers are not expert in floating‐point!&lt;br /&gt;
** Why not use highest precision everywhere&lt;br /&gt;
 &lt;br /&gt;
* High precision wastes &lt;br /&gt;
** Energy &lt;br /&gt;
** Time &lt;br /&gt;
** Storage&lt;br /&gt;
&lt;br /&gt;
=== Floating Point Debugging Problem 1: Reduce unnecessary precision ===&lt;br /&gt;
* Consider the problem of finding the arc length of the function&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How can we find a minimal set of code fragments whose precision must be high?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Debugging-Problem-1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Floating Point Debugging Problem 2: Detect Inaccuracy and Anomaly ===&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Debugging-Problem-2.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=== What can we do? ===&lt;br /&gt;
* We can reduce precision “safely”&lt;br /&gt;
** reduce power, improve performance, get better answer&lt;br /&gt;
&lt;br /&gt;
* Automated testing and debugging techniques&lt;br /&gt;
** To recommend “precision reduction”&lt;br /&gt;
** Formal proof of “safety” can be replaced by Concolic testing&lt;br /&gt;
&lt;br /&gt;
* Approach: automate previously hand-made debugging&lt;br /&gt;
** Concolic testing&lt;br /&gt;
** Delta debugging [Zeller et al.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* Prototype implementation for C programs&lt;br /&gt;
** Uses CIL compiler framework&lt;br /&gt;
** http://perso.univ-perp.fr/guillaume.revy/index.php?page=debugging&lt;br /&gt;
&lt;br /&gt;
* Future plans&lt;br /&gt;
** Build on top of LLVM compiler framework&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Potential Collaboration ==&lt;br /&gt;
* Dynamic analyses to find bugs ‐ dynamic parallelism, unstructured parallelism, shared memory &lt;br /&gt;
** DEGAS, XPRESS, Traleika Glacier &lt;br /&gt;
&lt;br /&gt;
* Floating point debugging &lt;br /&gt;
** Co‐design centers &lt;br /&gt;
&lt;br /&gt;
* 2‐level debugging &lt;br /&gt;
** D-TEC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
[[File:CORVETTE-Summary.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* Build testing tools &lt;br /&gt;
** Close to what programmers use &lt;br /&gt;
** Hide formal methods and program analysis under testing &lt;br /&gt;
&lt;br /&gt;
* If you are not obsessed with formal correctness &lt;br /&gt;
** Testing and debugging can help you solve these problems with high confidence&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Koushik_Sen&amp;diff=5390</id>
		<title>Koushik Sen</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Koushik_Sen&amp;diff=5390"/>
		<updated>2023-07-10T04:45:58Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=Koushik Sen.jpeg&lt;br /&gt;
|firstname=Koushik&lt;br /&gt;
|lastname=Sen&lt;br /&gt;
|company=University of California, Berkeley&lt;br /&gt;
|position=Professor&lt;br /&gt;
|location=Berkeley CA&lt;br /&gt;
|country=United States&lt;br /&gt;
|linkedin=https://people.eecs.berkeley.edu/~ksen/?rnd=1688946287138&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=File:Koushik_Sen.jpeg&amp;diff=5389</id>
		<title>File:Koushik Sen.jpeg</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=File:Koushik_Sen.jpeg&amp;diff=5389"/>
		<updated>2023-07-10T04:45:49Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Koushik_Sen&amp;diff=5388</id>
		<title>Koushik Sen</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Koushik_Sen&amp;diff=5388"/>
		<updated>2023-07-10T04:45:29Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: Created page with &amp;quot;{{Person |portrait=Koushik Sen.jpeg |firstname=Koushik |middlename= |lastname=Sen |company=University of California, Berkeley |position=Professor |location=Berkeley CA |countr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person |portrait=Koushik Sen.jpeg |firstname=Koushik |middlename= |lastname=Sen |company=University of California, Berkeley |position=Professor |location=Berkeley CA |country=United States |sector= |linkedin=https://people.eecs.berkeley.edu/~ksen/?rnd=1688946287138 }}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Andrew_Chien&amp;diff=5387</id>
		<title>Andrew Chien</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Andrew_Chien&amp;diff=5387"/>
		<updated>2023-07-10T04:44:06Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=Andrew Chen.jpg&lt;br /&gt;
|firstname=Andrew&lt;br /&gt;
|lastname=Chien&lt;br /&gt;
|company=University of Chicago,&lt;br /&gt;
|position=William Eckhardt Professor, Department of Computer Science, 10708498&lt;br /&gt;
|location=Chicago IL&lt;br /&gt;
|country=United States&lt;br /&gt;
|linkedin=https://www.linkedin.com/in/andrew-a-chien-1b70795/&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Andrew_Chien&amp;diff=5386</id>
		<title>Andrew Chien</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Andrew_Chien&amp;diff=5386"/>
		<updated>2023-07-10T04:42:50Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=Andrew Chen.jpg&lt;br /&gt;
|firstname=Andrew&lt;br /&gt;
|lastname=Chien&lt;br /&gt;
|company=University of Chicago,&lt;br /&gt;
|position=William Eckhardt Professor, Department of Computer Science, 10708498&lt;br /&gt;
|location=Chicago IL&lt;br /&gt;
|country=United States&lt;br /&gt;
|linkedin=http://cs.uchicago.edu/people/aachien/&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=Andrew_Chien&amp;diff=5385</id>
		<title>Andrew Chien</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=Andrew_Chien&amp;diff=5385"/>
		<updated>2023-07-10T04:42:41Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person&lt;br /&gt;
|portrait=Andrew Chen.jpg&lt;br /&gt;
|firstname=Andrew&lt;br /&gt;
|lastname=Chien&lt;br /&gt;
|company=University of Chicago,&lt;br /&gt;
|position=William Eckhardt Professor, Department of Computer Science, 10708498&lt;br /&gt;
|linkedin=http://cs.uchicago.edu/people/aachien/&lt;br /&gt;
|location=Chicago IL &lt;br /&gt;
|country=United States&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
	<entry>
		<id>https://modelado.org/index.php?title=GVR&amp;diff=5384</id>
		<title>GVR</title>
		<link rel="alternate" type="text/html" href="https://modelado.org/index.php?title=GVR&amp;diff=5384"/>
		<updated>2023-07-10T04:39:41Z</updated>

		<summary type="html">&lt;p&gt;Pinfold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox project&lt;br /&gt;
| title = GVR: Exploiting Global-view for Resilience&lt;br /&gt;
| image = [[File:GVR-Logos.png|400px]]&lt;br /&gt;
| imagecaption = &lt;br /&gt;
| team-members = [http://www.uchicago.edu/ U. of Chicago], [http://www.anl.gov/ ANL], [http://www.hpl.hp.com/ HP Labs]&lt;br /&gt;
| pi = [[Andrew Chien]]&lt;br /&gt;
| co-pi = [http://www.mcs.anl.gov/person/pavan-balaji/ Pavan Balaji (ANL)]&lt;br /&gt;
| website = http://gvr.cs.uchicago.edu/&lt;br /&gt;
| download = https://sites.google.com/site/uchicagolssg/lssg/research/gvr/downloads&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exploiting Global View for Resilience&#039;&#039;&#039; or &#039;&#039;&#039;GVR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
* [http://www.uchicago.edu/ University of Chicago]: [http://www.cs.uchicago.edu/people/aachien/ Andrew A. Chien] (PI), [http://www.cs.uchicago.edu/people/hfujita Hajime Fujita], [http://www.cs.uchicago.edu/people/zar1 Zachary Rubenstein], [http://www.cs.uchicago.edu/people/zimingzheng Ziming Zheng], [http://www.cs.uchicago.edu/people/dun Nan Dun], [http://www.cs.uchicago.edu/people/aimanf Aiman Fang], Yan Liu&lt;br /&gt;
* [http://www.anl.gov/ Argonne National Laboratory (ANL)]: [http://www.mcs.anl.gov/person/pavan-balaji/ Pavan Balaji] (co-PI), [http://www.mcs.anl.gov/person/pete-beckman Pete Beckman], [http://www.mcs.anl.gov/person/kamil-iskra/ Kamil Iskra], Wes Bland&lt;br /&gt;
* [http://www.hpl.hp.com/ HP Labs]: Robert Schreiber&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Application Partnerships&#039;&#039;&#039;&lt;br /&gt;
* Advanced Nuclear Reactor Simulation ([https://cesar.mcs.anl.gov/content/andrew-siegel Andrew Siegel], CESAR)&lt;br /&gt;
* Computational Chemistry ([https://www.alcf.anl.gov/staff-directory/jeff-hammond Jeff Hammond], ALCF)&lt;br /&gt;
* Rich Computational Frameworks (Trilinos, [http://www.sandia.gov/~maherou/ Mike Heroux], Sandia)&lt;br /&gt;
* Particle codes (ddcMD) (David Richards, Ignacio Laguna, LLNL)&lt;br /&gt;
* Adaptive Mesh Refinement (Chombo) (Brian van Straalen, Anshu Dubey, LBNL)&lt;br /&gt;
* Combustion (S3D) (Jackie Chen, Sandia)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Global View Resilience (GVR) is a new programming approach that exploits a global view data model (global naming of data, consistency, and distributed layout), adding reliability to globally visible distributed arrays. The globally-visible distributed array abstraction is &amp;quot;multi-version&amp;quot;, providing redundancy in time, and a convenient location for application annotations for reliability needs.  Because the distributed array abstraction is portable, GVR enables application programmers to manage reliability (and its overhead) in a flexible, portable fashion, tapping their deep scientific and application code insights.  Further, GVR will provide a flexible, efficient, cross-layer error management architecture called “open reliability” that allows applications to describe error detection (checking) and recovery routines and inject them into the GVR stack for efficient implementation. This architecture enables applications and systems to work in concert, exploiting semantics (algorithmic or even scientific domain) and key capabilities (e.g., fast error detection in hardware) to dramatically increase the range of errors that can be detected and corrected.&lt;br /&gt;
&lt;br /&gt;
== Resilience Challenges ==&lt;br /&gt;
&lt;br /&gt;
* Can we achieve a smooth transition to system resilience? (a la Flash memory, Internet)&lt;br /&gt;
* What’s an application to do?&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Resilience-Challenges.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resilience Co-design ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Co‑design without co‑dependence&#039;&#039;&#039;&lt;br /&gt;
* Software: Information and Algorithms to enhance resilience (REQ: Portable, flexible)&lt;br /&gt;
* Runtime, OS, and Architecture Mechanisms to enhance resilience (REQ: leverage beyond HPC, cheap)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Resilience-Co-design.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Project Impact ==&lt;br /&gt;
&lt;br /&gt;
* [https://xstackwiki.modelado.org/images/4/4c/GVR_Highlights_Summary9-2016.pdf GVR Project Impact]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Challenges&#039;&#039;&#039;&lt;br /&gt;
* Enable an application to incorporate resilience incrementally, expressing resilience proportionally to the application need&lt;br /&gt;
* “Outside in”, as needed, incremental, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GVR Approach 1==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Approach-1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Application-System Partnership&lt;br /&gt;
** Expose and exploit algorithm and application domain knowledge&lt;br /&gt;
** Enable “End to end” resilience model&lt;br /&gt;
&lt;br /&gt;
* Foundation in Data-oriented resilience&lt;br /&gt;
** Internet services, map-reduce, internet, ...&lt;br /&gt;
** Achieve with high performance and massive parallelism...&lt;br /&gt;
** Global view data Foundation (PGAS..., GA, SWARM, ParalleX, CnC, ...)&lt;br /&gt;
&lt;br /&gt;
=== Data-oriented Resilience ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Data-Oriented.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Parallel applications and global-view data&lt;br /&gt;
* Natural parallel structure version-to-version&lt;br /&gt;
** Example: shock hydro simulation at t=10ms to 100ms&lt;br /&gt;
** Example: iterative solver at iteration 1 to 20&lt;br /&gt;
** Example: monte carlo at 10M to 20M points&lt;br /&gt;
&lt;br /&gt;
* Temporal redundancy enables rollback and resume&lt;br /&gt;
** User-controlled, convenient&lt;br /&gt;
&lt;br /&gt;
=== Resilience Partnership ===&lt;br /&gt;
* Proportional Resilience&lt;br /&gt;
** Application specifies “Resilience priorities”&lt;br /&gt;
** Mapped into data-redundancy in space&lt;br /&gt;
** Mapped into redundancy in time (multi-version)&lt;br /&gt;
** Complements computation/task redundancy efforts&lt;br /&gt;
&lt;br /&gt;
* Deep error detection: invariants, assertions, checks ... and recovery&lt;br /&gt;
&lt;br /&gt;
* Applications add further checks based on algorithm and domain semantics&lt;br /&gt;
** Application add flexible, adaptive recovery mechanisms (and exploit multi-version)&lt;br /&gt;
&lt;br /&gt;
* “End-to-end” resilience&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GVR Approach 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Approach-2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* x-layer approach for efficient execution (and better resilience)&lt;br /&gt;
** Spatial redundancy – coding at multiple levels, system level checking&lt;br /&gt;
** Temporal redundancy - Multi-version memory, integrated memory and NVRAM management&lt;br /&gt;
&lt;br /&gt;
* Push checks to most efficient level (find early, contain, reduce overhead)&lt;br /&gt;
* Recover based on semantics from any level (repair more, larger feasible computation, reduce overhead)&lt;br /&gt;
* Efficient implementation support in runtime, OS, architecture ... increase efficiency and containment&lt;br /&gt;
&lt;br /&gt;
=== Multi-version Memory ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Memory.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Common parallel paradigm, basis for programmer engagement&lt;br /&gt;
* Frames invariant checks, more complex checks based on high-level semantics&lt;br /&gt;
* Frames sophisticated recovery&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Research Challenges ==&lt;br /&gt;
* Understand application resilience needs and opportunities for &#039;&#039;proportional resilience&#039;&#039; and &#039;&#039;deep error detection&#039;&#039;/&#039;&#039;end-to-end resilience&#039;&#039;&lt;br /&gt;
* Explore multi-version memory as opportunity for framing richer resilience and parallelism&lt;br /&gt;
* Design API that embodies these ideas and &#039;&#039;gentle slope&#039;&#039; incremental application effort&lt;br /&gt;
* Create efficient x-layer implementations - many questions&lt;br /&gt;
* Explore architecture opportunities to increase resilience and reduce overhead&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global‑view Data Program ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Program-1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GVR Resilience Program ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Program-2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global View &amp;amp; Consistent Snapshots ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Snapshots.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How to safely, efficiently identify consistent snapshots?&lt;br /&gt;
** Application control: Global Synch; Array-level synch; explicit snapshot&lt;br /&gt;
** Application flagged (optional)&lt;br /&gt;
** Implicit (runtime decides)&lt;br /&gt;
* Snapshots = natural points to express and implement assertions, checks, recovery&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementing Multi-version ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Implementing.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How to implement multi-version efficiently?&lt;br /&gt;
** Time, Space, Label =&amp;gt; representation, protocol&lt;br /&gt;
* Which to take?&lt;br /&gt;
** Versions are logical, snapshots require resources&lt;br /&gt;
* Intelligent storage:&lt;br /&gt;
** Representation, compression, architecture support&lt;br /&gt;
** Older versions recede into storage [SILT]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Intelligent Memory and Storage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Memory-Storage.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How to exploit intelligence at memory and storage? (at controller)&lt;br /&gt;
* Intelligent stacked DRAM and storage-class Memory [HMC,PIM]&lt;br /&gt;
* Fine-grained state tracking; compression, intelligent, copying, etc.&lt;br /&gt;
* Efficient version capture; differenced checkpoints (Plank95, Svard11)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opportunities ==&lt;br /&gt;
* Multi-version and increased concurrency&lt;br /&gt;
* Multi-version and debugging&lt;br /&gt;
* Architecture support and fine-grained synchronization, application checks, compressed memory, etc.&lt;br /&gt;
* ...more?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expected Outcomes ==&lt;br /&gt;
* Use cases – Application skeleton design and classifications which form foundation of the design&lt;br /&gt;
* Design of GVR API for flexible resilience and multi-version global data&lt;br /&gt;
* Research prototype software developed as a library; target for programmers, compiler backends&lt;br /&gt;
* Experiments with mini-apps and application partners (w/ co-design postdocs)&lt;br /&gt;
* Assessment of architecture support opportunities and quantitative benefits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GVR X-Stack Synergies ==&lt;br /&gt;
&lt;br /&gt;
[[File:GVR-Synergies.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Direct Application Programming Interface&lt;br /&gt;
* Co-existence, even target with other Runtimes&lt;br /&gt;
* Rich Solver Library Building Block&lt;br /&gt;
* Programming System Target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Research Products ==&lt;br /&gt;
&lt;br /&gt;
Full report = [[Media:gvr-research-products.pdf]]&lt;br /&gt;
&lt;br /&gt;
* Demonstrated easy application integration, &amp;lt;2% lines of code change in large (10K-100K line applications)&lt;br /&gt;
* Demonstrated controllable and low performance overhead (application scaling to 16,384 nodes and &amp;lt;2% overhead)&lt;br /&gt;
* Released on multiple platforms, including Cray (Edison, Cori), IBM BG/Q (Mira, JuQueen), Linux clusters&lt;br /&gt;
* Demonstrated flexible, portable application-semantics based forward-error correction in multiple applications (OpenMC, ddcMD, etc.)&lt;br /&gt;
* Software release available from http://gvr.cs.uchicago.edu/ and deployed at multiple supercomputing centers, including NERSC.&lt;br /&gt;
&lt;br /&gt;
== Publications ==&lt;br /&gt;
(see project web site for full up to date list)&lt;br /&gt;
&lt;br /&gt;
* Hajime Fujita, Kamil Iskra, Pavan Balaji, and Andrew A. Chien, &amp;quot;Versioning Architectures for Local and Global Memory&amp;quot;, in Proceedings of the International Conference on Parallel and Distributed Systems (ICPADS), December 2015, Melbourne, Australia.&lt;br /&gt;
* Aiman Fang, Hajime Fujita and Andrew A. Chien, &amp;quot;Towards Understanding Post-Recovery Efficiency for Shrinking and Non-Shrinking Recovery&amp;quot;, in Proceedings of the 8th Workshop on Resiliency in High Performance Computing (Resilience) in Clusters, Clouds, and Grids, at Euro-Par 2015, Vienna, Austria, August 24, 2015&lt;br /&gt;
* Anshu Dubey, Hajime Fujita, Zachary Rubenstein, Brian Van Straalen and Andrew Chien. &amp;quot;A Case Study Of Application Structure Aware Resilience Through Differentiated State Saving And Recovery&amp;quot;, in Proceedings of the 8th Workshop on Resiliency in High Performance Computing (Resilience) in Clusters, Clouds, and Grids, at Euro-Par 2015, Vienna, Austria, August 24, 2015&lt;br /&gt;
* Hajime Fujita, Kamil Iskra, Pavan Balaji, and Andrew A. Chien, &amp;quot;Empirical Characterization of Versioning Architectures&amp;quot;, in Proceedings of IEEE Cluster, September 8-10, 2015, Chicago.&lt;br /&gt;
* A. Chien, P. Balaji, N. Dun, A. Fang, H. Fujita, K. Iskra, Z. Rubenstein, Z. Zheng, J. Hammond, I. Laguna, D. Richards, A. Dubey, B. van Straalen, M Hoemmen, M. Heroux, K. Teranishi, A. Siegel.  Exploring Versioning for Resilience in Scientific Applications: Global-view Resilience, submitted for publication, March 2015. (Best overall project summary)&lt;br /&gt;
* Aiman Fang and Andrew A. Chien, &amp;quot;How Much SSD Is Useful for Resilience in Supercomputers”, in ACM Symposium on Fault-tolerance at Extreme-Scale (FTXS) associated with HPDC 2015, Portland, Oregon, June 15, 2015 (Slides)&lt;br /&gt;
* Aiman Fang, &amp;quot;How Much SSD Is Useful for Resilience in Supercomputers”, Master&#039;s Thesis, Department of Computer Science, University of Chicago, April 2015.&lt;br /&gt;
* Nan Dun, Hajime Fujita, John R. Tramm, Andrew A. Chien, Andrew R. Siegel, Data Decomposition in Monte Carlo Neutron Transport Simulations using Global View Arrays, International Journal of High Performance Computing Applications, March 2015.&lt;br /&gt;
* A. Chien, P. Balaji, P. Beckman, N. Dun, A. Fang, H. Fujita, K. Iskra, Z. Rubenstein, Z. Zheng, R. Schreiber, J. Hammond, J. Dinan, A. Laguna, D. Richards, A. Dubey, B. van Straalen, M Hoemmen, M. Heroux, K. Teranishi, A. Siegel, and J. Tramm, &amp;quot;Versioned Distributed Arrays for Resilience in Scientific Applications: Global View Resilience&amp;quot;, in International Conference on Computational Science (ICCS 2015), Reykjavik, Iceland, June 2015.&lt;br /&gt;
* Hajime Fujita, Nan Dun, Zachary Rubenstein, and Andrew A. Chien.  Log-Structured Global Array for Efficient Multi-Version Snapshots, IEEE CCGrid 2015, May 2015.  Also UChicago CS Tech Report 2014-16, Nov 2014.&lt;br /&gt;
* Hajime Fujita, Nan Dun, Aiman Fang, Zachary A. Rubenstein, Ziming Zheng, Kamil Iskra, Jeff Hammond, Anshu Dubey, Pavan Balaji, Andrew A. Chien: Using Global View Resilience (GVR) to add Resilience to Exascale Applications, SC14, Nov 2014 (Best Poster Finalist!)&lt;br /&gt;
* The GVR Team, Global View Resilience (GVR) Documentation, Release 1.0, University of Chicago, Computer Science Technical Report 2014-10.&lt;br /&gt;
* Nan Dun, Hajime Fujita, John Tramm, Andrew A. Chien, and Andrew R. Siegel.  Data Decomposition in Monte Carlo Particle Transport Simulations using Global View Arrays, UChicago CS Tech Report 2014-09 May  2014.&lt;br /&gt;
* The GVR Team, How Applications Use GVR: Use Cases, University of Chicago, Computer Science Technical Report 2014-06.&lt;br /&gt;
* The GVR Team, Global View Resilience, API Documentation R0.8.1-rc0, University of Chicago, Computer Science Technical Report 2014-05.&lt;br /&gt;
* Aiman Fang and Andrew A. Chien, &amp;quot;Applying GVR to Molecular Dynamics: Enabling Resilience for Scientific Computations&amp;quot;, Tech Report, University of Chicago, Dept of Computer Science, CS-TR-2014-04, April 2014.&lt;br /&gt;
* Ziming Zheng, Andrew A. Chien, Keita Teranishi, &amp;quot;Fault Tolerance in an Inner-Outer Solver: a GVR-enabled Case Study&amp;quot;, in Proceedings of VECPAR 2014, July 2014, Eugene, Oregon.  Proceedings available from Springer-Verlag Lecture Notes in Computer Science.&lt;br /&gt;
* Z. Rubenstein, &amp;quot;Error Checking and Snapshot-based Recovery in Preconditioned Conjugate Gradient Solver&amp;quot;, Masters Thesis, University of Chicago, Department of Computer Science, March 2014.&lt;br /&gt;
* Z. Rubenstein, J. Dinan, H. Fujita, Z. Zheng, A. Chien, &amp;quot;Error Checking and Snapshot-Based Recovery in a Preconditioned Conjugate Gradient Solver&amp;quot;, University of Chicago, Department of Computer Science Technical Report 2013-11, December 2013&lt;br /&gt;
* Wesley Bland, Aurelien Bouteiller, Thomas Herault, Joshua Hursey, George Bosilca, and JackJ. Dongarra. An evaluation of User-Level Failure Mitigation support in MPI. Computing, 95(12):1171–1184, 2013.&lt;br /&gt;
* Ziming Zheng, Zachary Rubenstein, and Andrew A. Chien, GVR-Enabled Trilinos: An Outside-In Approach for Resilient Computing, in the SIAM Conference on Parallel Processing, February 2014, Portland Oregon.&lt;br /&gt;
* Ziming Zheng, Andrew A. Chien, Mark Hoemmen, Keita Teranishi, &amp;quot;Fault Tolerance in an Inner-Outer Solver: a GVR-enabled Case Study&amp;quot;, available as Technical Report from University of Chicago Department of Computer Science, CS-TR-2014-01, January 2014.&lt;br /&gt;
* Guoming Lu, Ziming Zheng, and Andrew A. Chien, When are Multiple Checkpoints Needed?, in 3rd Workshop for Fault-tolerance at Extreme Scale (FTXS), at IEEE Conference on High Performance Distributed Computing, June 2013, New York, New York.&lt;br /&gt;
* Hajime Fujita, Robert Schreiber, Andrew A. Chien, It&#039;s Time for New Programming Models for Unreliable Hardware, to appear in  ASPLOS 2013 Provocative Ideas session, March 18, 2013.&lt;br /&gt;
* Sean Hogan, Jeff Hammond, and Andrew A. Chien, An Evaluation of Difference and Threshold Techniques for Efficient Checkpointing, 2nd Workshop on Fault-Tolerance at Extreme Scale FTXS 2012 at DSN 2012, June 2012, Boston, Massachusetts.&lt;/div&gt;</summary>
		<author><name>Pinfold</name></author>
	</entry>
</feed>