Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kynan/euroscipy2014
Slides from my talk at the EuroSciPy conference 2014
https://github.com/kynan/euroscipy2014
fenics ffc firedrake pyop2 ufl
Last synced: 5 days ago
JSON representation
Slides from my talk at the EuroSciPy conference 2014
- Host: GitHub
- URL: https://github.com/kynan/euroscipy2014
- Owner: kynan
- Created: 2014-08-25T16:53:31.000Z (about 10 years ago)
- Default Branch: gh-pages
- Last Pushed: 2024-10-06T06:49:01.000Z (about 1 month ago)
- Last Synced: 2024-10-12T15:06:04.821Z (about 1 month ago)
- Topics: fenics, ffc, firedrake, pyop2, ufl
- Language: CSS
- Homepage: https://kynan.github.io/EuroSciPy2014
- Size: 149 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Firedrake: a High-level, Portable Finite Element Computation Framework
## https://firedrakeproject.org
## **Florian Rathgeber**1, Lawrence Mitchell1, David Ham1,2, Michael Lange3, Andrew McRae2, Fabio Luporini1, Gheorghe-teodor Bercea1, Paul Kelly1
1 Department of Computing, Imperial College London
2 Department of Mathematics, Imperial College London
3 Department of Earth Science & Engineering, Imperial College London]Slides from [my talk](https://www.euroscipy.org/2014/schedule/presentation/15/)
at the [EuroSciPy](https://www.euroscipy.org/2014/), Cambridge, UK,
August 29-30 2014: https://kynan.github.io/EuroSciPy2014### Abstract
In an ideal world, scientific applications are computationally
efficient, maintainable, composable and allow scientists to work very
productively. In this talk we demonstrate that these goals are
achievable for a specific application domain by choosing suitable
domain-specific abstractions implemented in Python that encapsulate
domain knowledge with a high degree of expressiveness.
We present a [Firedrake], a high-level Python framework for the portable
solution of partial differential equations on unstructured meshes with
the finite element method widely used in science and engineering.
[Firedrake] is built on top of [PyOP2], a domain-specific language
embedded in Python for parallel mesh-based computations. Finite element
local assembly operations execute the same computational kernel for
every element of the mesh and is therefore efficiently parallelisable.
[Firedrake] allows scientists to describe variational forms and
discretisations for finite element problems symbolically in a notation
very close to the maths using the Unified Form Language [UFL] from the
[FEniCS project]. Variational forms are translated into computational
kernels by the FEniCS Form Compiler [FFC]. Numerical linear algebra is
delegated to PETSc, leveraged via its petsc4py interface.
[PyOP2] abstracts away the performance-portable parallel execution of
these kernels on a range of hardware architectures, targeting multi-core
CPUs with OpenMP and GPUs and accelerators with PyCUDA and PyOpenCL and
distributed parallel computations with mpi4py. Backend-specific code
tailored to each specific computation is generated, just-in-time
compiled and efficiently scheduled for parallel execution at runtime.
Due to the composability of the [Firedrake] and [PyOP2] abstractions,
optimised implementations for different hardware architectures can be
automatically generated without any changes to a single high-level
source. Performance matches or exceeds what is realistically attainable
by hand-written code. Both projects are open source and developed at
Imperial College London.[PyOP2]: https://op2.github.io/PyOP2
[Firedrake]: https://firedrakeproject.org
[FEniCS project]: https://fenicsproject.org
[UFL]: https://bitbucket.org/fenics-project/ufl/
[FFC]: https://bitbucket.org/fenics-project/ffc/### Resources
* **[PyOP2](https://github.com/OP2/PyOP2)**
* *[PyOP2: A High-Level Framework for Performance-Portable Simulations on Unstructured Meshes](https://dx.doi.org/10.1109/SC.Companion.2012.134)*
Florian Rathgeber, Graham R. Markall, Lawrence Mitchell, Nicholas Loriant, David A. Ham, Carlo Bertolli, Paul H.J. Kelly,
WOLFHPC 2012
* *[Performance-Portable Finite Element Assembly Using PyOP2 and FEniCS](https://link.springer.com/chapter/10.1007/978-3-642-38750-0_21)*
Graham R. Markall, Florian Rathgeber, Lawrence Mitchell, Nicolas Loriant, Carlo Bertolli, David A. Ham, Paul H. J. Kelly ,
ISC 2013
* **[Firedrake](https://github.com/firedrakeproject/firedrake)**
* *[Cross-Loop Optimization of Arithmetic Intensity for Finite Element Local Assembly](https://dx.doi.org/10.1145/2687415)*
Fabio Luporini, Ana Lucia Varbanescu, Florian Rathgeber, Gheorghe-Teodor Bercea, J. Ramanujam, David A. Ham, Paul H. J. Kelly,
ACM Transactions on Architecture and Code Optimization, January 2015
* **[UFL](https://github.com/firedrakeproject/ufl)**
* **[FFC](https://github.com/firedrakeproject/ffc)**