59
3.5.3 Συγκέντρωση αποτελέσματος
Τελευταίο βήμα της παραλληλοποίησης του αλγορίθμου αποτελεί η συγκέντρωση των
υπολογισμών των επιμέρους διεργασιών. Για να επιτευχθεί η συγκέντρωση του αποτελέσματος
απαιτείται επικοινωνία μεταξύ των διεργασιών που εκτελούν τους υπολογισμούς με την πρώτη
διεργασία. Η πρώτη διεργασία δεν εκτελεί υπολογισμό ορατότητας, αλλά συγκεντρώνει τα
αποτελέσματα των υπολοίπων διεργασιών σε μια δισδιάστατη λίστα. Η επικοινωνία μεταξύ
των υπόλοιπων διεργασιών με την πρώτη διεργασία πραγματοποιείται με τις εντολές
comm.send και comm.recv. Οι διεργασίες, εκτός από την πρώτη, χρησιμοποιούν την εντολή
comm.send. Η εντολή αυτή στέλνει την λίστα που περιέχει τα αποτελέσματα του υπολογισμού
ορατότητας για κάθε διεργασίας στην πρώτη διεργασία. Η εντολή comm.send έχει
παραμέτρους τη δισδιάστατη λίστα, που περιλαμβάνει τις συντεταγμένες x και y του κάθε
κελιού που υπολογίστηκε, και μηδέν ή ένα που υποδεικνύει την ορατότητα του κελιού και
προορισμό την διεργασία μηδέν. Η διεργασία μηδέν χρησιμοποιεί την εντολή comm.recv σε
ένα βρόχο με παράμετρο την κάθε διεργασία από την οποία δέχεται επικοινωνία. Η εντολή
αυτή αποδέχεται την επικοινωνία από τις υπόλοιπες διεργασίες και αποθηκεύει την λίστα που
στέλνουν σε ένα δισδιάστατο πίνακα, στον οποίο συγκεντρώνονται τα αποτελέσματα όλων των
διεργασιών.
Σχήμα 42 Γραφική απεικόνιση του αποτελέσματος που υπολογίζει μια μόνο διεργασία. Με κόκκινο
απεικονίζονται τα κελιά που δεν είναι ορατά από τον παρατηρητή, με πράσινο τα κελιά που είναι ορατά από τον
παρατηρητή, ενώ με μαύρο παρουσιάζονται τα κελιά που υπολογίζονται από άλλες διεργασίες και δεν
υπολογίζεται η ορατότητα τους.
, παρουσιάζεται ο υπολογισμός ορατότητας που πραγματοποιεί κάθε διεργασία για
το κομμάτι που έχει αναλάβει. Με πράσινο απεικονίζονται τα κελιά που είναι ορατά από τον
παρατηρητή, με κόκκινο αυτά που δεν είναι ορατά, ενώ με μαύρο είναι τα κελιά για τα οποία
δεν υπολογίστηκε η ορατότητα από την παρούσα διεργασία και δεν υπάρχουν στοιχεία για την
ορατότητα τους. Η διεργασία μηδέν πραγματοποιεί την συγχώνευση των επιμέρους κομματιών,
δημιουργώντας έτσι το συνολικό αποτέλεσμα για ολόκληρο το DEM.