矩阵库与C ++中的For循环

| 您能否告诉我,使用矩阵库是否比常规的for循环更快的运行时间?当前,我有一些使用for循环遍历多维向量的方法来计算矩阵乘积和逐元素乘积,其中矩阵大小约为1000列乘400行。该方法是程序中最常用的方法,我想知道使用矩阵库是否可以提高程序的速度。另外,您会推荐哪个库(来自http://eigen.tuxfamily.org/index.php?title=Benchmark,我认为Eigen最好)? 谢谢     
已邀请:
是的-相当多的C ++矩阵库(例如MTL,uBLAS,Blitz ++)使用模板元编程来优化其行为。如果没有其他理由,我将从Boost uBlas开始。您可能还需要查看OO数字库列表,以了解其他可能性。     
我试图回答问题“我应该”而不是“哪个”,因为目前尚不清楚您实际上是否需要这样的库。 矩阵库会缩短执行时间吗?大概。他们在高中教给你的方法肯定不是最快的。但是,还有其他问题需要考虑。 首先,您是否过早优化?试图尽快使程序尽快运行是很诱人的,但并非总是正确的做法。您必须确定这样做是否真的是消磨时间的有效方法。 其次,速度会对可用性产生重大影响吗?使程序在2秒而不是4秒内工作真的不值得付出努力。。。而是30小时而不是60小时?可能是吧。我喜欢强调在进行抛光之前使一切正常工作。 最后,我遇到了一些别人写的代码示例,这些代码在几年前是完全没有用的。无法使用新的OS或编译器找到或编译旧库,或者使用其他不同的库,这意味着我必须完全重写浪费时间的东西。最初,获得额外百分之几的性能似乎是一个好主意,但这意味着它们的代码寿命有限,尤其是由于文档不佳。 保持简单愚蠢是许多事情的极好口头禅。我坚决主张仅在绝对必要时才使用库,然后仅使用那些寿命长且稳定的库。     

要回复问题请先登录注册