我有一个应用程序,我需要执行许多规范,点积,最重要的是,矩阵向量乘法。
矩阵和向量是巨大的。矩阵尺寸趋向于100000x100000。
环路结构是:
while(condition)
/* usually iterations=dimension of matrix, so around 1 million iterations are *at least* required (if not more) */
matrix-vector multiplication
3 dot prods
2 norms我目前正在使用英特尔Fortran与英特尔MKL。用Intel MKL重写我在Intel C中的代码有帮助吗?是否有人执行过任何类型的基准(特别是DGEMV )?重写代码是一个很大的痛苦,但我不介意重写,因为我看到了一个理由。
编辑:我说错了:矩阵尺寸是100000,不是一百万。相当严重的错误:\x
是的,矩阵是稠密的,它需要密度。而且,它不是对称的,甚至不是正定的。我的算法是QMR的一个改进版本。
发布于 2012-01-05 17:29:46
在C或Fortran中,性能将完全相同,因为支持库调用的实际实现是相同的,代码中的所有时间基本上都花在这些库调用上。
https://stackoverflow.com/questions/8746813
复制相似问题