python - 有没有办法同时将每个 joblib.parallel 运行的结果写入自己的文件中?

标签 python parallel-processing joblib

单个并行运行的每个“并行”结果都需要写入其自己的文件中。如果我能够说出每个结果的名称,这个问题也可以得到解决。

我有一个生成一些数据的函数。每次运行时,数据都会略有不同,因此我需要运行几次。我目前有使用 joblib.Parallel 来加速此过程的工作代码。问题在于,结果是所有并行运行的一长串列表,将其写入单独的文件非常复杂且容易出错。


def fn(x):
    for i in np.linspace(0, x, 1000):
        a = x
        b = 2*x
        return a, b

ans = Parallel(n_jobs=-1)(delayed(fn)(x) for x in np.linspace(0,5,5))
ans
# I need to either name/extract each result in the list below, or directly write each into its own file
out[]: [(0.0, 0.0), (1.25, 2.5), (2.5, 5.0), (3.75, 7.5), (5.0, 10.0)]

最佳答案

如果您只想让每个进程写入它自己的文件,您可以执行以下操作。

def fn(x):
    for i in np.linspace(0, x, 1000):
        a = x
        b = 2*x
        with open(str(x)+"_file.csv", 'w') as file:
            file.write(a, b)

        return a, b

ans = Parallel(n_jobs=-1)(delayed(fn)(x) for x in np.linspace(0,5,5))

但我不确定您为什么要这样做,如果您更详细地让我们知道您的最终目标是什么,我相信我们可以提供更多帮助。

关于python - 有没有办法同时将每个 joblib.parallel 运行的结果写入自己的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522652/

相关文章:

python - 如何获得 "work"剩余的数量由 Python 多处理池完成?

Python - 使用 joblib 进行循环并行化

python - 如何使用 joblib Python 返回矩阵?

python - 在 DRF 中管理自定义序列化器的最佳方法是什么

python - 将python字节 "array"转换为int“数组

c - OpenMP 矩阵乘法关键部分

c - 在乒乓测试中使用 pthread 条件变量

python - 在 Cython 中是否可以使用 C++ 风格的内部类型定义?

python - xhtml2pdf 和 django,不同的文档大小

python - 使用python joblib调用并行类函数