#

Build You a NumPy: From Dot-Products to Machine Code Workshop (University-Wide)

Programming is often a tradeoff between expressivity and control. Modern numerical and scientific programs often take a two-level approach, with high-level logic in a dynamic language like Python and low-level computational kernels in compiled languages such as C/C++, CUDA, or even FORTRAN. However, these workflows isolate researchers from machine operations, making custom numerical code that doesn’t fit neatly within vectorized APIs such as NumPy difficult to implement with good performance. This course shows how to quickly build NumPy-like computational kernels using a mixed Python/C++ build system from scratch. Along the way, we’ll cover various optimizations that are possible, such as contiguous-memory data structures and views, loop fusion, broadcasting, data locality, and shared-memory parallelism. Finally, we’ll use this framework to build a solver for a nonlinear diffusion problem.

This is a virtual event on Zoom, and attendees should have access to a laptop or desktop.

Audience: University-wide
Software Version: To follow along with the implementation, you need a Python 3 installation with NumPy inside a Conda environment, and a C++ compiler (such as Clang or GCC, very often present by default)
Pre-Requisites: Basic exposure to programming in Python, and continuous mathematics (linear algebra/calculus) would be helpful
Cost: None

SIGN UP HERE (Harvard Training Portal)

The event is finished.

Date

Apr 05 2022
Expired!

Time

11:00 am - 1:00 pm
Category
QR Code