1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| from multiprocessing import Pool
... (le début pris dans le code de tyrtamos...)
if __name__ == '__main__':
# génère des nombres aléatoires
nombres=tuple(randint(100, 10**15-1) for i in range(0, 1000))
print(nombres)
print()
# calcul normal dans une boucle
tps = perf_counter()
resultat=tuple((n, isPremier(n)) for n in nombres)
tps = perf_counter()-tps
#print(tuple((n, r) for (n, r) in resultat if r))
print("base: ", tps)
print()
# calcul utilisant concurrent.futures
tps = perf_counter()
resultat = []
with concurrent.futures.ProcessPoolExecutor() as executor:
resultat=tuple((n, r) for (n, r) in zip(nombres, executor.map(isPremier, nombres)))
tps = perf_counter()-tps
#print(tuple((n, r) for (n, r) in resultat if r))
print("concurrent:", tps)
print()
# calcul utilisant multiprocessing
tps = perf_counter()
resultat = []
with Pool(4) as p:
resultat=tuple((n, r) for (n, r) in zip(nombres, p.map(isPremier, nombres)))
tps = perf_counter()-tps
#print(tuple((n, r) for (n, r) in resultat if r))
print("pool:", tps) |
Partager