The University of Adelaide, School of Computer Science Εισαγωγή στον παράλληλο προγραμματισμό Peter Pacheco The University of Adelaide, School of Computer Science 14 November 2017 Κεφάλαιο 6 Ανάπτυξη παράλληλων προγραμμάτων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved. Chapter 2 — Instructions: Language of the Computer
The University of Adelaide, School of Computer Science 14 November 2017 Περίγραμμα κεφαλαίου Επίλυση πιο σύνθετων προβλημάτων. Πρόβλημα n σωμάτων. Πρόβλημα περιοδεύοντος πωλητή. Εφαρμογή μεθοδολογίας Foster. Ξεκίνημα από το «μηδέν»: αλγόριθμοι χωρίς σειριακό αντίστοιχο. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved. Chapter 2 — Instructions: Language of the Computer
ΔΥΟ ΕΠΙΛΥΤΕΣ N ΣΩΜΑΤΩΝ Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Πρόβλημα n σωμάτων Ζητούμενο είναι ο υπολογισμός των θέσεων και των ταχυτήτων ενός συνόλου αλληλεπιδρώντων σωματιδίων στη διάρκεια μιας χρονικής περιόδου. Ένας επιλυτής n σωμάτων είναι ένα πρόγραμμα που βρίσκει τη λύση για ένα πρόβλημα n σωμάτων προσομοιώνοντας τη συμπεριφορά των σωματιδίων. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Θέσηχρόνος 0 Θέσηχρόνος x Επιλυτής n σωμάτων Μάζα Ταχύτηταχρόνος x Ταχύτηταχρόνος 0 Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Προσομοίωση κινήσεων πλανητών Προσδιορισμός θέσεων και ταχυτήτων: Δεύτερος νόμος κίνησης τού Νεύτωνα. Νόμος τού Νεύτωνα για την παγκόσμια βαρυτική έλξη. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Copyright © 2010, 2015, Elsevier Inc. , Klidarithmos Publications Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Copyright © 2010, 2015, Elsevier Inc. , Klidarithmos Publications Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Σειριακός ψευδοκώδικας Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Υπολογισμός των δυνάμεων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Βελτιωμένος αλγόριθμος για τον υπολογισμό των δυνάμεων The University of Adelaide, School of Computer Science 14 November 2017 Βελτιωμένος αλγόριθμος για τον υπολογισμό των δυνάμεων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved. Chapter 2 — Instructions: Language of the Computer
Οι μεμονωμένες δυνάμεις Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Χρήση εφαπτομένης για την προσέγγιση συνάρτησης Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Μέθοδος του Euler Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλληλοποίηση των επιλυτών n σωμάτων Εφαρμόζουμε τη μεθοδολογία Foster. Αρχικά θέλουμε να έχουμε πολλές εργασίες. Ξεκινάμε θεωρώντας ως εργασίες του προγράμματος τους υπολογισμούς των θέσεων, των ταχυτήτων, και των συνισταμένων δυνάμεων σε κάθε χρονοβήμα. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Επικοινωνίες μεταξύ εργασιών στον βασικό επιλυτή n σωμάτων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Επικοινωνίες μεταξύ συνδυασμένων εργασιών στον βασικό επιλυτή n σωμάτων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Επικοινωνίες μεταξύ συνδυασμένων εργασιών στον βελτιωμένο επιλυτή n σωμάτων q < r Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Υπολογισμός συνισταμένης δύναμης στο σωματίδιο q στον βελτιωμένο αλγόριθμο Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Σειριακός ψευδοκώδικας σάρωση των σωματιδίων Ουσιαστικά, η παραλληλοποίηση των δύο εσωτερικών βρόχων for ισοδυναμεί με αντιστοίχιση εργασιών-σωματιδίων σε πυρήνες. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Μια πρώτη απόπειρα Ας ελέγξουμε αν προκύπτουν συνθήκες ανταγωνισμού λόγω εξαρτήσεων μέσω βρόχου. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Πρώτος βρόχος Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Δεύτερος βρόχος Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Επαναλαμβανόμενες διακλαδώσεις και ενώσεις νημάτων Η ίδια ομάδα νημάτων θα χρησιμοποιείται και στους δύο βρόχους και για κάθε επανάληψη του εξωτερικού βρόχου. Όμως, κάθε νήμα θα τυπώνει όλες τις θέσεις και ταχύτητες. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Προσθήκη της οδηγίας single Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλληλοποίηση του βελτιωμένου επιλυτή με την OpenMP Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Προβλήματα οι ενημερώσεις της forces[3] προκαλούν συνθήκη ανταγωνισμού. Μάλιστα, αυτό ισχύει γενικά. Οι ενημερώσεις στα στοιχεία της συστοιχίας δυνάμεων εισάγουν συνθήκες ανταγωνισμού στον κώδικα. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Μια πρώτη απόπειρα λύσης πριν από όλες τις ενημερώσεις των δυνάμεων (forces) Η προσπέλαση της συστοιχίας forces θα είναι ουσιαστικά σειριακή!!! Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Δεύτερη απόπειρα λύσης Χρήση ενός κλειδώματος για κάθε σωματίδιο. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Υπολογισμοί πρώτης φάσης στον βελτιωμένο αλγόριθμο με διαμέριση κατά μπλοκ Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Υπολογισμοί πρώτης φάσης στον βελτιωμένο αλγόριθμο με κυκλική διαμέριση Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Αναθεωρημένος αλγόριθμος – φάση 1 Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Αναθεωρημένος αλγόριθμος – φάση 2 Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλ/ποίηση των επιλυτών με Pthreads Εξ ορισμού, οι τοπικές μεταβλητές στην Pthreads είναι ιδιωτικές, γι’ αυτό όλες οι κοινόχρηστες μεταβλητές των επιλυτών Pthreads είναι καθολικές. Οι βασικές δομές δεδομένων στους επιλυτές Pthreads είναι πανομοιότυπες με εκείνες των επιλυτών OpenMP: τα διανύσματα είναι διδιάστατες συστοιχίες αριθμών double, ενώ η μάζα, η θέση και η ταχύτητα κάθε μεμονωμένου σωματιδίου αποθηκεύονται σε μια δομή struct. Οι δυνάμεις αποθηκεύονται σε μια συστοιχία διανυσμάτων. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλ/ποίηση των επιλυτών με Pthreads Ο τρόπος εκκίνησης των επιλυτών Pthreads είναι κατά βάση ο ίδιος με εκείνον των επιλυτών OpenMP: το κύριο νήμα διαβάζει τα ορίσματα της γραμμής διαταγών, δεσμεύει μνήμη για τις βασικές δομές δεδομένων, και καθορίζει τις αρχικές τους τιμές. Η κυριότερη διαφορά μεταξύ των υλοποιήσεων Pthreads και OpenMP βρίσκεται στις λεπτομέρειες παραλληλοποίησης των εσωτερικών βρόχων. Επειδή η Pthreads δεν διαθέτει τίποτα ανάλογο με την οδηγία parallel for, πρέπει να καθορίζουμε ρητά ποιες τιμές των μεταβλητών βρόχου αντιστοιχούν στους υπολογισμούς κάθε νήματος. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλ/ποίηση των επιλυτών με Pthreads Άλλη μια διαφορά μεταξύ των εκδόσεων Pthreads και OpenMP έχει να κάνει με τα φράγματα. Στο τέλος των μπλοκ κώδικα parallel for η OpenMP τοποθετεί ένα υπονοούμενο φράγμα. Χρειάζεται να τοποθετήσουμε ρητά φράγματα μετά από τους εσωτερικούς βρόχους, όπου υπάρχει πιθανότητα να προκύψει συνθήκη ανταγωνισμού. Το πρότυπο Pthreads περιλαμβάνει ένα φράγμα. Όμως, το φράγμα αυτό δεν το υλοποιούν όλα τα συστήματα. Γι’ αυτό ορίσαμε μια συνάρτηση που χρησιμοποιεί μια μεταβλητή συνθήκης της Pthreads για την υλοποίηση του φράγματος. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλ/ποίηση βασικού επιλυτή με MPI The University of Adelaide, School of Computer Science 14 November 2017 Παραλ/ποίηση βασικού επιλυτή με MPI Επιλογές για τις δομές δεδομένων: Κάθε διεργασία αποθηκεύει ολόκληρη την καθολική συστοιχία με τις μάζες των σωματιδίων. Κάθε διεργασία χρησιμοποιεί μόνο μία συστοιχία n στοιχείων για τις θέσεις. Κάθε διεργασία χρησιμοποιεί έναν δείκτη loc_pos ο οποίος αναφέρεται στην αρχή του δικούς της μπλοκ στην pos. Συνεπώς, στη διεργασία 0 θα είναι loc_pos = pos, στη διεργασία 1 θα είναι loc_pos = pos + loc_n, κ.ο.κ. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved. Chapter 2 — Instructions: Language of the Computer
Ψευδοκώδικας για τον βασικό επιλυτή n σωμάτων με την MPI Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας για την έξοδο Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Επικοινωνίες σε μια πιθανή υλοποίηση με την MPI του επιλυτή n σωμάτων (για τον βελτιωμένο επιλυτή) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Δακτύλιος διεργασιών Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Κυκλική μεταβίβαση θέσεων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Υπολογισμός δυνάμεων στην κυκλική μεταβίβαση (1) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Υπολογισμός δυνάμεων στην κυκλική μεταβίβαση (2) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας για την υλοποίηση του βελτιωμένου επιλυτή n σωμάτων με την MPI Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Βρόχοι για τη σάρωση των σωματιδίων με βάση τους καθολικούς αριθμοδείκτες τους Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Απόδοση των επιλυτών MPI (δευτερόλεπτα) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Χρόνοι εκτέλεσης των επιλυτών MPI και OpenMP (δευτερόλεπτα) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
ΔΕΝΔΡΙΚΗ ΑΝΑΖΗΤΗΣΗ Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Το πρόβλημα της δενδρικής αναζήτησης (Tree Search Problem, TSP) Πρόβλημα NP-πλήρες. Δεν υπάρχει γνωστός αλγόριθμος για την επίλυσή του, ο οποίος να είναι πάντα σημαντικά καλύτερος από μια εξαντλητική αναζήτηση (exhaustive search). Στόχος του TSP είναι η εύρεση μιας περιοδείας ελάχιστου κόστους. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ένα TSP τεσσάρων πόλεων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Δένδρο αναζήτησης για το TSP τεσσάρων πόλεων Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας για την αναδρομική λύση τού TSP με αναζήτηση πρώτα κατά βάθος Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας για την υλοποίηση της αναζήτησης πρώτα κατά βάθος στο TSP χωρίς αναδρομή Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας για μια δεύτερη λύση τού TSP χωρίς τη χρήση αναδρομής Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Χρήση μακροεντολών προεπεξεργαστή Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Χρόνοι εκτέλεσης των τριών σειριακών υλοποιήσεων της δενδρικής αναζήτησης (χρόνοι σε δευτερόλεπτα) Ο κατευθυνόμενος γράφος εισόδου περιείχε 15 κόμβους (πόλεις). Και οι τρεις αλγόριθμοι μαζί «επισκέφτηκαν» περίπου 95.000.000 κόμβους. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Πώς μπορούμε να βεβαιωθούμε ότι βρήκαμε τη «βέλτιστη περιοδεία» (1) Όταν μια διεργασία ολοκληρώνει μια περιοδεία, χρειάζεται να ελέγχει αν έχει μια καλύτερη λύση από όσες έχουν καταγραφεί μέχρι τώρα. Η καθολική συνάρτηση Best_tour μόνο διαβάζει το καθολικό βέλτιστο κόστος, άρα δεν χρειάζεται να τη δεσμεύουμε, κλειδώνοντάς τη. Δεν υπάρχουν ανταγωνισμοί με άλλες διεργασίες ανάγνωσης. Αν η διεργασία δεν έχει μια καλύτερη λύση, τότε δεν επιχειρεί καμία ενημέρωση. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Πώς μπορούμε να βεβαιωθούμε ότι βρήκαμε τη «βέλτιστη περιοδεία» (2) Αν κάποιο νήμα ενημερώνει το καθολικό βέλτιστο κόστος, τότε ένα άλλο νήμα που το διαβάζει θα πάρει είτε την παλιά τιμή του είτε τη νέα, ενημερωμένη τιμή βέλτιστου κόστους. Αν και θα προτιμούσαμε το νήμα ανάγνωσης να πάρει τη νέα τιμή κόστους, δεν γίνεται να εξασφαλίσουμε αυτήν τη συμπεριφορά χωρίς να εφαρμόσουμε κάποια στρατηγική κλειδώματος υψηλού κόστους. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Πώς μπορούμε να βεβαιωθούμε ότι βρήκαμε τη «βέλτιστη περιοδεία» (3) Στην περίπτωση που κάποιο νήμα διαπιστώσει μετά από έλεγχο ότι έχει μια καλύτερη καθολική λύση, χρειάζεται να διασφαλίσουμε δύο πράγματα: 1) Ότι η διεργασία κλειδώνει την τιμή με ένα mutex για να μην προκύψει συνθήκη ανταγωνισμού. 2) Υπάρχει το ενδεχόμενο ο πρώτος μας έλεγχος να έγινε σε κάποια παλαιότερη τιμή καθώς η τιμή αυτή ενημερωνόταν από μια άλλη διεργασία· πρέπει λοιπόν να φροντίσουμε ώστε να μην αντικαταστήσουμε τη νέα τιμή με κάποια χειρότερη. Χειριζόμαστε αυτή την περίπτωση με κλείδωμα και επανέλεγχο. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Πρώτο σενάριο 22 27 30 22 27 καθολική τιμή περιοδείας διεργασία y καθολική τιμή περιοδείας διεργασία y διεργασία x τοπική τιμή περιοδείας τοπική τιμή περιοδείας 22 27 30 22 27 3. έλεγχος 6. κλείδωμα 7. επανέλεγχος 8. ενημέρωση 9. ξεκλείδωμα 1. έλεγχος 2. κλείδωμα 4. ενημέρωση 5. ξεκλείδωμα Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Δεύτερο σενάριο 27 30 29 27 καθολική τιμή περιοδείας διεργασία y καθολική τιμή περιοδείας διεργασία y διεργασία x τοπική τιμή περιοδείας τοπική τιμή περιοδείας 27 30 29 27 3. έλεγχος 6. κλείδωμα 7. επανέλεγχος 8. ξεκλείδωμα 1. έλεγχος 2. κλείδωμα 4. ενημέρωση 5. ξεκλείδωμα Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας για την υλοποίηση μιας στατικής παραλληλοποιημένης λύσης του TSP με την Pthreads Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Δυναμική παραλληλοποίηση της δενδρικής αναζήτησης με την Pthreads Προβλήματα τερματισμού. Κώδικας που εκτελείται από ένα νήμα πριν το νήμα διαιρέσει τη στοίβα του: Βεβαιώνεται ότι έχει τουλάχιστον δύο περιοδείες στη στοίβα του. Βεβαιώνεται ότι υπάρχουν άλλα νήματα σε αναμονή. Ελέγχει αν η μεταβλητή new_stack έχει τιμή NULL. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας συν/σης Terminated στην Pthreads (1) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ψευδοκώδικας συν/σης Terminated στην Pthreads (2) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Ομαδοποίηση των μεταβλητών τερματισμού Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Χρόνοι εκτέλεσης των προγραμμάτων δενδρικής αναζήτησης Pthreads προβλήματα 15 πόλεων (σε δευτερόλεπτα) πλήθος διαιρέσεων στοίβας στα νήματα Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Παραλληλοποίηση προγραμμάτων δενδρικής αναζήτησης με την OpenMP Τα ζητήματα στην υλοποίηση του στατικού και του δυναμικού προγράμματος δενδρικής αναζήτησης με την OpenMP είναι ίδια με εκείνα της υλοποίησής τους με την Pthreads. Επισημαίνουμε μερικές μικρές αλλαγές. Pthreads OpenMP Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Εξομοίωση αναμονής για συνθήκη στην OpenMP Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Απόδοση των υλοποιήσεων της δενδρικής αναζήτησης με την OpenMP και την Pthreads (χρόνοι σε δευτερόλεπτα) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΔΕΝΔΡΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΤΗΣ MPI ΚΑΙ ΣΤΑΤΙΚΗ ΔΙΑΜΕΡΙΣΗ Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Αποστολή αντικειμένων διαφορετικού πλήθους σε κάθε διεργασία Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συγκέντρωση αντικειμένων διαφορετικού πλήθους σε κάθε διεργασία Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Έλεγχος ύπαρξης διαθέσιμου μηνύματος Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συνάρτηση Terminated για έναν επιλυτή TSP με δυναμική διαμέριση στην MPI. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Τρόποι λειτουργίας και αποστολές με προσωρινή αποθήκευση Η MPI παρέχει τέσσερις τρόπους λειτουργίας (modes) για τις αποστολές. Κανονικό (standard) Σύγχρονο (synchronous) Ετοιμότητας (ready) Με προσωρινή αποθήκευση (buffered) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Εκτύπωση της βέλτιστης περιοδείας Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συνάρτηση Terminated για έναν επιλυτή TSP με δυναμική διαμέριση στην MPI (1) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συνάρτηση Terminated για έναν επιλυτή TSP με δυναμική διαμέριση στην MPI (2) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συσκευασία δεδομένων σε μια περιοχή προσωρινής αποθήκευσης συνεχούς μνήμης Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Αποσυσκευασία δεδομένων σε μια περιοχή προσωρινής αποθήκευσης συνεχούς μνήμης Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Copyright © 2010, 2015, Elsevier Inc. , Klidarithmos Publications Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Απόδοση υλοποιήσεων δενδρικής αναζήτησης με την MPI και την Pthreads (σε δευτερόλεπτα) Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συμπερασματικά σχόλια (1) Κατά την ανάπτυξη της βελτιωμένης λύσης του προβλήματος n σωμάτων με την MPI, ο αλγόριθμος «κυκλικής μεταβίβασης» αποδείχθηκε πολύ πιο εύκολος στην υλοποίηση ενώ πιθανότατα είναι και πιο επεκτάσιμος. Σε περιβάλλον κατανεμημένης μνήμης, όπου οι διεργασίες στέλνουν έργο η μία στην άλλη, ο προσδιορισμός της συνθήκης τερματισμού δεν είναι εύκολη υπόθεση. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συμπερασματικά σχόλια (2) Κατά την επιλογή API, χρειάζεται πρώτα να εξετάσουμε αν θα στραφούμε σε σύστημα κοινόχρηστης ή κατανεμημένης μνήμης. Χρειάζεται να εξετάσουμε τις απαιτήσεις της εφαρμογής σε μνήμη αλλά και τον όγκο των επικοινωνιών που πρέπει να λαμβάνουν χώρα μεταξύ των διεργασιών/νημάτων. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συμπερασματικά σχόλια (3) Αν οι απαιτήσεις μνήμης είναι υψηλές ή αν η υλοποίηση της εφαρμογής σε περιβάλλον κατανεμημένης μνήμης θα μπορούσε να λειτουργεί βασισμένη κυρίως στην κρυφή μνήμη, τότε είναι πιθανό ένα πρόγραμμα κατανεμημένης μνήμης να είναι πολύ ταχύτερο. Αν, από την άλλη, οι απαιτήσεις για επικοινωνίες είναι μεγάλες, τότε ένα πρόγραμμα κοινόχρηστης μνήμης θα είναι μάλλον ταχύτερο. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.
Συμπερασματικά σχόλια (4) Για την επιλογή μεταξύ της OpenMP ή της Pthreads, αν έχουμε ένα υπάρχον σειριακό πρόγραμμα που μπορεί εύκολα να παραλληλοποιηθεί με την απλή προσθήκη οδηγιών OpenMP, τότε η χρήση της OpenMP είναι η ξεκάθαρη επιλογή. Όμως, αν το πρόγραμμα απαιτεί περίπλοκες τεχνικές για τον συγχρονισμό των νημάτων, τότε ευκολότερη θα είναι η χρήση της Pthreads. Copyright © 2010, 2015, Elsevier Inc., Klidarithmos Publications. All rights Reserved.