我有一个与并行编程有关的问题。如果我有一个作用于数组每个元素的程序,为什么使用所有可用的处理器就不那么有利呢?

我在想,也许是因为设置和管理多个线程的开销很大,或者是由于数组大小不能保证并发解决方案。谁能想到别的吗?

最佳答案

一些处理器可能已经在忙于做重要的事情,或者您可能想保留备用容量,以防它们需要快速响应新的工作负载。例如,在具有8个处理器的台式机系统中,您可能希望留出1个空闲空间以保持UI响应,而在其他系统上派出7个“批处理”线程。在非UI系统中,您可能仍希望保持一个或多个内核侦听OS中断或进行网络IO。

一个特别令人沮丧的示例是在所有内核上启动并行计算,发现您应该在启动参数之前对其进行了调整,并且由于没有足够的计算能力来允许UI响应,因此无法中断计算您的“取消”按钮。

关于concurrency - 并发编程作用于数组中的每个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23699137/

10-13 04:39