2014-10-01 138 views
0

我一直在编写代码来使用POSIX线程并行乘以矩阵,并且在大矩阵上操作时我已经看到了很大的加速;然而,当我缩小矩阵的大小时,天真的连续O(n^3)矩阵乘法算法开始超过并行实现的性能。并行乘以小矩阵

这是正常还是表示质量较差的算法?难道我只是注意到创建和处理线程的额外开销,并且超过了某个时间点,额外的时间占据了计算的主导地位?

注意,这是一个家庭作业,所以我不会被张贴我的代码,我不想破坏我的大学的学术诚信政策。

回答

1

不可能给出一个确切的答案没有看到代码(或算法的详细描述,至少),但一般是正常的简单算法来上,因为较小的恒定的小输入更好执行因子。此外,线程创建/上下文切换不是免费的,因此创建线程然后执行一些简单的计算可​​能需要更长的时间。因此,如果您的算法在大型输入上的工作速度比天真的快得多,那么应该没有理由担心它。

+0

这就是我曾经想过的。非常感谢你! – mjnichol 2014-10-01 20:08:07