Νέα γλώσσα προγραμματισμού για παράλληλους υπολογισμούς.

Στη σημερινή εποχή τα τσιπ υπολογιστών, που αφορά τη διαχείριση μνήμης βασίζεται σε αυτό που οι επιστήμονες των υπολογιστών ονομάζουν ως  αρχή της τοπικότητας δηλαδή: Εάν ένα πρόγραμμα χρειάζεται ένα κομμάτι των δεδομένων που είναι αποθηκευμένα σε κάποια θέση μνήμης, χρειάζεται πιθανώς τα γειτονικά κομμάτια.

Αλλά αυτή η αρχή  στην εποχή των μεγάλων δεδομένων, τώρα που τα προγράμματα ηλεκτρονικών υπολογιστών πιο συχνά δρουν σε λίγα στοιχεία δεδομένων, διάσπαρτα αυθαίρετα σε τεράστια σύνολα δεδομένων. Με την ανάκτηση  επιστημονικών δεδομένων από την κύρια τράπεζα μνήμης τους είναι το κύριο εμπόδιο στην απόδοση των τσιπ, αφού η συχνή επανάληψη  μπορεί και προκαλεί εντυπωσιακά αργή εκτέλεση του προγράμματος.

Αυτή την εβδομάδα, κατά τη Διεθνή Διάσκεψη για Παράλληλες Αρχιτεκτονικές και τεχνικές κατάρτισης, ερευνητές από το Επιστήμης Υπολογιστών του MIT και Εργαστήριο Τεχνητής Νοημοσύνης (CSAIL) παρουσιάζουν μια νέα γλώσσα προγραμματισμού, που ονομάζεται Milk, που επιτρέπει στους προγραμματιστές εφαρμογών την διαχείριση της μνήμης πιο αποτελεσματικά σε προγράμματα που ασχολούνται με τα διάσπαρτα σημεία δεδομένων σε μεγάλα σύνολα.

Σε δοκιμές σε διάφορους κοινούς αλγόριθμους, προγράμματα γραμμένα στη νέα γλώσσα ήταν τέσσερις φορές τόσο γρήγορα όσο αυτά που γράφτηκαν στις υπάρχουσες γλώσσες. Όμως, οι ερευνητές πιστεύουν ότι οι περαιτέρω έρευνα στον τομέα αυτό  θα αποφέρει ακόμη μεγαλύτερα κέρδη στην επιστημονική και όχι μόνο κοινότητα.

Η σημερινή τεχνολογία των τσιπς υπολογιστών δεν είναι βελτιστοποιημένη για αραιά δεδομένα - στην πραγματικότητα, ισχύει το αντίθετο. Επειδή κατά την ανάκτηση δεδομένων από την κύρια τράπεζα μνήμης του τσιπ είναι αργή, κάθε πυρήνα, ή επεξεργαστής, σε ένα σύγχρονο τσιπ έχει τη δική του "cache," μια σχετικά μικρή, τοπική, υψηλής ταχύτητας μνήμης. Αντί να κουβαλούν ένα στοιχείο δεδομένων σε ένα χρόνο από την κύρια μνήμη, ένας πυρήνας θα φέρει ένα ολόκληρο οικοδομικό τετράγωνο των δεδομένων. Και αυτό μπλοκ επιλέγεται σύμφωνα με την αρχή της τοπικότητας.

Με ένα πρόγραμμα Milk, όταν ένας πυρήνας ανακαλύπτει ότι χρειάζεται ένα κομμάτι των δεδομένων, δεν θα το ζητήσει από την κύρια μνήμη. Αντ 'αυτού, προσθέτει τη διεύθυνση του στοιχείου δεδομένων σε μια τοπικά αποθηκευμένη λίστα διευθύνσεων. Όταν η λίστα είναι αρκετά μεγάλη, τότε όλοι οι πυρήνες του τσιπ ενώνουν τις λίστες τους, συγκεντρώνοντας αυτές τις διευθύνσεις που βρίσκονται κοντά μεταξύ τους, και τις αναδιανείμει τους στους πυρήνες. Με αυτόν τον τρόπο, κάθε πυρήνας πραγματοποιεί αιτήσεις μόνο για στοιχεία δεδομένων που γνωρίζει τις ανάγκες και ότι μπορούν να ανακτηθούν αποτελεσματικά.

"Πολλές σημαντικές εφαρμογές σήμερα είναι data-intensive, αλλά, δυστυχώς, το αυξανόμενο χάσμα στις επιδόσεις μεταξύ της μνήμης και CPU σημαίνει ότι δεν αξιοποιείτε πλήρως το τρέχον υλικό", λέει ο Matei Zaharia επίκουρος καθηγητής της επιστήμης των υπολογιστών στο Πανεπιστήμιο του Στάνφορντ. "Ο Milk βοηθά στην αντιμετώπιση αυτού του κενού με τη βελτιστοποίηση της πρόσβασης μνήμης στις κοινές δομές προγραμματισμού. Το έργο συνδυάζει την αναλυτική γνώση σχετικά με το σχεδιασμό των ελεγκτών μνήμης με τη γνώση για μεταγλωττιστές ώστε να εφαρμόσουν καλές βελτιστοποιήσεις για το τρέχον υλικό. "
Πηγή: ΜΙΤ

IT Special Advisor