Skip to main content
Ctrl
+
K
Intro
About myself
Motivation
What we’re not covering today
What we will be addressing
Theory
Chaos and Fractals
The man behind it: Benoit Mandelbrot
The Mandelbrot Set
Unpredictable outcome
Bifurcation and Chaos
Extending the idea to the complex plane
A 3D visualization of bifurcation
Naive implementations
Current state
A basic implementation
Wrapping the core calculation into a function
Wrapping all calculations into a function
Naively benefitting from symmetry
Floating point precision issues
Correctly benefitting from symmetry
Running benchmarks
Actual benchmark results
Optimized implementations
Introduction
Using numpy
Iterating the whole 2D-array
Benchmark results
JIT
JIT? What is JIT
Using pypy
Using numba
Using numba on naive implementations
Using numba to create a kernel
Using Jax
Jax code
Benchmark results
Out of core implementations
Out of core implementations - Introduction
Preparations
Use of multiprocessing
multiprocessing code
Concurrent Futures
Using pytorch
pytorch code
Benchmark results
Running calculations on the gpu
Introduction
Using cupy
cupy code
Using numba (again)
Using numba - the code
Using Pytorch (again)
Benchmark results
A distributed approach
Using dask
Using dask on the local machine
Preparing a cluster of machines
Using a cluster of machines
The dask dashboard
Benchmark results
Summary
Tooling
Hardware
Local machine without GPU acceleration
Local machine with dedicated GPU for computing
A cluster for distributed computing is available
Q&A
Repository
Open issue
.md
.pdf
Out of core implementations
Out of core implementations
#