Partout où j'ai vu, le didacticiel PETSc / documents, etc., dit qu'il est utile pour l'algèbre linéaire et spécifie généralement que les systèmes clairsemés en bénéficieront. Et les matrices denses? Je veux résoudre pour dense .
J'ai écrit mon propre code pour CG et QMR à Fortran. La construction de base consiste à déchirer le pseudo-code et à ajouter des routines BLAS dans la mesure du possible ( ddot
, dnrm
et dgemv
) avec un peu d'auto-réglage. Comment cela se comparera-t-il à PETSc?
Je sais que la meilleure réponse serait pour moi de l'essayer moi-même mais pour des raisons de temps et d'autres, ce n'est pas possible.
Toute aide est très appréciée.
la source
Il est important de réaliser que les bibliothèques d'algèbre linéaire dense parallèle se concentrent généralement sur les routines BLAS de niveau 3 (routines qui exécutentO ( n3) travailler avec O ( n2) données) et des fonctionnalités de plus haut niveau comme les factorisations et les solveurs électroniques. Ils ne règlent généralement pas les opérations de niveau 1 et de niveau 2 dont vous parlez.
Puisque vous avez mentionné que vous êtes sur un système à mémoire partagée, j'aurais recommandé libFLAME et / ou PLASMA , mais je ne pense pas que ce soit beaucoup plus rapide que BLAS fileté par le fournisseur pour vos opérations de niveau 1 et de niveau 2.
Jed a recommandé Elemental , que je développe, mais je soulignerai à nouveau que les opérations de niveau 1 et de niveau 2 ne sont pas l'objectif principal des bibliothèques d'algèbre linéaire dense parallèle. Honnêtement, je n'ai jamais évalué aucune de ces routines.
la source