我试图尽可能快地对巨大的numpy数组进行一些计算。
为了做到这一点,我尝试threading
,但它没有使用所有可用的CPU。所以我尝试使用multiprocessing
,但因为过程I之间没有共享记忆,所以想知道它是否可能:
我尝试过以下代码:
class Worker(multiprocessing.Process):
def __init__(self, csv_path):
self.matrix = pd.read_csv(self.csv_path).as_matrix()
def matrix_count_worker(rule):
return np.nansum(self.matrix[eval(rule), :], axis=0)
但是我想开始我的流程并让他们保持活跃。所以首先是.start()
。但是,我希望能够根据需要多次调用matrix_count_worker
,而self.matrix
会在内存中保持加载状态。
有可能实现吗?