多处理和保存输出

时间:2016-09-21 00:28:50

标签: python multiprocessing python-multiprocessing

我正在尝试计算多个数组的平方(56个大小为487x2074),它们分别保存在txt文件中,并将平方和保存在txt文件中。我会计算这些输出数组的平方和,时间跨度为30年(这意味着我将重复该步骤30次)。

现在,我想并行执行这些多进程并检查多处理示例,并提出如下想法:

def myfunction(q,year):
    betaSquaredSum = 0
    P = 56
    workingPath = os.getcwd()
    for i in xrange(1,P):

        betaPath= os.path.join(workingPath,"beta_"+str(i)+"_"+str(year)+".txt")
        betaArray = np.loadtxt(betaPath,dtype=float)
        betaSquared = betaArray*betaArray
        betaSquaredSum += betaSquared


     result = betaSquaredSum
     np.savetxt(str(workingPath)+"\variance_"+str(year)+".txt", result,
                delimiter= " ")
     q.put(year)


if __name__ == '__main__' :
    start = time.time()
    print strftime("%a, %d %b %Y %H:%M:%S \n", localtime())

    for year in range(1999,2010):
        q = Queue()
        p = Process(target = myfunction,args=(q,year,))
        p.start()
        p.join()


    end = time.time()
    print strftime("%a, %d %b %Y %H:%M:%S \n", localtime())
    print("Elapsed time in seconds: " +str(end-start))

我无法找到代码中的错误,但它没有生成输出文件。

0 个答案:

没有答案