【问题标题】:How run a python program faster using GNU parallel?如何使用 GNU 并行更快地运行 python 程序?
【发布时间】:2018-01-29 05:05:52
【问题描述】:

我有一个可以使用多个线程执行的 python 程序,但是,当使用超过 1 个线程时它会失败(分段错误,核心转储)。

我正在考虑使用 GNU 并行运行脚本的另一种可能性。我对此很陌生,对此知之甚少。任何帮助将不胜感激。

【问题讨论】:

  • 这将非常依赖于您的程序的功能...您只是在问如何使用 GNU 并行运行单个 python 程序以使其运行多个?
  • 所以我可能误解了 GNU 并行的作用。是的,我在问如何使用 GNU 并行运行单个 python 程序。我假设 GNU 并行将帮助我以并行方式分配计算部分,这样它可以帮助我更快地执行它。
  • 最好的实现方式是将fasta文件拆分成多份,然后使用GNU并行

标签: python gnu-parallel


【解决方案1】:

假设你有 example.py 并且你想运行它 N 次。您可以运行以下命令

seq 10 | parallel -N0 --jobs 0 example.py

将其分解seq 10 将导致运行 10 个作业。 -N0 标志告诉我们忽略通常由seq 10 命令在输入输出中读取的输入。 --jobs 0 将让尽可能多的并行运行。

据我所知,parallel 不允许您说在没有输入的情况下运行该程序 X 次,因此您必须使用 seq 滥用管道进入命令,然后使用 -N0 标志忽略它。

阅读本文以获取有关命令的更多示例:https://www.gnu.org/software/parallel/man.html

【讨论】:

  • 对不起,评论没有完成就发布了。这里是
  • 你熟悉linux终端吗?
  • 对不起,评论没有完成就发布了。这是您如何建议使用并行运行此脚本? date && time /opt/app/python-2.7.9/bin/python2.7 /opt/app/busco-master/scripts/run_BUSCO.py -i v.umbellata_final_assembly_master_datastore_index.maker.transcripts1000.fasta -o v.umbellata_final_assembly_maker -l embryophyta_odb9/ -m genome --long -sp tomato -z --augustus_parameters='--progress=true'
  • 只需运行命令并用双引号括起来。除了您需要自己解决一些问题或发布新问题之外,我不会提供任何帮助。
  • 此外,如果您的意图是如何从一开始就运行此特定命令,如果您在问题中发布完整的上下文,您将在此站点上获得更好的结果。
猜你喜欢
  • 1970-01-01
  • 2021-11-10
  • 2019-07-03
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
相关资源
最近更新 更多