<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM17Kelly</id>
	<title>WG211/M17Kelly - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM17Kelly"/>
	<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M17Kelly&amp;action=history"/>
	<updated>2026-04-06T01:04:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>http://mw.hh.se/wg211/index.php?title=WG211/M17Kelly&amp;diff=1681&amp;oldid=prev</id>
		<title>Paul: Domain-specific optimisation of finite-element integration loops – and what we learned</title>
		<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M17Kelly&amp;diff=1681&amp;oldid=prev"/>
		<updated>2017-07-16T00:29:13Z</updated>

		<summary type="html">&lt;p&gt;Domain-specific optimisation of finite-element integration loops – and what we learned&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:29, 16 July 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The key Firedrake paper is: Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini, Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly. &amp;#039;&amp;#039;Firedrake: automating the finite element method by composing abstractions&amp;#039;&amp;#039;. ACM Trans. Math. Softw., 43(3):24:1–24:27, 2016. URL: [http://arxiv.org/abs/1501.01809].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The key Firedrake paper is: Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini, Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly. &amp;#039;&amp;#039;Firedrake: automating the finite element method by composing abstractions&amp;#039;&amp;#039;. ACM Trans. Math. Softw., 43(3):24:1–24:27, 2016. URL: [http://arxiv.org/abs/1501.01809].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More specifically, see Fabio Luporini, David A. Ham, and Paul H. J. Kelly. An algorithm for the optimization of finite element integration loops. ACM Transactions on Mathematical Software, 44(1):3:1–3:26, 2017. URL: [https://arxiv.org/abs/1604.05872].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More specifically, see Fabio Luporini, David A. Ham, and Paul H. J. Kelly. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;An algorithm for the optimization of finite element integration loops&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;. ACM Transactions on Mathematical Software, 44(1):3:1–3:26, 2017. URL: [https://arxiv.org/abs/1604.05872].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Paul</name></author>
	</entry>
	<entry>
		<id>http://mw.hh.se/wg211/index.php?title=WG211/M17Kelly&amp;diff=1680&amp;oldid=prev</id>
		<title>Paul: Domain-specific optimisation of finite-element integration loops – and what we learned</title>
		<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M17Kelly&amp;diff=1680&amp;oldid=prev"/>
		<updated>2017-07-16T00:28:03Z</updated>

		<summary type="html">&lt;p&gt;Domain-specific optimisation of finite-element integration loops – and what we learned&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Title: &amp;#039;&amp;#039;&amp;#039;Domain-specific optimisation of finite-element integration loops – and what we learned&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Abstract:&lt;br /&gt;
&lt;br /&gt;
Firedrake is a program generator that automates the finite element method for solving partial differential equations (PDEs).  It has a growing community of users, particularly in geophysical flows, for weather, climate and tidal energy.  Firedrake implements a domain-specific language (UFL, from the FEniCS Project), which represents the (weak form of the) PDE.  It generates efficient code to run on your laptop or supercomputer.  Firedrake is entirely written in Python, generating C at runtime using a number of optimisations that would be very challenging to implement by hand.  This talk is a reflection on some of our experience in building Firedrake, with a specific dive into its strategy for minimising FLOPs in the local integration loop nests executed at each element of the mesh.  &lt;br /&gt;
&lt;br /&gt;
The key Firedrake paper is: Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini, Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly. &amp;#039;&amp;#039;Firedrake: automating the finite element method by composing abstractions&amp;#039;&amp;#039;. ACM Trans. Math. Softw., 43(3):24:1–24:27, 2016. URL: [http://arxiv.org/abs/1501.01809].&lt;br /&gt;
&lt;br /&gt;
More specifically, see Fabio Luporini, David A. Ham, and Paul H. J. Kelly. An algorithm for the optimization of finite element integration loops. ACM Transactions on Mathematical Software, 44(1):3:1–3:26, 2017. URL: [https://arxiv.org/abs/1604.05872].&lt;/div&gt;</summary>
		<author><name>Paul</name></author>
	</entry>
</feed>