Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 MPI: Πολλαπλασιασμός Πινάκων.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 MPI: Πολλαπλασιασμός Πινάκων."— Μεταγράφημα παρουσίασης:

1 Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 MPI: Πολλαπλασιασμός Πινάκων

2 Πολλαπλασιασμός Πινάκων Μαθήματα MPI Κώστας Διαμαντάρας - ΤΕΙ Θεσσαλονίκης 2 CA= × B Πλήθος στηλών A = πλήθος γραμμών B Πλήθος γραμμών C = πλήθος γραμμών A Πλήθος στηλών C = πλήθος στηλών B

3 Πολλαπλασιασμός Πινάκων Μαθήματα MPI Κώστας Διαμαντάρας - ΤΕΙ Θεσσαλονίκης 3 CA= × B C[1][1] = A[1][1]*B[1][1] + A[1][2]*B[2][1] A[1][4]*B[4][1] C[1][2] = A[1][1]*B[1][2] + A[1][2]*B[2][2] A[1][4]*B[4][2] C[5][6] = A[5][1]*B[1][6] + A[5][2]*B[2][6] A[5][4]*B[4][6] C[i][j] = ‹ i γραμμή του A › * ‹ j στήλη του B ›

4 Κατανομή Γραμμών σε διεργασίες Μαθήματα MPI Κώστας Διαμαντάρας - ΤΕΙ Θεσσαλονίκης 4  Χρήση MPI_Scatter για διαμοιρασμό των γραμμών των πινάκων A, B στις διεργασίες 0, 1, 2  Έξτρα γραμμές dummy για να δουλέψει το scatter (γραμμή 6 των C, A, και γραμμές 5, 6 του B). Δεν θα χρησιμοποιηθούν σε πράξεις Διεργασία 0 Διεργασία 1 Διεργασία 2 Διεργασία 0 Διεργασία 1 Διεργασία 2 CAB

5 MPI_Scatter  MPI_Scatter(&localA[0], n, MPI_INT, &A[0], n, MPI_INT, 0, MPI_COMM_WORLD); int A[N]; /* N>=n*p, p=πλήθος διεργασιών */ int localA[n];  Πχ. p=3: Διεργασία 0 localAA Άδειο Διεργασία 1 localAA Άδειο Διεργασία 2 localAA Μαθήματα MPI 5 Κώστας Διαμαντάρας - ΤΕΙ Θεσσαλονίκης

6 Υπολογισμός γινομένου Μαθήματα MPI Κώστας Διαμαντάρας - ΤΕΙ Θεσσαλονίκης 6  Για να βρω το στοιχείο C[i][j] πρέπει να πολλαπλασιάσω την i γραμμή του A με την j στήλη του B Η Δ0 διαβάζει τους πίνακες Α, Β και τους μοιράζει στις Δ1, Δ2 (πχ. MPI_Scatter)  τοπικοί πίνακες : localA, localB Για κάθε στήλη j του B { Για κάθε γραμμή i του localΑ { Υπολόγισε το εσωτερικό γινόμενο των διανυσμάτων: localΑ[i][ * ], B[ * ][j]  localC[i][j] (πχ. Για να συλλέξω την στήλη Β από τα localB κάνω MPI_Allgather) } Η Δ0 συλλέγει τα localC (πχ. με MPI_Gather)  C

7 MPI_Allgather  MPI_Allgather(&localB[0], n, MPI_INT, &B[0], n, MPI_INT, MPI_COMM_WORLD); int localB[n]; int B[N]; /* N>=n*p, p=πλήθος διεργασιών */  Πχ. p=3: Διεργασία 0 localBB Διεργασία 1 localBB Διεργασία 2 localBB Μαθήματα MPI 7 Κώστας Διαμαντάρας - ΤΕΙ Θεσσαλονίκης


Κατέβασμα ppt "Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 MPI: Πολλαπλασιασμός Πινάκων."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google