PyExaFMM: an exercise in designing high-performance software with Python and Numba

03/15/2023
by   Srinath Kailasa, et al.
0

Numba is a game-changing compiler for high-performance computing with Python. It produces machine code that runs outside of the single-threaded Python interpreter and that fully utilizes the resources of modern CPUs. This means support for parallel multithreading and auto vectorization if available, as with compiled languages such as C++ or Fortran. In this article we document our experience developing PyExaFMM, a multithreaded Numba implementation of the Fast Multipole Method, an algorithm with a non-linear data structure and a large amount of data organization. We find that designing performant Numba code for complex algorithms can be as challenging as writing in a compiled language.

READ FULL TEXT
research
12/11/2010

On the Implementation of GNU Prolog

GNU Prolog is a general-purpose implementation of the Prolog language, w...
research
10/17/2018

Asynchronous Execution of Python Code on Task Based Runtime Systems

Despite advancements in the areas of parallel and distributed computing,...
research
07/01/2021

Productivity, Portability, Performance: Data-Centric Python

Python has become the de facto language for scientific computing. Progra...
research
06/27/2012

Utilizing Static Analysis and Code Generation to Accelerate Neural Networks

As datasets continue to grow, neural network (NN) applications are becom...
research
01/08/2020

Comparing Python, Go, and C++ on the N-Queens Problem

Python currently is the dominant language in the field of Machine Learni...
research
02/07/2023

Landscape of High-performance Python to Develop Data Science and Machine Learning Applications

Python has become the prime language for application development in the ...
research
05/05/2021

ADAM: A Sandbox for Implementing Language Learning

We present ADAM, a software system for designing and running child langu...

Please sign up or login with your details

Forgot password? Click here to reset