Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΔημοσθένης Θεοδωρίδης Τροποποιήθηκε πριν 6 χρόνια
1
Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης
Επέκταση του συστήματος διασύνδεσης με τον πυρήνα του μοντέλου των NanoThreads και αξιοποίησή του από βιβλιοθήκες νημάτων που υλοποιούν το POSIX πρότυπο Ιωάννης Ε. Βενέτης
2
Κίνητρα (1/2) SMPs χρησιμοποιούνται πλέον ευρέως για παράλληλη επεξεργασία και ως εξυπηρετητές Παράλληλες εφαρμογές Engineering και desktop εφαρμογές Βιβλιοθήκες νημάτων (POSIX) Προγραμματιστικά μοντέλα υψηλού επιπέδου (OpenMP, Cilk). Βασίζονται σε βιβλιοθήκες νημάτων Πολυπρογραμματισμός Ταυτόχρονη εκτέλεση παράλληλων και σειριακών εφαρμογών Μεταβολές στο φορτίο του συστήματος
3
Κίνητρα (2/2) Αλληλεπίδραση πολυνηματισμού και πολυπρογραμματισμού
Λειτουργικά συστήματα δεν είναι ενήμερα για τον πολυνηματισμό Συστήματα χρόνου εκτέλεσης δεν είναι ενήμερα για τον πολυπρογραμματισμό Κακή απόδοση πολυνηματικών εφαρμογών σε πολυπρογραμματιζόμενα περιβάλλοντα Έχουν προταθεί πολλές λύσεις Απευθύνονται σε συγκεκριμένα προγραμματιστικά μοντέλα, βιβλιοθήκες νημάτων ή κλάσεις εφαρμογών
4
Στόχοι (1/2) Καλή απόδοση πολυνηματικών εφαρμογών υπό την παρουσία πολυπρογραμματισμού Μικρές επιβαρύνσεις Δυναμική προσαρμογή κάθε πολυνηματικής εφαρμογής στους πόρους που της διατίθενται Διαφάνεια Το σύστημα διασύνδεσης (API) των προγραμματιστικών μοντέλων δεν πρέπει να αλλάξει
5
Στόχοι (2/2) Αξιοποίηση υπαρχόντων μηχανισμών Γενικότητα
Οι νέοι μηχανισμοί πρέπει να ενσωματώνονται εύκολα σε κάθε προγραμματιστικό μοντέλο Ενσωμάτωση στο λειτουργικό σύστημα Οι νέοι μηχανισμοί δεν πρέπει να επηρεάζουν τις εγγενείς πολιτικές διαχείρισης πόρων
6
Επίπεδο Παρέμβασης (1/2)
Προγραμματιστικά μοντέλα υψηλού επιπέδου (OpenMP, Cilk) Δεν λαμβάνουν υπ’ όψη τους τον πολυπρογραμματισμό Υπάρχουσες εφαρμογές απαιτούν αλλαγές για την αξιοποίηση των νέων δυνατοτήτων Μεταφραστές και βιβλιοθήκες νημάτων απαιτούν αλλαγές Βιβλιοθήκες νημάτων Μεταφραστές απαιτούν αλλαγές
7
Επίπεδο Παρέμβασης (2/2)
Λειτουργικό Σύστημα Κοινοί μηχανισμοί Εφαρμογή πολιτικών βάσει της συνολικής κατάστασης του συστήματος Αξιοποίηση από βιβλιοθήκες νημάτων χωρίς αλλαγή του API Μηχανισμοί μοντέλου NanoThreads
8
Μηχανισμοί του μοντέλου (1/2)
Αποδοτικός δίαυλος επικοινωνίας μεταξύ λειτουργικού συστήματος και συστήματος χρόνου εκτέλεσης Περιοχή κοινής μνήμης Ενημέρωση των εφαρμογών για κρίσιμες αποφάσεις του χρονοπρογραμματιστή του λειτουργικού συστήματος (διακοπή διεργασίας, παραχώρηση επεξεργαστή) Ενημέρωση του λειτουργικού συστήματος για τον αξιοποιήσιμο παραλληλισμό κάθε εφαρμογής Ενημέρωση του λειτουργικού συστήματος για τις προτεραιότητες κάθε νήματος των εφαρμογών
9
Μηχανισμοί του μοντέλου (2/2)
Δευτερεύοντες χρονοπρογραμματιστές Έλεγχος εφαρμογών που αξιοποιούν τους νέους μηχανισμούς Ανάθεση υπολογιστικού χρόνου ανά εφαρμογή Συνεργασία με τον χρονοπρογραμματιστή του συστήματος Καλή απόδοση εφαρμογών σε δυναμικά μεταβαλλόμενο περιβάλλον εκτέλεσης Κλήσεις συστήματος Αρχικοποίηση εφαρμογών Επαναφορά διεργασιών που είχαν διακοπεί όσο εκτελούσαν χρήσιμο έργο Αποφυγή άσκοπης αναμονής στα σημεία συγχρονισμού
10
Σχηματικό διάγραμμα αρχιτεκτονικής
Εφαρμογή 1 Εφαρμογή n Εφαρμογή 1 Εφαρμογή m … … Κοινή Μνήμη Κοινή Μνήμη Κλήσεις Συστήματος Δευτερεύοντες Χρονοπρογραμματιστές Χρονοπρογραμματιστής Λειτουργικού Συστήματος …
11
Αξιοποίηση από βιβλιοθήκες νημάτων
Εκτέλεση κατάλληλης κλήσης συστήματος κατά την αρχικοποίηση της βιβλιοθήκης Τερματισμός νήματος Έλεγχος στην κοινή μνήμη για νήματα της εφαρμογής που έχουν διακοπεί Αν υπάρχουν παραχώρησε επεξεργαστή σε ένα από αυτά Σημεία συγχρονισμού Locks και Barriers Παραχώρηση επεξεργαστή
12
Υλοποίηση Λειτουργικό σύστημα Βιβλιοθήκη νημάτων Linux Έκδοση 2.2.15
Υλοποιήθηκαν οι παραπάνω μηχανισμοί και σύνολο πολιτικών χρονοδρομολόγησης για τους δευτερεύοντες χρονοπρογραμματιστές Βιβλιοθήκη νημάτων LinuxThreads Έκδοση 2.1.3 Υλοποίηση του προτύπου POSIX c για νήματα στο Linux +30 γραμμές κώδικα
13
Αποτελέσματα Σύνολα μετροπρογραμμάτων Μετάφραση μετροπρογραμμάτων
Fortran υλοποίηση των NAS Parallel Benchmarks (OpenMP) Εφαρμογές – παραδείγματα της γλώσσας Cilk Μετάφραση μετροπρογραμμάτων OmniMP compiler, έκδοση 1.2s Cilk compiler, έκδοση 5.3.1 gcc compiler, έκδοση Υπολογιστικό σύστημα Compaq Proliant 5500 4 CPU (Pentium Pro, 200 MHZ, 512Kb L2 cache) 512 MB κύρια μνήμη
14
EP Benchmark
15
CG Benchmark
16
MG Benchmark
17
Heat Benchmark
18
Συμπεράσματα Μηχανισμοί Μικρό σύνολο Γενικοί Διάφανοι
Εύκολα αξιοποιήσιμοι Μη παρεμβατικοί Καλή απόδοση πολυνηματικών εφαρμογών υπό την παρουσία πολυπρογραμματισμού
19
Δημοσιεύσεις A Transparent Operating System Infrastructure for Embedding Adaptability to Thread-Based Programming Models. Ioannis E. Venetis, Dimitrios S. Nikolopoulos, Theodore S. Papatheodorou. To appear at EuroPar '2001 Efficient Dynamic Parallelism with OpenMP on Linux SMPs. Christos D. Antonopoulos, Ioannis E. Venetis, Dimitrios S. Nikolopoulos, Theodore S. Papatheodorou. In Proceedings of PDPTA '2000 Achieving Multiprogramming Scalability on Intel SMP Platforms: Nanothreading in the Linux Kernel. Dimitrios S. Nikolopoulos, Christos D. Antonopoulos, Ioannis E. Venetis, Panagiotis E. Hadjidoukas, Eleftherios D. Polychronopoulos, Theodore S. Papatheodorou. In Proceedings of PARCO '1999
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.