I am implementing an algorithm that has a high execution time and I need to use all the cpu power for a part of the code that involves heavy processing. I have written it in the form of a function, but I have encountered problems in executing it as a multiprocessing.
<code>import multiprocessing as mp
import os
shape = (len(ta52))
g5 = np.zeros(shape)
shape = (5,len(ta52))
g6 = np.zeros(shape)
m=0
def test(ta52):
m=0
for i in ta52:
s11=[]
for j in s1:
s11.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s12=[]
for j in s2:
s12.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s13=[]
for j in s3:
s13.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s14=[]
for j in s4:
s14.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s15=[]
for j in s5:
s15.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
sp=min(s11)+min(s12)+min(s13)+min(s14)+min(s15)
g5[m]=sp
g6[0,m]=min(s11)
g6[1,m]=min(s12)
g6[2,m]=min(s13)
g6[3,m]=min(s14)
g6[4,m]=min(s15)
m=m+1
if __name__ == '__main__':
p = mp.Process(target=test)
p.start()
print('Waiting for mp_func to end')
p.join()
#print(g5)
stop = timeit.default_timer()
print('Time: ', stop - start)
</code>
<code>import multiprocessing as mp
import os
shape = (len(ta52))
g5 = np.zeros(shape)
shape = (5,len(ta52))
g6 = np.zeros(shape)
m=0
def test(ta52):
m=0
for i in ta52:
s11=[]
for j in s1:
s11.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s12=[]
for j in s2:
s12.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s13=[]
for j in s3:
s13.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s14=[]
for j in s4:
s14.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s15=[]
for j in s5:
s15.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
sp=min(s11)+min(s12)+min(s13)+min(s14)+min(s15)
g5[m]=sp
g6[0,m]=min(s11)
g6[1,m]=min(s12)
g6[2,m]=min(s13)
g6[3,m]=min(s14)
g6[4,m]=min(s15)
m=m+1
if __name__ == '__main__':
p = mp.Process(target=test)
p.start()
print('Waiting for mp_func to end')
p.join()
#print(g5)
stop = timeit.default_timer()
print('Time: ', stop - start)
</code>
import multiprocessing as mp
import os
shape = (len(ta52))
g5 = np.zeros(shape)
shape = (5,len(ta52))
g6 = np.zeros(shape)
m=0
def test(ta52):
m=0
for i in ta52:
s11=[]
for j in s1:
s11.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s12=[]
for j in s2:
s12.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s13=[]
for j in s3:
s13.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s14=[]
for j in s4:
s14.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
s15=[]
for j in s5:
s15.append(sum(c1!=c2 for c1,c2 in zip(i,j)))
sp=min(s11)+min(s12)+min(s13)+min(s14)+min(s15)
g5[m]=sp
g6[0,m]=min(s11)
g6[1,m]=min(s12)
g6[2,m]=min(s13)
g6[3,m]=min(s14)
g6[4,m]=min(s15)
m=m+1
if __name__ == '__main__':
p = mp.Process(target=test)
p.start()
print('Waiting for mp_func to end')
p.join()
#print(g5)
stop = timeit.default_timer()
print('Time: ', stop - start)
and result is:
Waiting for mp_func to end
Time: 0.17289580000000626
But my test function doesn’t run.
New contributor
morteza alizade babtangali is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.