使用带有mpi4py的multiprocessing.pool的Python生成无法分配内存错误

使用带有mpi4py的multiprocessing.pool的Python生成无法分配内存错误,python,memory-leaks,multiprocessing,threadpool,mpi4py,Python,Memory Leaks,Multiprocessing,Threadpool,Mpi4py,我在一个计算机集群上工作,最近开始使用python并行编程 我目前的理解是:mpi4py有助于管理不同节点之间的工作,而多处理则管理节点核心中的工作 我根据运行的进程数将一个大for循环划分为多个部分 comm.Get_size() = nprocs 然后尝试通过节点的cpu_计数生成一个进程池,然后为它们分配工作。代码如下: if rank == proc: global output_dictionary output_dict

我在一个计算机集群上工作,最近开始使用python并行编程

我目前的理解是:mpi4py有助于管理不同节点之间的工作,而多处理则管理节点核心中的工作

我根据运行的进程数将一个大for循环划分为多个部分

comm.Get_size() = nprocs
然后尝试通过节点的cpu_计数生成一个进程池,然后为它们分配工作。代码如下:

       if rank == proc:
            global output_dictionary
            output_dictionary = {}
            p=Pool(processes=cpu_count())                                                                                                     
            print "rank", rank, "started backpropagating. Async mapping..."
            results = []
            for key in serialize_and_divide(n_muscles,n_mn,rank,nprocs):
                r = p.apply_async(calc_neuronij_grad,key,callback=append_grads_list)
                results.append(r)
            for r in results:                                                                                                                     
                r.wait()                                                                                                                          
            p.close()
            p.join()
我的问题是,当代码到达p=Pool(processs=cpu\u count())时,它会生成错误“无法分配内存”。回溯与相同,但解决方案没有帮助

任何提示/帮助/解释都将不胜感激