【发布时间】:2014-09-26 00:19:48
【问题描述】:
我正在并行运行多个进程,每个进程都并行读取同一个文件。如果我将进程数增加到 > 15 个左右,看起来某些进程会看到文件的损坏版本。处理这种情况的推荐方法是什么?
更多详情: 并行读取的文件实际上是一个 perl 脚本。多个作业是 python 进程,每个作业都使用不同的输入参数独立地启动这个 perl 脚本。当作业数量增加时,其中一些作业会给出 perl 脚本具有无效语法的错误(这是不正确的)。因此,我怀疑其中一些作业读取了损坏的 perl 脚本版本。
我在 32 核机器上运行所有这些。
【问题讨论】:
-
"看起来有些进程看到了文件的损坏版本" - 两件事:(1) 你的同步逻辑可能有错误。 (2) 它极不可能读取具有多个进程的文件会使它更快,它可能会更慢。
-
没有任何同步逻辑。正如我所说,这个文件是一个并行启动的 perl 脚本。所以是的,它会更快,因为每个 perl 进程都在处理一个独立的数据集
-
"没有任何同步逻辑" - 你的问题! (我想那么多)。再读一遍我说的话。我并没有说你可能复杂的处理不会更快,我说“它极不可能读取具有多个进程的文件会使它更快(即文件读取部分)”
-
我对这个并行读取文件的问题不是很熟悉。你能多说一点吗?为什么只有在并行读取数很高(即 10+)时才会出现问题?
标签: parallel-processing filesystems