Applying the Polyhedral Model to Tile Time Loops in Devito

06/30/2017
by   Dylan McCormick, et al.
0

The run time of many scientific computation applications for numerical methods is heavily dependent on just a few multi-dimensional loop nests. Since these applications are often limited by memory bandwidth rather than computational resources they can benefit greatly from any optimizations which decrease the run time of their loops by improving data reuse and thus reducing the total memory traffic. Some of the most effective of these optimizations are not suitable for development by hand or require advanced software engineering knowledge which is beyond the level of many researchers who are not specialists in code optimization. Several tools exist to automate the generation of high-performance code for numerical methods, such as Devito which produces code for finite-difference approximations typically used in the seismic imaging domain. We present a loop-tiling optimization which can be applied to Devito-generated loops and improves run time by up to 27.5 automating this optimization in the Devito framework.

READ FULL TEXT

page 1

page 37

page 39

research
06/07/2019

Towards Run Time Estimation of the Gaussian Chemistry Code for SEAGrid Science Gateway

Accurate estimation of the run time of computational codes has a number ...
research
04/03/2017

Loop Tiling in Large-Scale Stencil Codes at Run-time with OPS

The key common bottleneck in most stencil codes is data movement, and pr...
research
02/17/2021

Performance Optimizations of Recursive Electronic Structure Solvers targeting Multi-Core Architectures (LA-UR-20-26665)

As we rapidly approach the frontiers of ultra large computing resources,...
research
09/09/2020

Time-Based Roofline for Deep Learning Performance Analysis

Deep learning applications are usually very compute-intensive and requir...
research
10/23/2016

Hybrid Static/Dynamic Schedules for Tiled Polyhedral Programs

Polyhedral compilers perform optimizations such as tiling and paralleliz...
research
02/20/2020

LibrettOS: A Dynamically Adaptable Multiserver-Library OS

We present LibrettOS, an OS design that fuses two paradigms to simultane...
research
01/10/2018

To Pool or Not To Pool? Revisiting an Old Pattern

We revisit the well-known object-pool design pattern in Java. In the las...

Please sign up or login with your details

Forgot password? Click here to reset