Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

9
National Technical University of Athens (NTUA), Greece Institute of Structural Analysis & Seismic Research (ISASR) Προχωρημένες υπολογιστικές τεχνικές και αλγόριθμοι επίλυσης Προγραμματισμός σε παράλληλη επεξεργασία Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής National Technical University of Athens (NTUA), Greece Institute of Structural Analysis & Seismic Research (ISASR)

description

Institute of Structural Analysis & Seismic Research (ISASR). National Technical University of Athens (NTUA), Greece. Προχωρημένες υπολογιστικές τεχνικές και αλγόριθμοι επίλυσης Προγραμματισμός σε παράλληλη επεξεργασία. Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής. Λογισμικό MPI. - PowerPoint PPT Presentation

Transcript of Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

Page 1: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Προχωρημένες υπολογιστικές τεχνικές και αλγόριθμοι επίλυσης

Προγραμματισμός σε παράλληλη επεξεργασία

Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Page 2: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPI

Μεταφορά δεδομένων σε παράλληλα υπολογιστικά περιβάλλοντα

Συγχρονισμός μεταξύ παράλληλων διεργασιών

Page 3: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPI

Program MPIHelloWorldImplicit NoneInclude "fmpi.h"Integer :: iRank, iNoOfProcs, iErr, iSource, iDest, iTag=50Character, Len=50 :: cMessageType (MPI_Status) :: status

Call MPI_Init(iErr)Call MPI_Comm_rank(MPI_COMM_WORLD, iRank, iErr)Call MPI_Comm_size(MPI_COMM_WORLD, iNoOfProcs, iErr)if (iRank.GT.0) theniDest = 0Write(cMessage, *) "Greetings from process:", iRankCall MPI_Send(cMessage, 50, MPI_CHARACTER, iDest, iTag, &

MPI_COMM_WORLD, iErr)elseDo iSource=1, iNoOfProcs – 1Call MPI_Recv(cMessage, 50, MPI_CHARACTER, iSource, &iTag, MPI_COMM_WORLD, status, iErr)Write(*, *) cMessageEnd Doend ifCall MPI_Finalize(iErr)

End Program

Πρόγραμμα “Hello world”

Page 4: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPIΕντολές αρχικοποίησης και πληροφοριών

Call MPI_Comm_rank(MPI_COMM_WORLD, iRank, iErr)

Call MPI_Comm_size(MPI_COMM_WORLD, iNoOfProcs, iErr)

Call MPI_Init(iErr)

Call MPI_Finalize(iErr)

Page 5: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPIΕντολές λήψης και αποστολής δεδομένων

Call MPI_Send(cMessage, 50, MPI_CHARACTER, iDest, &iTag, MPI_COMM_WORLD, iErr)

Call MPI_Recv(cMessage, 50, MPI_CHARACTER, iSource, iTag, &MPI_COMM_WORLD, status, iErr)

Αντιστοιχία τύπων δεδομένων MPI με αυτούς της γλώσσας FORTRAN

Τύπος δεδομένων MPI (MPI_DATATYPE) Τύπος δεδομένων FORTRAN

MPI_COMPLEX COMPLEX

MPI_DOUBLE_COMPLEX DOUBLE COMPLEX

MPI_LOGICAL LOGICAL

MPI_REAL REAL

MPI_DOUBLE_PRECISION DOUBLE PRECISION

MPI_INTEGER INTEGER

MPI_CHARACTER CHARACTER

Page 6: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPIΕντολές συλλογικής επικοινωνίας

Call MPI_BCast(Message, iSize, MPI_DATATYPE, &iRoot, MPI_COMM_WORLD, iErr)

Call MPI_Reduce(Operand, Message, iSize, MPI_DATATYPE, &MPI_OPERAND, iRoot, MPI_COMM_WORLD, iErr)

Όνομα τελεστή (MPI_OPERAND)

Σημασία

MPI_MAX Μέγιστο

MPI_MIN Ελάχιστο

MPI_SUM Άθροισμα

MPI_PROD Γινόμενο

MPI_LAND Logical AND

MPI_BAND Bitwise AND

MPI_LOR Logical OR

MPI_BOR Bitwise OR

MPI_LXOR Logical Exclusive OR

MPI_BXOR Bitwise Exclusive OR

Page 7: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPIΗ μέθοδος συζυγών διανυσματικών κλίσεων

fuKfgu )0()0()0()0( ,0

)()(

)()(

kTk

kTk

kK

gg

)()()1( kk

kk uu

)()()1( kk

kk Kgg

)()(

)1()1(

1 kTk

kTk

kgg

gg

)(1)1()1( k

kkk g

Αρχικές τιμές:

Για k=0,1,... μέχρι σύγκλισης

Page 8: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPIΗ μέθοδος συζυγών διανυσματικών κλίσεων

Αρχικές τιμές

vvvvvv fuKfgu )0()0()0()0( ,0

)()()( kv

Tkv

kv ggn

v

a

ka

k nn1

)()(0

)()()( kv

Tkv

kv Kd

v

n

kn

k dd1

)()(0

)(0

)(0)(

0 k

kk

d

n

)()()()1( kv

kv

kv

kv uu

)()()()1( kv

kv

kv

kv Kgg

)1()1()( kv

Tkv

kv ggd

v

n

kn

k dd1

)()(0

)(0

)(0)1(

k

kk

vn

d

)(1)1()1( k

vkk

vk

v g

Για k=0,1,... μέχρι σύγκλισης

Άθροιση στον master

Άθροιση στον master

Στον master

και αποστολή σε όλες τις διαδικασίες

Άθροιση στον master

και αποστολή σε όλες τις διαδικασίες

Page 9: Δ.Π.Μ.Σ. Υπολογιστικής Μηχανικής

National Technical University of Athens (NTUA), Greece

Institute of Structural Analysis & Seismic Research (ISASR)

Λογισμικό MPIΑποστολή σημειώσεων και κώδικα

[email protected]