import numpy as np
from multiprocessing import Pool
import time
from mafonction import func1
nbThread=8
nbCalculs=600
def func2(n, parallel=False):
"""Cacul le resultat de func1 pour des valeurs de 1 à n parallélement ou non"""
my_array = np.zeros((n))
if parallel:
pool = Pool(processes=nbThread)
results = [pool.apply_async(func1, [val]) for val in range(1, n+1)]
for idx, val in enumerate(results):
my_array[idx] = val.get()
pool.close()
else:
for i in range(1, n+1):
my_array[i-1] = func1(i)
return my_array
def main():
start = time.time()
my_array = func2(nbCalculs)
end = time.time()
print("Normal time: {}\n".format(end-start))
start_parallel = time.time()
my_array_parallelized = func2(nbCalculs, parallel=True)
end_parallel = time.time()
print("Time based on multiprocessing: {}".format(end_parallel-start_parallel))
if __name__ == '__main__':
main()