我有一个带有多个单元的 IPython 笔记本,我想并行运行几次,只有一些参数不同(在笔记本单元的内部定义)。最简单的方法是什么?
我有一个 12 核的工作站。每当我运行笔记本时,它只使用其中一个内核。我想使用其他内核来运行完全相同的笔记本,但对某些参数进行了一些修改。可能吗?
非常感谢
我有一个带有多个单元的 IPython 笔记本,我想并行运行几次,只有一些参数不同(在笔记本单元的内部定义)。最简单的方法是什么?
我有一个 12 核的工作站。每当我运行笔记本时,它只使用其中一个内核。我想使用其他内核来运行完全相同的笔记本,但对某些参数进行了一些修改。可能吗?
非常感谢
然后我实际上找到了一种方法来做到这一点。
import multiprocessing
list_of_variables=something #a 2D numpy array with all your combinations of variable values,
#each row has a different combination of parameter values
number_of_combinations=shape(list_of_variables)[0] #number of rows
def notebook(i):
variables=list_of_variables[i,:]
#all your code here
pool = multiprocessing.Pool(processes=n) # Create a pool with n workers.
pool.map(notebook,range(number_of_combinations))
pool.close()
pool.join()
在上面的代码中,notebook 是一个 python 函数,它接收一个数字作为输入,获取此迭代的变量值并运行每个原始单元格。