Skip to content

raui100/cookbook_python_multithreading

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cookbook: Python acceleration and multithreading

Examples on how to accelerate Python via vectorization, multithreading, cross-compilation or FFI. Demonstration of having an expensive calculation for a few objects.

# Building the Rust dependency
maturin develop --release

Benchmark results

Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz with 16 GB RAM

Timing the numba one-time compilation cost
	[WARMUP: Numba single-processing] finished in 337 ms
	[WARMUP: Numba multi-processing] finished in 13 ms
	[WARMUP: Numba&Numpy single-processing] finished in 9 ms
	[WARMUP: Numba&Numpy multi-processing] finished in 16 ms
Timing for size=10
	[Pure Python single-processing] finished in 5 ms
	[Pure Python multi-processing with workers] finished in 26 ms
	[Numpy single-processing] finished in 1 ms
	[Numpy multi-processing] finished in 1 ms
	[Numba single-processing] finished in 0 ms
	[Numba multi-processing] finished in 5 ms
	[Numba&Numpy single-processing] finished in 0 ms
	[Numba&Numpy multi-processing] finished in 4 ms
	[Rust multi-processing] finished in 0 ms
Timing for size=100
	[Pure Python single-processing] finished in 47 ms
	[Pure Python multi-processing with workers] finished in 40 ms
	[Numpy single-processing] finished in 13 ms
	[Numpy multi-processing] finished in 13 ms
	[Numba single-processing] finished in 1 ms
	[Numba multi-processing] finished in 6 ms
	[Numba&Numpy single-processing] finished in 0 ms
	[Numba&Numpy multi-processing] finished in 6 ms
	[Rust multi-processing] finished in 0 ms
Timing for size=1000
	[Pure Python single-processing] finished in 473 ms
	[Pure Python multi-processing with workers] finished in 198 ms
	[Numpy single-processing] finished in 129 ms
	[Numpy multi-processing] finished in 133 ms
	[Numba single-processing] finished in 7 ms
	[Numba multi-processing] finished in 11 ms
	[Numba&Numpy single-processing] finished in 7 ms
	[Numba&Numpy multi-processing] finished in 9 ms
	[Rust multi-processing] finished in 1 ms
Timing for size=10000
	[Pure Python multi-processing with workers] finished in 1739 ms
	[Numpy single-processing] finished in 1434 ms
	[Numpy multi-processing] finished in 1399 ms
	[Numba single-processing] finished in 72 ms
	[Numba multi-processing] finished in 63 ms
	[Numba&Numpy single-processing] finished in 71 ms
	[Numba&Numpy multi-processing] finished in 48 ms
	[Rust multi-processing] finished in 16 ms
Timing for size=100000
	[Numba single-processing] finished in 732 ms
	[Numba multi-processing] finished in 417 ms
	[Numba&Numpy single-processing] finished in 711 ms
	[Numba&Numpy multi-processing] finished in 403 ms
	[Rust multi-processing] finished in 158 ms

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published