Везде, где я видел, учебник / документы PETSc и т. Д. Говорят, что это полезно для линейной алгебры и обычно указывает, что разреженные системы принесут пользу. Как насчет плотных матриц? Я обеспокоен тем, о решении для плотного .A
Я написал свой собственный код для CG и QMR на Фортране. Основная конструкция является разрывать код псевда и добавить BLAS подпрограмм везде , где это возможно ( ddot
, dnrm
и dgemv
) с небольшим самонастраиваемым. Как это будет сравниваться с PETSc?
Я знаю, что лучший ответ был бы для меня, чтобы попробовать это сам, но по причинам времени и других, это невозможно.
Любая помощь очень ценится.
источник
Поскольку вы упомянули, что находитесь в системе с разделяемой памятью, я бы порекомендовал libFLAME и / или PLASMA , но я не думаю, что они будут значительно быстрее, чем BLAS от производителя для операций вашего уровня 1 и уровня 2.
Джед порекомендовал Elemental , который мне довелось разработать, но я еще раз подчеркну, что операции уровня 1 и уровня 2 не являются основным направлением работы библиотек параллельной плотной линейной алгебры. Я, честно говоря, никогда не тестировал ни одну из этих процедур.
источник