I am using parallel Python for running the code below. Could any one correct the code? This should print "SORRY" for the values more than 20 in the inputs list. This is still working for values more than 20.
#http://www.parallelpython.com/
import sys,time,pp
import numpy
n=int(raw_input("Enter the value of n: "))
#Enter any integer value
#Define is_low function as a filter
def is_low(n):
if n < 20:
return True
if n > 20:
return False
def task(n):
return (numpy.arange(n))
def expansion(n):
if is_low(n)==True:
return (task(n))
if is_low(n)==False:
print "SORRY"
ppservers=()
if len(sys.argv) > 1:
ncpus = int(sys.argv[1])
job_server = pp.Server(ncpus, ppservers=ppservers)
else:
job_server = pp.Server(ppservers=ppservers)
print job_server.get_ncpus()
job1=job_server.submit(task,(n,),(is_low,expansion,),("numpy","sys",))
result=job1()
print result
ppservers = ()
if len(sys.argv) > 1:
ncpus = int(sys.argv[1])
job_server = pp.Server(ncpus, ppservers=ppservers)
else:
job_server = pp.Server(ppservers=ppservers)
print "Starting pp with", job_server.get_ncpus(), "workers"
start_time = time.time()
inputs = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,22,23,24,25,26)
jobs = [(input, job_server.submit(task,(input,),(expansion,is_low,), ("numpy","sys","time",))) for input in inputs]
for input, job in jobs:
print "Expansion for the below",input,"is",job()
print "Time elapsed: ", time.time() - start_time, "s"
job_server.print_stats()