研究并行编程python
我想为LISTE,r,grid,pos[I,:],h进程创建一个池,我在pos中,它在不同的文件中是变量,这个文件是ndarray[],我必须在一个While循环之间的另一个文件中调用整个函数。但是这个代码给出了错误,如果我使用 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 它将不会通过if uuu name uuuu=='uuuuu main uuuuuuu':模块下方研究并行编程python,python,parallel-processing,multiprocessing,Python,Parallel Processing,Multiprocessing,我想为LISTE,r,grid,pos[I,:],h进程创建一个池,我在pos中,它在不同的文件中是变量,这个文件是ndarray[],我必须在一个While循环之间的另一个文件中调用整个函数。但是这个代码给出了错误,如果我使用 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 它将不会通过if uuu name uuuu=='uuuuu main uuuuuuu':模块下方 请告诉我怎么做,我还是有点难以理解你的问题。但我认为这就是你想要的: 您希望能够调
请告诉我怎么做,我还是有点难以理解你的问题。但我认为这就是你想要的: 您希望能够调用一个函数,该函数在给定r、grid、pos、h的情况下创建一个池。在pos上迭代,将其馈送到池中,然后返回结果。您还希望能够从不同的模块访问该功能。如果这是你的要求,你可以这样做: async_module.py:
这个:因为我在位置[-1]因为我在位置[-1]可能我遗漏了什么。。。不是pos[-1]不是pos[-1]谢谢dano的回答..仍然没有得到令人满意的结果。我可以拥有你的电子邮件id以便我可以发送整个代码给你以获得更好的主意..或者dhruvalraval@ymail.com只是在这个id上打电话给我。。
import multiprocessing
from multiprocessing import Pool
from source.RUN import*
def func(r,grid,pos,h):
return r,grid,pos,h
p = multiprocessing.Pool() # Creates a pool with as many workers as you have CPU cores
results = []
if __name__ == '__main__':
for i in pos[-1]<2:
results.append(Pool.apply_async(LISTE,(r,grid,pos[i,:],h)))
p.close()
p.join()
for result in results:
print('liste', result.get())
from multiprocessing import Pool
# Not sure where the LISTE function gets defined, but it needs to be in here.
def do_LISTE(*args):
# args is a tuple containing (r, grid, pos[i, :], h)
# we use tuple expansion (*args( to send each parameter to LISTE
return LISTE(*args)
def async_process(r,grid,pos,h):
return r,grid,pos,h
p = multiprocessing.Pool() # Creates a pool with as many workers as you have CPU cores
results = p.map(do_LISTE, [(r,grid,pos[i,:], h) for i in pos[-1]<2])
p.close()
p.join()
return results
from async_module import async_process
def do_async_processing():
r = "something"
grid = get_grid()
pos = get_pos()
h = 345
results = async_process(r, grid, pos, h)
if __name__ == "__main__":
do_async_processing() # Make sure the entry point is protected by `if __name__ == "__main__":`.