同步ProcessPoolExecu

2024-06-02 06:41:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图运行一些非常大的时间序列数据使用concurrent.futures.processPool执行器(). 数据集包含多个独立的时间序列。整个数据集在元组列表data中可用,我通过helper函数传递这些元组,如下所示:

def help_func(daa):
    large_function(daa[0], daa[1], daa[2])

with concurrent.futures.ProcessPoolExecutor() as executor:
    executor.map(help_func, data, chunksize=1)

现在,尽管数据中包含的不同时间序列在列之间是独立的,但是由于时间序列数据的性质,时间序列中的值需要逐个处理。通过按照不同的时间序列对data变量进行排序,我确信map将始终按时间顺序进行调用。你知道吗

有了executor.map,我想不出一种方法来将特定的时间序列始终映射到同一个内核,或者以某种方式将以前尝试的状态共享到新内核上运行的进程。你知道吗

在当前设置中,每当在新内核上调用对特定时间戳的处理时,它都从初始化步骤开始。你知道吗

这个问题有什么优雅的解决办法吗?你知道吗


Tags: 数据mapdata时间help序列内核concurrent