后续:Python仿真软件的多处理或多线程

后续:Python仿真软件的多处理或多线程,python,multithreading,multicore,simulation,multiprocessing,Python,Multithreading,Multicore,Simulation,Multiprocessing,这是一个后续行动。(你不必阅读所有答案,只需阅读问题) 人们向我解释了进程和线程之间的区别。一方面,我需要进程,这样我就可以充分利用CPU的所有核心,另一方面,进程之间的信息传递并不理想,我不想拥有我正在处理的巨大对象的两个副本 所以我一直在考虑一种方法,将进程和线程结合起来;告诉我这是否有意义。我的程序中的主要进程是GUI进程。我会让它产生一个“渲染管理器”线程。渲染管理器线程将负责渲染模拟,但是,它不会自己渲染模拟,而是生成其他进程来为其执行工作 目标如下: 渲染应利用所有可用的核心 GUI

这是一个后续行动。(你不必阅读所有答案,只需阅读问题)

人们向我解释了进程和线程之间的区别。一方面,我需要进程,这样我就可以充分利用CPU的所有核心,另一方面,进程之间的信息传递并不理想,我不想拥有我正在处理的巨大对象的两个副本

所以我一直在考虑一种方法,将进程和线程结合起来;告诉我这是否有意义。我的程序中的主要进程是GUI进程。我会让它产生一个“渲染管理器”线程。渲染管理器线程将负责渲染模拟,但是,它不会自己渲染模拟,而是生成其他进程来为其执行工作

目标如下:

  • 渲染应利用所有可用的核心
  • GUI永远不应该变得迟钝
  • 我希望渲染管理器成为线程的原因是,它必须与GUI共享大量信息:即模拟时间线

    那么你认为这是一个好的设计吗?你有什么改进的建议吗

    更新:

    很抱歉,我混淆了“渲染”一词的用法。通过渲染,我的意思是计算模拟,而不是在屏幕上渲染

    我的程序中的主要进程是GUI进程。我会让它产生一个“渲染管理器”线程。渲染管理器线程将负责渲染模拟,但是,它不会自己渲染模拟,而是生成其他进程来为其执行工作


    我不是图形技术专家,但这听起来很像GPU的用途。也许您需要的更多?

    在使用流程之前,请确保:

    • 您的算法可以在所有处理器之间并行化
    • 你需要这种平行性
    在我看来,一个好的经验法则是:

  • 让它发挥作用
  • 把它做好
  • 快点

  • 所以我建议先“简单地”使用线程。也许你会意识到,即使只有一个线程计算模拟,它也足够快。

    Duplicate:这个问题到底有什么不同?这又是你之前的问题了。在这里,我提出了一种结合线程和进程的设计,我想知道它是否好。我已经把上一个问题的所有答案读了好几遍。@cool RR:请用其他信息更新你的问题。也许可以澄清或强调你问题的一部分,这样就可以清楚地看出这有点不同。好吧,我更新了它,它足够好吗?我不明白。。。GPU用于什么?我将使用GPU在屏幕上绘制模拟状态,但“渲染”是指根据为特定模拟定义的任何世界法则计算模拟。我认为这将是在CPU上。我认为你使用“渲染”这个词可能会让人困惑。渲染与将数据转换为屏幕上的图像密切相关。最好将其描述为“运行模拟”或类似问题。1-2-3方法为+1。尽管您可能会添加4。意识到瓶颈在其他地方,并使其再次发挥作用;-)