3

我编写了一个简短的 python 脚本来处理我的大型 fastq 文件,大小从 5Gb 到 35Gb。我在具有许多内核的 Linux 服务器中运行脚本。该脚本根本不是并行编写的,平均需要大约 10 分钟才能完成单个文件。

如果我在几个文件上运行相同的脚本,例如

$ python my_script.py file1 & 
$ python my_script.py file2 & 
$ python my_script.py file3 & 

使用 & 符号来推回该过程。

这些脚本是否并行运行,我会节省一些时间吗?

对我来说似乎不是,因为我正在使用 top 命令来检查处理器的使用情况,并且随着我添加新的运行,每个使用率都会下降,或者它不应该使用接近 100% 的地方吗?

因此,如果它们没有并行运行,有没有办法让操作系统并行运行它们?

感谢您的回答

4

2 回答 2

3

以这种方式执行的命令确实是并行运行的。它们没有使用 100% 的 CPU 时间的原因可能是因为它们受 I/O 限制,而不是 CPU 限制。脚本所做的事情的描述(“大小从 5Gb 到 35Gb 的大 fastq 文件”)表明可能就是这种情况。

但是,如果您查看由 给出的进程列表ps,您应该会在其中看到三个python进程 - 除非其中一个或多个在您运行时已经终止ps

于 2012-05-04T18:03:10.203 回答
2

等待 I/O 操作所花费的时间被计为一种不同的 CPU 使用率,通常是%wa. 您可能只是在查看%us(用户 CPU 时间)。

于 2012-05-04T19:22:54.850 回答