我编写了一个简短的python脚本来处理大小从5Gb到35Gb的大型fastq文件。我在具有许多内核的Linux服务器上运行脚本。该脚本根本不是并行编写的,并且平均需要大约10分钟才能完成单个文件。
如果我在几个文件上运行相同的脚本,如
$ python my_script.py file1 &
$ python my_script.py file2 &
$ python my_script.py file3 &
使用&签署以推迟这一进程。
这些脚本并行运行并节省一些时间吗?
对我来说似乎不是,因为我使用top命令来检查处理器的使用情况,每次使用都会随着我添加新的运行而下降,或者不应该使用接近100%的地方?
因此,如果它们没有并行运行,是否有办法让os并行运行?
感谢您的回答
答案 0 :(得分:3)
以这种方式执行的命令确实并行运行。他们没有耗尽100%的CPU时间的原因可能是因为它们受I / O限制,而不是CPU限制。脚本的功能描述(“从5Gb到35Gb的大型fastq文件”)表明可能就是这种情况。
但是,如果查看ps
给出的进程列表,您应该会看到三个python
进程 - 除非其中一个或多个进程在您运行时终止{{1 }}
答案 1 :(得分:2)
等待I / O操作所花费的时间被视为一种不同的CPU使用率,通常为%wa
。您可能只是在查看%us
(用户CPU时间)。