繁体   English   中英

并行计算中的线程vd进程

[英]Threads vd processes in parallel computing

我正在实现两个在多代理程序框架中运行的算法,因此每个代理程序都应运行该算法。 第一个算法是顺序算法,每个代理都应等待前一个算法,但是第二个算法是并发的。

我用线程实现了两者,与串行情况相比,两者的运行时间或多或少是相同的(对于顺序情况,是预期的,但对于并发情况,则不是)。 我更改了代码以使用进程,两种算法的时间都慢了20倍。 这正常吗?

编辑1:算法的思想是每个代理同时运行它,然后将参数从算法返回到主程序以计算平均值。 该平均值用于算法的下一次迭代,依此类推...我在多处理队列中执行的参数返回可能是时间慢的问题?

在此处输入图片说明

线程与进程

为什么线程可以更快:

  • 生成新进程比启动新线程慢得多。
  • 进程之间的通信比线程之间的通信慢得多。
  • 线程比进程需要更少的内存。
  • 如果您使用的是单处理器计算机,则线程应具有与进程类似的性能(鉴于上述注意事项)。

为什么流程会更快:

  • 如果您在多处理器计算机上,则进程将能够同时使用所有处理器进行计算,并为您提供更好的性能。
  • 如果一个进程崩溃,它将不会关闭其他进程,而如果一个线程崩溃(不是异常,则是一个实际的解释器)
    崩溃),它将导致所有线程崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM