并行计算是不是应该多线程,而不是多进程?


  • Global Moderator

    Q: 并行计算是不是应该多线程,而不是多进程?

    A: 并行计算的目的是提高计算效率。所以一般需要多个CPU。用多进程还是多线程取决于具体的问题。多线程编程较为简单。如果一个进程里有多个线程,而每个线程的CPU和IO的需求各不相同,这个进程的资源分配会很困难,通常会造成资源的浪费。用多进程架构有助于资源的分配,因为可以把不同CPU和IO的任务分配到不同的进程上,然后对每个进程分配资源。Twiiter从Storm升级到Heron也是由于这样的考虑。多进程编程相对困难,通常涉及到网络编程。RPC框架如Protobuf,Thrift和Avro能够简化多进程编程。而且多进程能够很好的在多个机器上扩展。所以Spark,Heron都用了多进程模型。



  • 多线程和多进程都是实现并行计算的手段之一,也可以组合起来用


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待