import multiprocessing as mp
import time
import os
def square( nums , r , t1 ) :
print ( "square started at :" )
print ( "%.6f" % ( time .perf_counter ( ) -t1) )
for n in nums :
r.append ( n*n)
print ( "square endeded at :" )
print ( "%.6f" % ( time .perf_counter ( ) -t1) )
def cube ( nums , r , t1 ) :
#time.sleep(2)
print ( "cube started at :" )
print ( "%.6f" % ( time .perf_counter ( ) -t1) )
for n in nums :
r.append ( n*n*n)
print ( "cube endeded at :" )
print ( "%.6f" % ( time .perf_counter ( ) -t1) )
if __name__ == "__main__" :
numbers = range ( 1 , 1000000 )
results1 = [ ]
results2 = [ ]
t1 = time .perf_counter ( )
# With multiprocessing :
p1 = mp.Process ( target = square , args = ( numbers , results1 , t1) )
p2 = mp.Process ( target = cube , args = ( numbers , results2 , t1) )
p1.start ( )
#time.sleep(2)
p2.start ( )
p1.join ( )
print ( "After p1.join() :" )
print ( "%.6f" % ( time .perf_counter ( ) -t1) )
p2.join ( )
'''
# Without multiprocessing :
square(numbers , results1 ,t1)
cube(numbers , results2 , t1)
'''
print ( "square + cube :" )
print ( "%.6f" % ( time .perf_counter ( ) -t1) )
# your code goes here
aW1wb3J0IG11bHRpcHJvY2Vzc2luZyBhcyBtcAppbXBvcnQgdGltZQppbXBvcnQgb3MKCmRlZiBzcXVhcmUoIG51bXMgLCByICwgdDEgKSA6CiAgICBwcmludCAoInNxdWFyZSBzdGFydGVkIGF0IDoiKQogICAgcHJpbnQgKCIlLjZmIiAlICh0aW1lLnBlcmZfY291bnRlcigpLXQxKSkKICAgIGZvciBuIGluIG51bXMgOgogICAgICAgIHIuYXBwZW5kKG4qbikKICAgIHByaW50ICgic3F1YXJlIGVuZGVkZWQgYXQgOiIpCiAgICBwcmludCAoIiUuNmYiICUgKHRpbWUucGVyZl9jb3VudGVyKCktdDEpKQoKZGVmIGN1YmUgKCBudW1zICwgciAsIHQxICkgOgogICAgI3RpbWUuc2xlZXAoMikKICAgIHByaW50ICgiY3ViZSBzdGFydGVkIGF0ICAgOiIpCiAgICBwcmludCAoIiUuNmYiICUgKHRpbWUucGVyZl9jb3VudGVyKCktdDEpKQogICAgZm9yIG4gaW4gbnVtcyA6CiAgICAgICAgci5hcHBlbmQobipuKm4pCiAgICBwcmludCAoImN1YmUgZW5kZWRlZCBhdCAgIDoiKQogICAgcHJpbnQgKCIlLjZmIiAlICh0aW1lLnBlcmZfY291bnRlcigpLXQxKSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iIDoKICAgIG51bWJlcnMgPSByYW5nZSgxLDEwMDAwMDApCiAgICByZXN1bHRzMSA9IFtdCiAgICByZXN1bHRzMiA9IFtdCiAgICB0MSA9IHRpbWUucGVyZl9jb3VudGVyKCkKCiAgICAjIFdpdGggbXVsdGlwcm9jZXNzaW5nIDoKICAgIHAxID0gbXAuUHJvY2Vzcyh0YXJnZXQgPSBzcXVhcmUgLCBhcmdzID0gKG51bWJlcnMgLCByZXN1bHRzMSAsIHQxKSkKICAgIHAyID0gbXAuUHJvY2Vzcyh0YXJnZXQgPSBjdWJlICAgLCBhcmdzID0gKG51bWJlcnMgLCByZXN1bHRzMiAsIHQxKSkKICAgIHAxLnN0YXJ0KCkKICAgICN0aW1lLnNsZWVwKDIpCiAgICBwMi5zdGFydCgpCiAgICBwMS5qb2luKCkKICAgIHByaW50ICgiQWZ0ZXIgcDEuam9pbigpICAgOiIpCiAgICBwcmludCAoIiUuNmYiICUgKHRpbWUucGVyZl9jb3VudGVyKCktdDEpKQogICAgcDIuam9pbigpCgogICAgJycnCiAgICAjIFdpdGhvdXQgbXVsdGlwcm9jZXNzaW5nIDoKICAgIHNxdWFyZShudW1iZXJzICwgcmVzdWx0czEgLHQxKQogICAgY3ViZShudW1iZXJzICwgcmVzdWx0czIgLCB0MSkKCiAgICAnJycKICAgIHByaW50ICgic3F1YXJlICsgY3ViZSA6IikKICAgIHByaW50ICgiJS42ZiIgJSAodGltZS5wZXJmX2NvdW50ZXIoKS10MSkpCiAgICAKICAgICMgeW91ciBjb2RlIGdvZXMgaGVyZQ==