background image

 

36 

 

δαχτυλιδιού, όπως συμβαίνει στο κελί, με συντεταγμένες (5.2) στο παραπάνω σχήμα (

Σχήμα 

14

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

τα κελιά με συντεταγμένες (2, 1) και (3, 1). Ο υπολογισμός μπορεί να γίνει με την χρήση του 

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

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

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

XDraw  αφορά  πιθανά  σφάλματα  στις  μετρήσεις  των  σημείων  που  υπολογίζονται 

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

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

στον αλγόριθμο, ακόμα και αν τα υπόλοιπα κελιά υπολογίζονται με ακρίβεια.

 

2.8 Εργαλεία που χρησιμοποιήθηκαν 

 

 

2.8.1 Python 3 

 

Η  Python  είναι  μια  γλώσσα  προγραμματισμού  υψηλού  επιπέδου,  η  οποία 

δημιουργήθηκε από τον Γκίντο βαν Ρόσσουμ (Guido van Rossum) [37] και κυκλοφόρησε το 

1991.  Η  Python  δίνει  έμφαση  στην  αναγνωσιμότητα  του  κώδικα,  που  επιτρέπει  εύκολη 

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

την συγγραφή κώδικα σε λιγότερες γραμμές σε σύγκριση με άλλες γλώσσες. Η περιεκτικότητα 

των βιβλιοθηκών της την καθιστά ευέλικτη για ένα μεγάλο φάσμα εφαρμογών [38]. 

2.8.2 Διεπαφή Μεταβίβασης Μηνυμάτων 

 

Η  Διεπαφή  Μεταβίβασης  Μηνυμάτων  (Message  Passing  Interface  -  MPI)  είναι  ένα 

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

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

να  καθιερώσει  ένα  φορητό,  αποδοτικό  και  ευέλικτο  πρότυπο  για  το  μοντέλο  παράλληλου 

προγραμματισμού που βασίζεται στη μεταβίβαση μηνυμάτων [28]. Πιο συγκεκριμένα, το MPI 

εκτελεί τον ίδιο κώδικα σε διαφορετικές διεργασίες και χρησιμοποιεί την επικοινωνία ανάμεσα 

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

τρόπο μοιράζεται ο φόρτος εργασίας σε πολλούς επεξεργαστές και επιταχύνεται ο αλγόριθμος. 

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

εντοπίσει  που  μπορεί  να  εφαρμοστεί  παράλληλη  επεξεργασία  και  να  την  εφαρμόσει  με