In the following example numbers are tested whether they are prime.
The function main_map_mp()
uses the module multiprocessing.
The output shows that muliprocessing overtakes sequential
processing somewhere between 1000 and 10000.
#!/usr/bin/env python import multiprocessing import time import math def isPrime( x): last = int(math.ceil( math.sqrt( x))) + 1 if int(x) == 2: return True for i in range( 2, last): if int(x) % i == 0: return False return True def main_map_mp(): startTime = time.time() numbers = range(1, MAX) p = multiprocessing.Pool(multiprocessing.cpu_count()) lst = zip( numbers,p.map(isPrime, numbers)) print( "main_map_mp: time used %g" % (time.time() - startTime)) def main_map(): startTime = time.time() numbers = range(1, MAX) lst = zip( numbers,map(isPrime, numbers)) print( "main_map: time used %g" % (time.time() - startTime)) if __name__ == "__main__": MAX = 100 print( "MAX", MAX) main_map_mp() main_map() MAX = 1000 print( "MAX", MAX) main_map_mp() main_map() MAX = 10000 print( "MAX", MAX) main_map_mp() main_map() Output: MAX 100 main_map_mp: time used 0.0133471 main_map: time used 0.000174046 MAX 1000 main_map_mp: time used 0.00520396 main_map: time used 0.00217819 MAX 10000 main_map_mp: time used 0.0190139 main_map: time used 0.0353339