J'utilise le paquet eigen3 en C++ pour inverser certaines grandes matrices creuses (par exemple 12000 * 12000) dont j'ai besoin pour les opérations ultérieures; Cependant, cela prend beaucoup de temps et je ne peux pas l'étendre à des matrices plus grandes. Est-il possible de le faire en parallèle par exemple en utilisant openmp?Comment paralléliser l'inversion d'une matrice clairsemée?
Merci d'avance.
Etes-vous sûr de vouloir inverser la matrice? Que diriez-vous de résoudre 'Ax = b' à la place? (<- sera probablement plus rapide et plus stable.) –
En outre, l'inverse d'une matrice clairsemée n'est pas éparse en général, alors attendez-vous à une utilisation accrue de la mémoire (> 1 Go pour 12k x 12k, environ 115Go pour 120k x 120k) lente multiplication matricielle-vectorielle si vous effectuez l'inversion. –
@BaummitAugen il semble que vous n'êtes pas familier avec les paquets propres! il est spécifiquement conçu pour les manipulations matricielles clairsemées/denses et n'inverse pas directement la matrice; en effet, il utilise la fonction solve() et ainsi de suite ... –