dicecca.net - Computer Science - Calcolo Parallelo e Distribuito - Matrice per vettore III Strategia
<- Torna a Bibliografia Universitaria
Il software che si analizzerà di seguito ha lo scopo di effettuare il prodotto Matrice per Vettore usando un’architettura di tipo MIMD distribuendo il calcolo a p x q processi disposto secondo una griglia a topologia bidimensionale.
Una volta stabilito il numero di righe e di colonne che deve avere la nostra matrice, il programma genera dei numeri casuali che riempiono la matrice ed il vettore.
A seconda del numero di processori impiegato è possibile spezzare la matrice e redistribuire i blocchi di calcolo ai vari processori che effettuano i calcoli parziali ed infine totali.
Il programma contiene al suo interno le routines per calcolare lo speedup e l’efficienza dell’algoritmo
Per risolvere il problema, è stata usata l’infrastruttura del Message Passing Interface.
La strategia usata per risolvere il calcolo del prodotto Matrice Vettore è quella di distribuire una matrice A∈Rnxm scorporandola in p x q processi su di una topologia
di griglia bidimensionale.
Vediamo ora nel dettaglio le varie parti in gioco dell’algoritmo.
Per meglio gestire il problema il programma è stato scisso in due file: uno che contiene le routines del calcolo in senso stretto, ed un altro di funzioni ausiliarie
- decomposizione della matrice di input in blocchi di dimensione prefissata
- decomposizione del vettore di input
- assegnazione delle sottomatrici e dei sottovettori a ciascun processore situato lungo la griglia bidimensionale
- ciascun processore della griglia calcola parte del risultato
- scambio dei risultati parziali tra i processori che, dopo aver eseguito le opportune operazioni, ottengono il risultato finale
Descrizione dell’Algoritmo
L’algoritmo può essere suddiviso in cinque parti principali:
- Inizializzazione dell’ambiente di calcolo
- Inserimento dei dati
- Distribuzione dei dati
- Calcolo del prodotto mat vet parziale e totale
- Calcolo dei tempi