2012-05-04 5 views
3

Я написал короткий скрипт python для обработки моих больших файлов fastq размером от 5 Гб до 35 Гб. Я запускаю скрипт на сервере Linux, который имеет много ядер. Скрипт написан не параллельно и занимает около 10 минут, чтобы закончить для одного файла в среднем.Многократные прогоны делают его параллельным?

Если я запускаю тот же скрипт на несколько файлов, как

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

используя & знак отодвинуть процесс.

Эти сценарии выполняются параллельно, и я сэкономлю некоторое время?

Мне кажется не так, поскольку я использую команду top для проверки использования процессора, и каждый из них падает, когда я добавлял новые прогоны или не должен использовать где-то около 100%?

Так что, если они не работают параллельно, есть ли способ заставить их запускать их параллельно?

Спасибо за ответы

ответ

3

команды, выполняемые таким образом, действительно работать параллельно. Причина, по которой они не используют 100% времени вашего процессора, может быть связана с тем, что они связаны с I/O, а не с привязкой к процессору. Описание того, что делает сценарий («большие файлы fastq размером от 5 Гб до 35 ГБ»), предполагает, что это может быть так.

Если вы посмотрите на список процессов, заданной ps, хотя, вы должны увидеть три python процессы там - если один или несколько из них не будет расторгнуто момент запуска ps.

+0

Спасибо, это точно так – svural

2

Время, затрачиваемое на ожидание операций ввода-вывода, учитывается как разное использование ЦП, обычно %wa. Вероятно, вы просто смотрите на %us (время процессора пользователя).

 Смежные вопросы

  • Нет связанных вопросов^_^