The University of Adelaide, School of Computer Science

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κεφάλαιο Τμηματικός προγραμματισμός
Advertisements

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Εισαγωγή στους Η/Υ Πίνακες.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ζητήματα Σελιδοποίησης
Message Passing Interface (MPI)
29/11/2004Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
1/12/2003Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Αναγνώριση Προτύπων.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Καλώς ήρθατε ! Ετοιμάζεστε να παρακολουθήσετε την παρουσίαση της εφαρμογής Copyright © iBS LTD, all rights reserved.
Αλγόριθμοι και Πολυπλοκότητα
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Προσεγγιστικοί Αλγόριθμοι
Πτυχιακή εργασία: «Ανάπτυξη αλγορίθμου Γενετικού Προγραμματισμού (Genetic Programming) με δυνατότητα διαχείρισης δενδροειδών δομών και εφαρμογή του στην.
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Σχεδίαση αλγορίθμων (2ο μέρος)
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΒΕΣ 06: Προσαρμοστικά Συστήματα στις Τηλεπικοινωνίες © 2007 Nicolas Tsapatsoulis Προσαρμοστικοί Αλγόριθμοι Υλοποίησης Βέλτιστων Ψηφιακών Φίλτρων: Ο αναδρομικός.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Η Δομή Επανάληψης οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες… Η παρουσίαση της εντολής Μέχρις_ότου είναι από την εισήγηση των κ. Σ. Δουκάκη.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός – Hashing (1 ο Μέρος)
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
RPC Multithreaded voting system Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Παράλληλη/Κατανεμημένη Επεξεργασία και Εφαρμογές
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Λογικός Σχεδιασμός Σχεσιακών Σχημάτων.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Νήματα με την χρήση των Posix Threads (pthreads)‏.
Διάλεξη 14: Εισαγωγή στη ροή ρευστών
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
The University of Adelaide, School of Computer Science
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
The University of Adelaide, School of Computer Science
Δυναμικός Κατακερματισμός
Επίλυση Προβλημάτων με Αναζήτηση
Κατανεμημένα Συστήματα
The University of Adelaide, School of Computer Science
The University of Adelaide, School of Computer Science
The University of Adelaide, School of Computer Science
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Δυναμικός Προγραμματισμός
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Δυναμικός Κατακερματισμός
UNIT 1 Τα Πρώτα Προγράμματα.
Μεταγράφημα παρουσίασης:

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.