background image

 

37 

 

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

αλγορίθμου να μην βασίζεται στην σειριακή εκτέλεση των διεργασιών, αφού η σειρά εκτέλεσης 

τους δεν είναι προκαθορισμένη. Επιπλέον, σε περίπτωση που πραγματοποιείται πολύ συχνή 

επικοινωνία μεταξύ διεργασιών, η χρήση του MPI μπορεί να οδηγήσει σε πιο αργή εκτέλεση 

από  τον  σειριακό  προγραμματισμό.  Ως  εκ  τούτου,  η  χρήση  του  MPI  αποτελεί  μια  πιο 

προχωρημένη τεχνική προγραμματισμού, που μπορεί όμως να προσφέρει σημαντική βελτίωση 

στον χρόνο εκτέλεσης του κώδικα. 

 

Παρακάτω, αναφέρονται μερικές από τις πιο βασικές εντολές που χρησιμοποιούνται. 

Αρχικά,  πριν  την  χρήση  οποιασδήποτε  άλλης  εντολής  απαιτείται  η  εντολή 

MPI.COMM_WORLD,  η  οποία  δημιουργεί  μια  ομάδα  από  διεργασίες  που  επικοινωνούν 

μεταξύ τους. Η εντολή πρέπει να προηγείται από τις υπόλοιπες εντολές του MPI, και η σύνταξη 

της φαίνεται στο παρακάτω σχήμα (

Σχήμα 15

)

 

Σχήμα 15 Σύνταξη της εντολής MPI.COMM_WORLD για την αρχικοποίηση των συναρτήσεων του MPI που θα 

χρησιμοποιηθούν στην συνέχεια του αλγορίθμου. 

Δύο  από  τις  πιο  βασικές  συναρτήσεις  του  MPI  είναι  οι  comm.Get_rank()  και  η 

comm.Get_size(),  οι  οποίες  επιστρέφουν  τον  αριθμό  της  διεργασίας  που  εκτελείται  και  το 

συνολικό αριθμό των διεργασιών που εκτελούνται αντίστοιχα. 

 

Σχήμα 16 Παράδειγμα κλήσης των συναρτήσεων comm.Get_rank() και comm.Get_size() και αποθήκευση των 

τιμών, που επιστρέφουν στις μεταβλητές rank και  size αντίστοιχα. 

Στο  παραπάνω  σχήμα  (

Σχήμα  16

)  οι  συναρτήσεις  καλούνται  και  αποθηκεύουν  τις  τιμές  που 

επιστρέφουν  στις  μεταβλητές  rank  και  size.  Οι  συναρτήσεις  αυτές  είναι  απαραίτητες  στον 

προγραμματιστή, ώστε να διαπιστώσει των αριθμό των διεργασιών που χρησιμοποιούνται από 

τον χρήστη με την μεταβλητή size και να κατανείμει ανάλογα τον φόρτο την μεταβλητή rank

Για  τον  συντονισμό  των  διεργασιών  χρησιμοποιείται  η  επικοινωνία  από  σημείο  σε 

σημείο (point to point communication) ή η συλλογική επικοινωνία (collective communication). 

Η  επικοινωνία  από  σημείο  σε  σημείο  αφορά  στην  ανταλλαγή  δεδομένων  μεταξύ  δύο 

διεργασιών, κατά τη οποία η μια διεργασία στέλνει δεδομένα και η δεύτερη τα λαμβάνει. Η