English version (Αγγλική έκδοση)

Παράλληλη Επεξεργασία

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

    Μια περιληπτική αναφορά σε μερικά βασικά θέματα παράλληλης επεξεργασίας (όπως εφαρμόζεται στις μηχανές που παρουσιάζονται στην ιστοσελίδα αυτή) μπορεί να φανεί χρήσιμη. Για μια πληρέστερη μελέτη προτείνουμε το βιβλίο "F. Thomson Leighton, “Introduction to parallel algorithms and architectures: arrays, trees, hypercubes,” Morgan Kaufmann Publishers Inc., San Francisco, CA, 1991."

    Έχουν σχεδιαστεί και κατασκευαστεί δύο παράλληλες μηχανές:

- Η πρώτη με όνομα "Array of MCU" χρησιμοποιεί ως βασική επεξεργαστική μονάδα έναν κλώνο του 8051 και συγκεκριμένα το AT89S52 από την ATMEL. Η πρωτότυπη κατασκευή μπορεί να αξιοποιήσει μέχρι 16 επεξεργαστικές μονάδες. Η επικοινωνία μεταξύ των μονάδων γίνεται με λέξεις των 8-Bit που μεταδίδονται σε έναν κύκλο. Κάθε επεξεργαστική μονάδα μπορεί να επικοινωνήσει με 4 το πολύ άλλες μονάδες. Η μηχανή θεωρείται πια πολύ ΠΑΛΙΑ και τα κείμενα έχουν αποσυρθεί από το site.

- Η δεύτερη με όνομα "Parallel PIC" χρησιμοποιεί ως βασική επεξεργαστική μονάδα το PIC24FJ16 από την MICROCHIP. Η πρωτότυπη κατασκευή αξιοποιεί 8 επεξεργαστικές μονάδες. Η επικοινωνία μεταξύ των μονάδων γίνεται σειριακά μέσω των ενσωματωμένων UART. Κάθε επεξεργαστική μονάδα στην πρωτότυπη κατασκευή μπορεί να επικοινωνήσει με  12 το πολύ άλλες μονάδες.

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

    Για κάθε αλγόριθμο παρουσιάζεται υλοποίηση σε μία ή περισσότερες από τις παράλληλες μηχανές. Οι αλγόριθμοι που έχουν υλοποιηθεί είναι:

1) Ταξινόμηση σε ένα linear array (Ι/Ο σε ακρινές μονάδες επεξεργασίας) (Parallel PIC).

2) Ταξινόμηση σε ένα linear array (Ι/Ο σε κάθε μονάδα επεξεργασίας) (Parallel PIC).

3) Άθροισμα Ακεραίων σε Δυαδικό Δένδρο (Array of MCU).