Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Navjot Kukreja is active.

Publication


Featured researches published by Navjot Kukreja.


ieee international conference on high performance computing data and analytics | 2016

Devito: automated fast finite difference computation

Navjot Kukreja; Mathias Louboutin; Felippe Vieira; Fabio Luporini; Gerard J. Gorman

Domain specific languages have successfully been used in a variety of fields to cleanly express scientific problems as well as to simplify implementation and performance optimization on different computer architectures. Although a large number of stencil languages are available, finite difference domain specific languages have proved challenging to design because most practical use cases require additional features that fall outside the finite difference abstraction. Inspired by the complexity of real-world seismic imaging problems, we introduce Devito, a domain specific language in which high level equations are expressed using symbolic expressions from the SymPy package. Complex equations are automatically manipulated, optimized, and translated into highly optimized C code that aims to perform comparably or better than hand-tuned code. All this is transparent to users, who only see concise symbolic mathematical expressions.


Proceedings of the First International Workshop on Software Correctness for HPC Applications | 2017

Towards Self-Verification in Finite Difference Code Generation

Jan Hückelheim; Ziqing Luo; Fabio Luporini; Navjot Kukreja; Gerard J. Gorman; Stephen F. Siegel; Matthew B. Dwyer; Paul D. Hovland

Code generation from domain-specific languages is becoming increasingly popular as a method to obtain optimised low-level code that performs well on a given platform and for a given problem instance. Ensuring the correctness of generated codes is crucial. At the same time, testing or manual inspection of the code is problematic, as the generated code can be complex and hard to read. Moreover, the generated code may change depending on the problem type, domain size, or target platform, making conventional code review or testing methods impractical. As a solution, we propose the integration of formal verification tools into the code generation process. We present a case study in which the CIVL verification tool is combined with the Devito finite difference framework that generates optimised stencil code for PDE solvers from symbolic equations. We show a selection of properties of the generated code that can be automatically specified and verified during the code generation process. Our approach allowed us to detect a previously unknown bug in the Devito code generation tool.


Computers & Geosciences | 2017

Performance prediction of finite-difference solvers for different computer architectures

Mathias Louboutin; Felix J. Herrmann; Navjot Kukreja; Gerard J. Gorman

Abstract The life-cycle of a partial differential equation (PDE) solver is often characterized by three development phases: the development of a stable numerical discretization; development of a correct (verified) implementation; and the optimization of the implementation for different computer architectures. Often it is only after significant time and effort has been invested that the performance bottlenecks of a PDE solver are fully understood, and the precise details varies between different computer architectures. One way to mitigate this issue is to establish a reliable performance model that allows a numerical analyst to make reliable predictions of how well a numerical method would perform on a given computer architecture, before embarking upon potentially long and expensive implementation and optimization phases. The availability of a reliable performance model also saves developer effort as it both informs the developer on what kind of optimisations are beneficial, and when the maximum expected performance has been reached and optimisation work should stop. We show how discretization of a wave-equation can be theoretically studied to understand the performance limitations of the method on modern computer architectures. We focus on the roofline model, now broadly used in the high-performance computing community, which considers the achievable performance in terms of the peak memory bandwidth and peak floating point performance of a computer with respect to algorithmic choices. A first principles analysis of operational intensity for key time-stepping finite-difference algorithms is presented. With this information available at the time of algorithm design, the expected performance on target computer systems can be used as a driver for algorithm design.


Geoscientific Model Development Discussions | 2018

Devito (v3.1.0): an embedded domain-specific language for finitedifferences and geophysical exploration

Mathias Louboutin; Michael Lange; Fabio Luporini; Navjot Kukreja; Philipp A. Witte; Felix J. Herrmann; Paulius Velesko; Gerard J. Gorman

We introduce Devito, a new domain-specific language for implementing high-performance finite difference partial differential equation solvers. The motivating application is exploration seismology where methods such as Full-Waveform Inversion and Reverse-Time Migration are used to invert terabytes of seismic data to create images of the earths subsurface. Even using modern supercomputers, it can take weeks to process a single seismic survey and create a useful subsurface image. The computational cost is dominated by the numerical solution of wave equations and their corresponding adjoints. Therefore, a great deal of effort is invested in aggressively optimizing the performance of these wave-equation propagators for different computer architectures. Additionally, the actual set of partial differential equations being solved and their numerical discretization is under constant innovation as increasingly realistic representations of the physics are developed, further ratcheting up the cost of practical solvers. By embedding a domain-specific language within Python and making heavy use of SymPy, a symbolic mathematics library, we make it possible to develop finite difference simulators quickly using a syntax that strongly resembles the mathematics. The Devito compiler reads this code and applies a wide range of analysis to generate highly optimized and parallel code. This approach can reduce the development time of a verified and optimized solver from months to days.


ieee international conference on high performance computing data and analytics | 2017

Rapid Development of Seismic Imaging Applications Using Symbolic Math

Navjot Kukreja; Mathias Louboutin; Fabio Luporini; Gerard J. Gorman

Summary In this talk, I will discuss our approach to the formulation and the performance optimization of finite difference methods for PDEs arising in FWI. Our framework consists of a stack of domain specific languages and optimizing compilers. The mathematical specification of a finite difference method is translated by a compiler, Devito, into C code, applying a sophisticated sequence of transformations. These include standard loop transformations, such as blocking and vectorization, as well as symbolic manipulations to reduce the unusually high arithmetic intensity of the stencils arising in forward and adjoint operators. These include common subexpressions elimination, factorization, code motion and approximation of transient functions. I will show the impact of these transformations on standard Intel Xeon architectures as well as on Intel Knights Landing. Compelling evidence points in the direction that our stencil kernels are significantly bound by the L1 cache. I will conclude discussing future challenges and goals of our work.


Geophysics | 2017

Full-waveform inversion, Part 1: Forward modeling

Mathias Louboutin; Philipp Witte; Navjot Kukreja; Fabio Luporini; Gerard J. Gorman; Felix J. Herrmann


Proceedings of the 16th Python in Science Conference | 2017

Optimised finite difference computation from symbolic equations

Navjot Kukreja; Fabio Luporini; Mathias Louboutin; Charles Yount; Jan Hückelheim; Gerard J. Gorman


arXiv: Mathematical Software | 2016

Devito: towards a generic finite difference DSL using symbolic Python

Navjot Kukreja; Mathias Louboutin; Fabio Luporini; Felippe Vieira; Vincenzo Pandolfo; Paulius Velesko; Paulius Kazakas; Gerard J. Gorman


Geophysics | 2018

Full-waveform inversion, Part 2: Adjoint modeling

Mathias Louboutin; Philipp Witte; Navjot Kukreja; Fabio Luporini; Gerard J. Gorman; Felix J. Herrmann


Geophysics | 2018

Full-waveform inversion, Part 3: Optimization

Philipp Witte; Mathias Louboutin; Keegan Lensink; Navjot Kukreja; Fabio Luporini; Gerard J. Gorman; Felix J. Herrmann

Collaboration


Dive into the Navjot Kukreja's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mathias Louboutin

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Felix J. Herrmann

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Philipp Witte

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar

Paul D. Hovland

Argonne National Laboratory

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael Lange

European Centre for Medium-Range Weather Forecasts

View shared research outputs
Researchain Logo
Decentralizing Knowledge