Parallel Programming with SciPy
SciPy is a popular Python library for scientific and mathematical calculations. It provides many powerful tools for data analysis and signal processing optimization. In such cases, you can use external libraries and tools to run concurrently in SciPy
Parallelizing a simple map or reducing operation using SciPy’s ‘dask‘ module
At first, we imported the Numpy and Dask using Import Numpy as np and Import dask.array as da. Then we created a random array of size 10000 and chunks of size 1000 and assign it to the x. Then we created an operation and assign it to y.
Print the result.
Python3
import numpy as np import dask.array as da x = da.random.normal(size = ( 10000 , 10000 ), chunks = ( 1000 , 1000 )) y = (x + x.T) - x.mean(axis = 0 ) result = y. sum () print (result.compute()) |
Output: -10909.686111782875
Parallelizing a numerical integration using SciPy’s ‘quad‘ function and the ‘multiprocessing’ module
At first, we imported SciPy and multiprocessing using Import integrate form SciPy and Import multiprocessing. We have created a function using F(x) which calculates the square of the number. Then we created the pool worker and assign it to the result.
Python3
from scipy import integrate import multiprocessing def f(x): return x * * 2 pool = multiprocessing.Pool(processes = 4 ) result = integrate.quad(f, 0 , 1 ) print (result[ 0 ]) |
Output: 0.33333333333333337
Parallel Programming with NumPy and SciPy
Parallel computing is a type of computation in which many calculations or the execution of processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time.
Required Modules:
pip install scipy pip install numpy pip install cupy