linux命令parallel实现多进程并行计算

Posted 艾斯1213

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令parallel实现多进程并行计算相关的知识,希望对你有一定的参考价值。

需求分析:

假设我们有三个进程A和B和C,分别对应三个运行脚本a.sh,b.sh,c.sh。

A和B两个进程是完全独立的。

C进行必须等待A进程和B进程都运行结束之后,才能启动C进程。

我们现在需要写一个脚本要运行这三个程序脚本

解决方法:

串联【不理想】:

view plain

  1. a.sh;  
  2. b.sh;  
  3. c.sh; 

但是如果这三个进程都要运行特别长的时间,如果10个小时左右。

这样的话运行总时间就需要30个小时。

因为我们知道A和B是相互独立的所以我们应该将A和B并联起来,然后再和C串联。

这样运行时间就优化成了20个小时。

并联的话我们不能使用后台运行的方式,如果将A或者B后台运行了,C需要等待A和B都运行结束了才启动,但是C不知道A和B什么时候结束。

暂时能想到的最简单的办法是引入parallel命令来解决】:

view plain

  1. parallel -j 2 "sh a.sh" "sh b.sh";  
  2. sh c.sh 

这样A和B就通过parallel来进行并联,等到A和B都运行结束了,parallel这个命令也就运行结束。

然后再进行C程序。(满足我们的要求)

以上是关于linux命令parallel实现多进程并行计算的主要内容,如果未能解决你的问题,请参考以下文章

R语言高性能编程

c#双核多线程并行计算 Parallel是否最优方案

c#:ThreadPool实现并行分析,并实现线程同步结束

oracle 并行查询为啥只有一个进程在读。 我写了一个查询语句在里面些了个 /*+ parallel .....*/

Parallel ForEach For 多线程并行计算使用注意

webpack优化篇(四十四):多进程并行压缩代码