我正在尝试在 python 中构建多处理以降低计算速度,但似乎在多处理之后,整体计算速度显着下降。我创建了 4 个不同的进程并将数据帧拆分为 4 个不同的数据帧,这将是每个进程的输入。在对每个流程进行计时之后,似乎间接费用成本很高,并且想知道是否有办法降低这些间接费用。
我正在使用 windows7,python 3.5,我的机器有 8 个内核。
def doSomething(args, dataPassed,):
processing data, and calculating outputs
def parallelize_dataframe(df, nestedApply):
df_split = np.array_split(df, 4)
pool = multiprocessing.Pool(4)
df = pool.map(nestedApply, df_split)
print ('finished with Simulation')
time = float((dt.datetime.now() - startTime).total_seconds())
pool.close()
pool.join()
def nestedApply(df):
func2 = partial(doSomething, args=())
res = df.apply(func2, axis=1)
res = [output Tables]
return res
if __name__ == '__main__':
data = pd.read_sql_query(query, conn)
parallelize_dataframe(data, nestedApply)