Install
pip install joblib
การหา square root ด้วย Python
from math import sqrt li = [sqrt(i ** 2) for i in range(10)] print(li) # [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
ใช้ joblib
from math import sqrt from joblib import Parallel, delayed li = Parallel(n_jobs=2)(delayed(sqrt)(i**2) for i in range(10)) print(li) # [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
verbose: int, optional
The verbosity level: if non zero, progress messages are printed. Above 50, the output is sent to stdout. The frequency of the messages increases with the verbosity level. If it more than 10, all iterations are reported.
%python from math import sqrt from joblib import Parallel, delayed li = Parallel(n_jobs=2, verbose=100)(delayed(sqrt)(i**2) for i in range(10)) print(li) # [Parallel(n_jobs=2)]: Using backend LokyBackend with 2 concurrent workers. # [Parallel(n_jobs=2)]: Done 1 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 2 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 3 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 4 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 5 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 6 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 7 tasks | elapsed: 0.5s # [Parallel(n_jobs=2)]: Done 8 out of 10 | elapsed: 0.5s remaining: 0.1s # [Parallel(n_jobs=2)]: Done 10 out of 10 | elapsed: 0.5s remaining: 0.0s # [Parallel(n_jobs=2)]: Done 10 out of 10 | elapsed: 0.5s finished # [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
default backend
เป็น loky
เราสามารถเปลี่ยนเป็น threading
, multiprocessing
ได้
from math import sqrt from joblib import Parallel, delayed li = Parallel(n_jobs=2, verbose=100, backend='threading')(delayed(sqrt)(i**2) for i in range(10)) print(li)