как распределить элементы массива между некоторыми ядрами путем многопроцессорности - PullRequest
0 голосов
/ 16 июня 2020

У меня есть несколько массивов в python, и я хочу использовать их для многократной обработки. например, я хочу передать a[i],b[i],T[i] функции в качестве параметров, но они будут исправлены, и я просто хочу их прочитать. В результате должно получиться 3 массива точно таких же входных массивов. N - это размер массивов, и они одинакового размера. Я хочу, чтобы каждое ядро ​​запускало Stimation_Function на одном элементе этих массивов. Как мне это сделать? Я использовал следующий код, но знаю, что это неправда.

def Stimation_Function(m,a,b,T,PL,PU):
  stimated_a=a
  stimated_b=b
  stimated_T=T
  return(stimated_a,stimated_b,stimated_T)


a=np.load(directory+'a.npy')
b=np.load(directory+'b.npy')
T=np.load(directory+'T.npy')

if __name__ == '__main__':         
        __spec__ = "ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>)"       
        start = time.time()


        with Pool(processes=8) as pool:
            import functools

            partial_gp = functools.partial(Stimation_Function,a=a[i],b=b[i],T=T[i],PL=PL,PU=PU for i in range(N))
            result = pool.map(partial_gp, range(N))
...