【发布时间】:2022-01-13 08:28:57
【问题描述】:
我有 634 个 *.npy 文件,每个文件都包含一个 2D numpy 形状数组 (8194, 76)。我想以不同的频率对每一列使用 STL 分解五次。所以我想做的是:
for file in files:
for column in columns:
for freq in frequencies:
res = STL(file[:,column], period = freq)
decomposed = np.vstack((res.trend, res.seasonal, res.resid)).T
np.save(decompoesd)
最后分解的形状应该是(8194,1140)。我怎样才能使这个并行化?因为串行实现需要 2 个多月的时间。
【问题讨论】:
-
有什么意见吗?
-
很抱歉@ArtiomKozyrev 的最新反馈,它通过并行化文件级别完美地工作,非常感谢您的帮助。我做了simulate_cpu_bound(file) 对其进行文件处理并将其写入磁盘。接下来我将尝试并行化 CPU 繁重的任务本身,任何关于如何将每个处理器的 res 输出分组并使用单个进程将其写入磁盘的任何提示,然后只有在此之后,所有其他处理器才会获取下一个文件并执行相同操作跨度>
标签: python concurrency parallel-processing multiprocessing