background image

 

66 

 

 

Εξίσου σημαντικό είναι να εξεταστεί και η βελτίωση της απόδοσης που πετυχαίνει η 

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

την επεξεργαστική ισχύ του υπολογιστή  που χρησιμοποιείται, αλλά και το πόσο ευδιάκριτα 

είναι τα ορατά κελιά. Πιο συγκεκριμένα, ο τελευταίος παράγοντας αφορά πόσο μεγάλες είναι 

οι διαφορές ύψους ανάμεσα στα κελιά. Αν τα κελιά περιμετρικά του παρατηρητή είναι πολύ 

ψηλότερα από όλα τα υπόλοιπα κελιά, ο υπολογισμός είναι εξαιρετικά γρήγορος. Αντίθετα, αν 

τα  κελιά  έχουν  όλα  το  ίδιο  ύψος,  ο  υπολογισμός  είναι  χρονοβόρος,  αφού  απαιτούνται 

αναλυτικοί υπολογισμοί για το σύνολο των κελιών. 

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

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

Διεργασίες 

15 

30 

45 

60 

75 

90 

Χρόνος αλγορίθμου 

διπλωματικής 

540sec 

85sec 

48sec 

35sec 

28sec 

22sec 

19sec 

Χρόνος GRASS 

55sec 

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

Η  απόκλιση  στον  χρόνο  που  παρουσιάζεται,  οφείλεται  στις  τεχνικές  διαχείρισης  μνήμης  σε 

συνδυασμό  με  τη  χρήση  δεικτών,  που  εφαρμόζονται  στον  αλγόριθμο  του  GRASS.  Ο 

αλγόριθμος  του  GRASS  είναι  γραμμένος  σε  C++,  η  οποία  παρέχει  τη  δυνατότητα  στον 

προγραμματιστή να διαχειριστεί την διαθέσιμη μνήμη του υπολογιστή, ενώ αντίθετα, η Python 

περιορίζεται από το GIL (Global Interpreter Lock). Κατά συνέπεια, στην Python η παρέμβαση 

του  προγραμματιστή  στη  μνήμη  δημιουργεί  προβλήματα,  αφού  παρεμβαίνει  στη  διαχείριση 

μνήμης που εκτελείται από τον διερμηνέα (interpreter). Ταυτόχρονα η C++ υποστηρίζει την 

χρήση δεικτών, μια δομή δεδομένων που καταλαμβάνει πολύ μικρότερο χώρο στη μνήμη από 

τους πίνακες που είναι διαθέσιμοι στην Python.  

Από  τον  παραπάνω  πίνακα  (Πίνακας  5),  εντοπίζονται  και  οι  περιορισμοί  της 

παράλληλης επεξεργασίας. Όπως φαίνεται και στον πίνακα 5, ο χρόνος εκτέλεσης δεν είναι 

ακριβώς ανάλογος των διεργασιών που χρησιμοποιούνται. Ένας παράγοντας που επηρεάζει τις 

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

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

φύση του αλγορίθμου. Το πρόβλημα χωρίζεται σε ακριβώς ίσους τομείς με ίδιο αριθμό κελιών, 

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

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

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