Ho bisogno di scrivere un programma, che eseguirà la decomposizione LU, ecc. Il problema è che non conosco il modo preferito di distribuire la matrice caricata dal processo di root ad altri processi. Sono in grado di creare un semplice algoritmo per alcune situazioni, ma ho davvero bisogno della soluzione che funzioni per un numero arbitrario di processi.
Preferirei una distribuzione a grana grossa secondo questa presentazione (diapositiva 18) .
Esempio
Quipossovederechepossiamousare1processoo2processi(3o4sarebbe"troppo a grana fine"). Ma, qual è il modo corretto con 2 processi? La matrice dovrebbe essere divisa per righe o colonne?
Esempio 2
In questo caso, è ancora più problematico. Non riesco a distribuire i valori tra 2 processi in modo uniforme. Anche se l'avessi distribuito in questo modo:
P1: 2 8 3 4
P2: 5 1 6 2 5
Getta completamente la distribuzione simmetrica in disordine.
Quindi, con 3 processi è esattamente la stessa situazione come nell'esempio 1 - righe o colonne?
Quindi, presumo che non ci sia modo di farlo per un numero completamente arbitrario di processi, perché il punto è nella distribuzione uniforme. Qual è l'approccio per questo?
Spero di aver descritto il mio problema abbastanza chiaramente. In caso contrario, lascia un commento, per favore, e io migliorerò la mia domanda.