Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Σχετικά έγγραφα
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

EM 361: Παράλληλοι Υπολογισμοί

EM 361: Παράλληλοι Υπολογισμοί

Παρουσίαση 3ης Άσκησης

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

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

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Τεχνική Έκθεση Μεθόδων επίλυσης προβλημάτων πολλαπλών φυσικών και χωρίων 3

Επιμερισμός δεδομένων

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Υπολογισμοί Μεταβίβασης Μηνυμάτων

ES440/ES911: CFD. Chapter 5. Solution of Linear Equation Systems

EM 361: Παράλληλοι Υπολογισµοί

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Τεχνική Έκθεση Μέθοδοι χαλάρωσης στη διεπαφή για σύνθετα προβλήματα πολλαπλών φυσικών μοντέλων και πολλαπλών χωρίων... 7

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

EM 361: Παράλληλοι Υπολογισμοί

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί


Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

Minimum Spanning Tree: Prim's Algorithm

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Κεφάλαιο VIΙΙ Β. Δημακόπουλος

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

Παράδειγμα #10 ΠΡΟΒΛΗΜΑΤΑ ΟΡΙΑΚΩΝ ΤΙΜΩΝ ΕΛΛΕΙΠΤΙΚΕΣ ΜΔΕ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

APPENDICES APPENDIX A. STATISTICAL TABLES AND CHARTS 651 APPENDIX B. BIBLIOGRAPHY 677 APPENDIX C. ANSWERS TO SELECTED EXERCISES 679

Αρχιτεκτονική κοινής μνήμης

Σωληνωτή επεξεργασία

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

EE512: Error Control Coding

Message Passing Interface (MPI)

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Εργαστήριο 2 - Απαντήσεις. Επίλυση Γραμμικών Συστημάτων

Durbin-Levinson recursive method

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

Επαναληπτικές μέθοδοι

Προγραμματισμός με Μεταβίβαση Μηνυμάτων

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

Σύγχρονοι υπολογισμοί

Other Test Constructions: Likelihood Ratio & Bayes Tests

ΜΕΜ251 Αριθμητική Ανάλυση

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 6: Εξίσωση διάχυσης (συνέχεια)

Τεχνική Έκθεση Συνοπτική παρουσίαση... 3

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

Επαναληπτικές μέθοδοι για την επίλυση γραμμικών συστημάτων. Μιχάλης Δρακόπουλος

Second Order RLC Filters

Μάθημα Επιλογής 8 ου εξαμήνου

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Παράδειγμα #9 ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΟΡΙΑΚΩΝ ΤΙΜΩΝ ΕΛΛΕΙΠΤΙΚΕΣ ΣΔΕ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

Προγραμματισμός Ι (HY120)

Congruence Classes of Invertible Matrices of Order 3 over F 2

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

