我在实践中读到了Java并发,有一段内容如下:-
在6.3.4限制下并行化异构任务 在多个工作人员之间划分异构任务的另一个问题是,这些任务可能有不同的大小。如果你在两个工人之间把任务A和B分开,但是A的时间是B的10倍,你只会把整个过程加快9%。最后,在多个工作人员之间划分一个任务总是需要一定数量的协调开销;为了使该分工值得,这种开销必须通过并行性带来的生产率提高来弥补。
现在,如果您通过大胆的部分,它是正确的说法,工人线程的协调开销必须超过性能改善,我实现使用并行线程?
有人能帮我理解一下吗?
发布于 2015-10-15 08:25:48
不,黑体字很大程度上改变了句子的意思:
最后,在多个工作人员之间划分任务总是需要一定数量的协调开销;为了使分工值得,这种开销必须是,而不是由于并行性而通过生产力的提高来补偿。
如果这仅仅是“必须超过生产力的提高……”那你就对了。上面的意思是,在工作线程之间划分任务所导致的性能损失(开销)必须是而不是,而不是通过这样做所获得的性能提高。
例如,如果您的开销为10秒,而您的性能增益仅为5秒,那么并行化操作实际上降低了您的整体性能。如果您的开销为10秒,但性能增益为50秒,那么您的总体执行时间将减少40秒(即改进)。
另一种说法是"...this开销必须被并行性带来的生产率提高所抵消“。
https://stackoverflow.com/questions/33143229
复制相似问题