multiprocessing in python code example
Example 1: python multiprocessing
import multiprocessing
def worker1(i):
print(i, "Process started")
def worker2(i):
print(i, "Process started")
if __name__ == '__main__':
p = multiprocessing.Process(target=worker1, args("nice",))
q = multiprocessing.Process(target=worker2, args("nice2",))
q.start()
p.start()
Example 2: multiprocessing python
"""A very simple parallel code example to execute parallel functions in python"""
import multiprocessing
import numpy as np
def multiprocessing_func(x):
"""Individually prints the squares y_i of the elements x_i of a vector x"""
for x_i in x:
y=x_i**2
print('The square of ',x_i,' is ',y)
def chunks(input, n):
"""Yields successive n-sized chunks of input"""
for i in range(0, len(input), n):
yield input[i:i + n]
if __name__=='__main__':
n_proc=4
x=np.arange(100)
chunked_x=list(chunks(x, int(x.shape[0]/n_proc)+1))
processes=[]
for i in np.arange(0,n_proc):
"""Execute the target function on the n_proc target processors using the splitted input"""
p = multiprocessing.Process(target=multiprocessing_func,args=(chunked_x[i],))
processes.append(p)
p.start()
for process in processes:
process.join()
Example 3: multiprocessing join python
from multiprocessing import Process
def say_hello(name='world'):
print "Hello, %s" % name
p = Process(target=say_hello)
p.start()
p.join()
Example 4: worker pool model with multiprocessing
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
with Pool(5) as p:
print(p.map(f, [1, 2, 3]))
Example 5: python multiprocessing
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
with Pool(5) as p:
print(p.map(f, [1, 2, 3]))
Example 6: python - multiprocessing
import time
from multiprocessing import Process
def my_func_1():...
def my_func_2():...
start = time.time()
my_func_1()
my_func_2()
print(f'Single thread total time: {time.time() - start}')
process = Process(target=my_func_1)
process2 = Process(target=my_func_2)
process.start()
process2.start()
start = time.time()
process.join()
process2.join()
print(f'Two thread total time: {time.time() - start}')