TMA4115 Matematikk 3

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Matrices and vectors. Matrix and vector. a 11 a 12 a 1n a 21 a 22 a 2n A = b 1 b 2. b m. R m n, b = = ( a ij. a m1 a m2 a mn. def

The challenges of non-stable predicates

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Jesse Maassen and Mark Lundstrom Purdue University November 25, 2013

Ειδικά θέματα στην επίλυση

Επίλυση ελλειπτικών διαφορικών εξισώσεων με πεπερασμένες διαφορές

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

On the Galois Group of Linear Difference-Differential Equations

Math 6 SL Probability Distributions Practice Test Mark Scheme

Statistical Inference I Locally most powerful tests

HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών. Routing Algorithms. Network Layer.

Second Order Partial Differential Equations

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Δομές Δεδομένων & Αλγόριθμοι

Srednicki Chapter 55

The ε-pseudospectrum of a Matrix

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

Matrices and Determinants

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αριθµητική Ανάλυση. 27 Οκτωβρίου Αριθµητική Ανάλυση 27 Οκτωβρίου / 72

EM 361: Παράλληλοι Υπολογισμοί

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Transcript:

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 6: Εφαρμογές ΙΙ Παράλληλοι Υπολογισμοί Πινάκων. Επίλυση Συστήματος Γραμμικών Εξισώσεων. Μερικές Διαφορικές Εξισώσεις.

Παράλληλοι Υπολογισμοί Πινάκων Due to their regular structure, parallel computations involving matrices and vectors readily lend themselves to data-decomposition. Typical algorithms rely on input, output, or intermediate data decomposition. Most algorithms use one- and two-dimensional block, cyclic, and blockcyclic partitionings. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 2

Παράλληλοι Υπολογισμοί Πινάκων Decomposition for matrix-matrix multiplication in C. A = B*C product. Matrices A and B are shown with multicolored rows. Each color denotes a different process. Matrix C is broadcast to all processes. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 3

Παράλληλοι Υπολογισμοί Πινάκων Decomposition for matrix-matrix multiplication in Fortran. A = B*C product. Matrices A and C are shown with multicolored columns. Each color denotes a different process. Matrix B is broadcast to all processes. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 4

Παράλληλοι Υπολογισμοί Πινάκων The basic steps of the algorithm (in C language) are: 1. Distribute the columns of C among the processors using a scatter operation. 2. Broadcast the matrix B to every processor. 3. Form the product of B with the columns of C on each processor. These are the corresponding columns of A. 4. Bring the columns of A back to one processor using a gather operation. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 5

Παράλληλοι Υπολογισμοί Πινάκων Assume A(n,n), B(n,n), C(n,n) matrices and p processes. /* Data distribution */ if( myrank == 0 ) { for( i=1; i<p; i++ ) { MPI_Send( &a[from[i]], n*n/p, MPI_INT, i, tag, MPI_COMM_WORLD ); MPI_Send( &b, n*n, MPI_INT, i, tag, MPI_COMM_WORLD ); else { MPI_Recv( &a[from[myrank]], n*n/p, MPI_INT, 0, tag, MPI_COMM_WORLD, &status ); MPI_Recv( &b, n*n, MPI_INT, 0, tag, MPI_COMM_WORLD, &status ); Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 6

Παράλληλοι Υπολογισμοί Πινάκων /* Computation */ for ( i=from[myrank]; i<to[myrank]; i++) { for (=0; <n; ++) { C[i][]=0; for (k=0; k<n; k++) C[i][] += A[i][k]*B[k][]; /* Result gathering */ if (myrank!=0) { for( i=1; i<p; i++ ) MPI_Recv( &c[from[i]], n*n/p, MPI_INT, i, tag, MPI_COMM_WORLD, &status); else MPI_Send( &c[from[myrank]], n*n/p, MPI_INT, 0, tag, MPI_COMM_WORLD); Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 7

Παράλληλοι Υπολογισμοί Πινάκων Use of collective communication routines main(int argc, char *argv[]) {. from = (myrank * n)/p; to = ((myrank+1) * n)/p; MPI_Scatter (a, n*n/p, MPI_INT, a, n*n/p, MPI_INT, 0, MPI_COMM_WORLD); MPI_Bcast (b,n*n, MPI_INT, 0, MPI_COMM_WORLD);... /* Computation */ MPI_Gather (C[from], n*n/p, MPI_INT, c[from], n*n/p, MPI_INT, 0, MPI_COMM_WORLD); Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 8

Partial Differential Equations Πρόβλημα Μοντέλο: Laplace συνοριακών τιμών: U ( x, y) U ( x, y) 2 2 x y 2 2 f ( x, y) Διαμέριση: 1 h, xi i * h, yi * h, i, 0,1,..., N 1 N 1 U U U U 4U h f 0 2 i1, i1, i, 1 i, 1 i, i, Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 9

Partial Differential Equations Boundary Conditions (Συνοριακές συνθήκες): Consider simple 1D bar discretised into 8 intervals Interior values U 2, U 3... U 9 determined by PDE U 1 and U 10 determined by boundary conditions U 2U U 0 i1 i i1 U 1 U 2 U 3 U 4 U 5 U 6 U 7 U 8 U 9 U 10 Classification of BCs: Dirichlet: specify value, e.g. U 1 = c 0 Neumann: specify derivative, e.g. U x x 0 c 0 Discrete form, e.g. U 1 U 2 = c 0 Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 10

Partial Differential Equations Η διαμέριση του χώρου ολοκλήρωσης οδηγεί σε σύστημα γραμμικών εξισώσεων το οποίο λύνεται επαναληπτικά. Διαφορετικοί μέθοδοι επίλυσης. Έστω η i εξίσωση: M 1 a U b i, i Jacobi: Η λύση (στην k+1 επανάληψη) είναι: U ( k1) i b M ( k ) i ai, U i a i, Πλεονεκτήματα: Εύκολη στη χρήση. Ανεξάρτητοι υπολογισμοί (εύκολος παραλληλισμός του σειριακού κώδικα). Μειονεκτήματα: Πολύ αργός ρυθμός σύγκλισης. Συνήθως χρησιμοποιείται μόνο για εκπαιδευτικούς σκοπούς. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 11

Partial Differential Equations Gauss Seidel: Χρησιμοποιεί τιμές για την U μόλις αυτές υπολογισθούν. Η λύση (στην k+1 επανάληψη) είναι: U ( k 1) i M M ( k 1) ( k ) i i, i, i i b a U a U a i, Πλεονεκτήματα: Γρηγορότερος ρυθμός σύγκλισης. Σχετικά απλή η ανάπτυξη του σειριακού κώδικα. Ανεξάρτητοι υπολογισμοί (εύκολος παραλληλισμός του σειριακού κώδικα. Μειονεκτήματα: Οι πράξεις είναι σειριακές (ακολουθιακές): ο παραλληλισμός απαιτεί τροποποίηση της μεθόδου. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 12

Partial Differential Equations Successive Over-Relaxation, SOR: Επέκταση της Gauss-Seidel: Λαμβάνει υπόψη την προηγούμενη επανάληψη μέσω ενός βάρους w. Η λύση (στην k+1 επανάληψη) είναι: M M ( k 1) ( k ) bi ai, U ai, U ( k 1) i i ( k ) ( k 1) ( k ) i (1 ) i i (1 ) i ai, U w w U wu w U Για την σταθερότητα της μεθόδου απαιτείται: 0 < w < 2 w = 1: Gauss-Seidel, w < 1: Under-relaxation, w > 1: Over-relaxation. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 13

Red/Black SOR: Κριτήριο Σύγκλισης Partial Differential Equations Σχεδόν πάντα απαιτείται-εξετάζεται η ακρίβεια στη λύση. Συνεπώς ο αλγόριθμος χρειάζεται να τρέχει έως ότου συγκλίνει και όχι για συγκεκριμένο αριθμό επαναλήψεων. Πιθανά Κριτήρια Σύγκλισης: Α) Η διαφορά μεταξύ διαδοχικών επαναλήψεων για όλα τα σημεία είναι μικρότερη ενός μικρού αριθμού max U U ( k1) ( k ) i, i, Β) Η Ευκλείδια νόρμα μεταξύ διαδοχικών επαναλήψεων είναι μικρότερη ενός μικρού αριθμού ( k1) ( k) 2 i, i, i U U Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 14

Partial Differential Equations Model Problem: Laplace (f=0). 1 U U U U U 4 i, i1, i1, i, 1 i, 1 Jacobi: 1 U U U U U 4 ( k 1) ( k ) ( k ) ( k ) ( k ) i, i1, i1, i, 1 i, 1 1 4 ( k 1) ( k ) ( k 1) ( k ) ( k 1) Gauss-Seidel: U i, Ui 1, U i 1, Ui, 1 U i, 1 w U U U U U (1 w) U 4 SOR: ( k 1) ( k ) ( k 1) ( k ) ( k 1) ( k ) i, i 1, i 1, i, 1 i, 1 i, Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 15

PDEs Model Problem (Laplace) SOR: Serial Implementation Ο σειριακός αλγόριθμος περιλαμβάνει τα παρακάτω βήματα: Α) Αρχικοποίηση του grid: δίνεται μια αρχική τιμή στο πίνακα U(i,) (== Uold(i,)) για όλα τα i,. B) Ξεκίνημα της επαναληπτικής διαδικασίας. Υπολογισμός της καινούριας εκτίμησης του U(i,). C) Έλεγχος της σύγκλισης: εάν η Ευκλείδια νόρμα είναι μικρότερη μιας προκαθορισμένης μικρής τιμής. B) Εάν η σύγκλιση έχει επιτευχθεί ή ο αριθμός των επαναλήψεων έχει ξεπεράσει μια μέγιστη τιμή τερματισμός του προγράμματος. Αλλιώς επιστροφή στο βήμα (Β). Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 16

SOR: Serial Implementation main(int argc, char *argv[]) { /* Initialize grid*/. PDEs Model Problem (Laplace) for (k==1; k<maxiter; k++) {. /* Computation */ for( i==1; i<n; i++ ) { for( ==1; <N; ++ ) { U(i,) = (1-w)*Uold(i,) + w*(u(i-1,) + Uold(i+1,) + U(i,-1) + Uold(i,+1)); /* Check convergence */ sum = 0 for( i==1; i<n; i++ ) { for( ==1; <N; ++ ) { sum = sum + (U(i,)-Uold(i,))**2; if (sqrt(sum) < TOL) exit(1); Uold = U; Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 17

PDEs Parallel Implementation Διαχωρισμός του grid: Επικοινωνία δεδομένων: κάθε επεξεργαστής στέλνει/λαμβάνει δεδομένα από τον προηγούμενο και τον επόμενο. grid grid P1 P2 Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 18

PDEs Parallel Implementation Επικοινωνία Δεδομένων: κάθε επεξεργαστής στέλνει/λαμβάνει δεδομένα από τον προηγούμενο και τον επόμενο. if (myrank!= 0) { MPI_Send (grid[from], n, MPI_DOUBLE, myrank-1, tag, MPI_COMM_WORLD); MPI_Recv (grid[from-1], n, MPI_DOUBLE,myrank-1, tag, MPI_COMM_WORLD, &status); if (myrank!= p-1) { MPI_Send (grid[to-1], n, MPI_DOUBLE, myrank+1, tag, MPI_COMM_WORLD); MPI_Recv (grid[to], n, MPI_DOUBLE, myrank+1, tag, MPI_COMM_WORLD, &status); Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 19

PDEs Parallel Implementation Παράλληλη Εφαρμογή της SOR: Κόκκινο/Μαύρο (Red/Black) SOR Το πλέγμα διαχωρίζεται επιπλέον σε κόκκινα και μαύρα σημεία, π.χ. μονά σημεία: «κόκκινα», ζυγά σημεία: «μαύρα». Κόκκινα σημεία: Μαύρα σημεία: w U U U U U (1 w) U 4 ( k 1) ( k ) ( k ) ( k ) ( k ) ( k ) i, i1, i1, i, 1 i, 1 i, w U U U U U (1 w) U 4 ( k ( k ( k ( k ( k ( k ) i, i1, i1, i, 1 i, 1 i, Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 20

PDEs Parallel Implementation Red/Black SOR: Παραλληλίσιμος Αλγόριθμος Έστω Ν εξισώσεις σε m=1,2, Ρ επεξεργαστές. Στον 1-D διαχωρισμό του grid έχουμε Ν/Ρ γραμμές σε κάθε επεξεργαστή: Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 21

PDEs Parallel Implementation Red/Black SOR: Παραλληλίσιμος Αλγόριθμος Ο R/B SOR αλγόριθμος περιλαμβάνει τα παρακάτω βήματα: Α) Αρχικοποίηση - Διαχωρισμός του grid: Δίνεται μια αρχική τιμή του U στις Ν/Ρ γραμμές κάθε επεξεργαστή. B) Ξεκίνημα της επαναληπτικής διαδικασίας. Παράλληλος υπολογισμός της καινούριας εκτίμησης του U(i,). C) Έλεγχος της σύγκλισης: κάθε επεξεργαστής υπολογίζει την Ευκλείδια νόρμα των στοιχείων του. Τα αθροίσματα μεταφέρονται στον κεντρικό (master) επεξεργαστή όπου υπολογίζεται το συνολικό άθροισμα και γίνεται ο έλεγχος της σύγκλισης. D) Εάν η σύγκλιση έχει επιτευχθεί ή ο αριθμός των επαναλήψεων έχει ξεπεράσει μια μέγιστη τιμή τερματισμός του προγράμματος. Αλλιώς επιστροφή στο βήμα (Β). Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 22

PDEs Parallel Implementation Red/Black SOR: Παραλληλίσιμος αλγόριθμος Βήμα (Β) Παράλληλος Υπολογισμός της Καινούριας Εκτίμησης του U: Υπολογίζουμε όλα τα κόκκινα U σημεία της k+1 επανάληψης: ( k 1) U i, Στέλνουμε τα κόκκινα σημεία της γραμμής 1 στον Χ-1 επεξεργαστή για m=2,3, P. Στέλνουμε τα κόκκινα σημεία της γραμμής Ν/Ρ στον Χ+1 επεξεργαστή για m=1,2, P-1. Υπολογίζουμε όλα τα μαύρα U σημεία της k+1 επανάληψης: ( k 1) U i, Στέλνουμε τα μαύρα σημεία της γραμμής 1 στον Χ-1 επεξεργαστή για m=2,3, P. Στέλνουμε τα μαύρα σημεία της γραμμής Ν/Ρ στον Χ+1 επεξεργαστή για m=1,2, P-1. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 23

PDEs Parallel Implementation Red/Black SOR: Κριτήριο Σύγκλισης σε Παράλληλο Αλγόριθμο Χρήση πράξεων περιστολής, π.χ. MPI_Reduce. /* Check convergence */ my_sum = 0 for( i==1; i<n/p; i++ ) { for( ==1; <N; ++ ) { my_sum = my_sum + (U(i,)-Uold(i,))**2; MPI_Reduce(&my_sum, &sum, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); if if (rank==0) { if (sqrt(sum) < TOL) exit(1);... Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 24

Βιβλιογραφία Parallel Programming, B. Wilkinson, M. Allen, Prentice Hall, 2nd Ed. 2005. Introduction to Parallel Computing, A. Grama, A. Gupta, G. Karypis, V. Kumar, Addison- Wesley, 2003. Parallel Computing: Theory and Practice, M. J. Quinn, McGraw-Hill, 1994. Designing and Building Parallel Programs, Ian Foster, Addison-Wesley 1994. Παράλληλοι Υπολογισμοί, Κεφάλαιο 6 25