对不起,问一个问题一个我知之甚少的话题,但这种想法真的被窃听了我,我一直没能找到在互联网上的任何答案。“嗯并行化”算法不能由多个线程加快
背景: 我正在和我的一位计算机科学研究的朋友谈话。我大多在特设的发展,所以我大部分的CS概念的理解是在功能级(我知道如何使用他们,而不是他们的工作)。他说,转换“以及并行化”算法已经在单个线程运行到一个运行在多线程并没有导致他期待处理速度提高一点。
推理: 我问他是什么计算机的体系结构,他是上运行此算法,他说,16核心(非虚拟化)。根据我对多核处理器的了解,在多核上运行的算法的处理速度增加应该大致与其并行化程度成正比。
问题: 算法如何“正确并行化”并正确编程以在真正的多核处理器上运行,而不是多跑几次?是否有一些我在这里失踪的信息,或者更可能是实施的问题?
其他的东西:我问是否这些线程可能占用比任何单独的内核可用的功率更大,显然每个内核运行在3.4 GHz。这比算法所需要的要多得多,并且在运行诊断程序时,内核在运行时不会超时。
让你的朋友编写代码并让计算机发布这个特定实例的细节。对你的问题的一般回答“为什么随机并行代码不加速?”填写了几本教科书和研究会议。 – Novelocrat