0

以下のコードを実行するために並列 Python を使用しています。誰でもコードを修正できますか? これにより、入力リストの値が 20 を超えると「SORRY」が出力されます。これは、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()
4

1 に答える 1