У меня есть приложение, в котором мне нужно выполнить множество норм, точечных продуктов и, самое главное, умножения матрицы на вектор.
матрицы и векторы огромные .Размер матрицы обычно составляет 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
. В настоящее время я использую Intel Fortran с Intel MKL.Поможет ли переписывание моих кодов в Intel C с помощью Intel MKL?Кто-нибудь когда-либо проводил какой-либо тест (особенно для DGEMV)?Переписывание кодов - это большая проблема, но я не возражаю против переписывания, если я увижу причину.
РЕДАКТИРОВАТЬ: Я ошибся: размеры матрицы составляют 100000, а не миллион.Довольно серьезная ошибка: |
И да, матрица имеет плотность и должна быть плотной.Более того, оно не симметрично и даже не является положительно определенным.Мой алгоритм является модифицированной версией QMR.