Επιβλέπων: Καθηγητής Εφαρμογών Δρ. Δημήτριος Βαρσάμης Ανάπτυξη Αλγορίθμων σε Παράλληλο Προγραμματιστικό Περιβάλλον (OpenCL & MPICH) Πτυχιακή εργασία του: Γεωργιάδη Παναγιώτη Επιβλέπων: Καθηγητής Εφαρμογών Δρ. Δημήτριος Βαρσάμης
Στόχοι της παρούσας πτυχιακής εργασίας Η σύγκριση των αποτελεσμάτων δύο διαφορετικών υλοποιήσεων με στόχο τον προσδιορισμό της καλύτερης, ως προς την απόδοση αλλά και το κόστος υλοποίησης Mελέτη ενός αντικειμένου το οποίο δεν περιλαμβάνεται σε προτυπτυχιακό επίπεδο Eισαγωγή στο νόημα της παραλληλοποίησης προβλημάτων
Εργαλεία που χρησιμοποιήθηκαν MPICH
Μοντέλα Επεξεργασίας Σειριακή Επεξεργασία Παράλληλη Επεξεργασία
Πλεονεκτήματα παράλληλης επεξεργασίας Μειώνει το χρόνο υπολογισμού/εκτέλεσης Παρέχει ταυτοχρονισμό Αξιοποιεί και μη τοπικούς πόρους Αυξάνει τις επιδόσεις μετάδοσης Δεν υπάρχει φυσικό όριο όπως εκείνο των transistors των επεξεργαστών Μειώνει το κόστος της αύξησης της ταχύτητας επεξεργασίας
Επίπεδα Παραλληλισμού Επίπεδο Λογικού Πυρήνα (Multi-threading): Ταυτόχρονη εκτέλεση πολλαπλών νημάτων (ελαφρών διεργασιών) σε έναν επεξεργαστή. Επίπεδο Φυσικού Πυρήνα (Multi-core): Ενσωμάτωση στο ίδιο ολοκληρωμένο κύκλωμα περισσότερων της μιας CPU. Επίπεδο Λειτουργιών (Multitasking): Ταυτόχρονη εκτέλεση λειτουργιών (διεργασιών) σε έναν υπολογιστή (πχ χρήση co-processors, DMA, I/O, κάρτες γραφικών κτλ). Επίπεδο Υπολογιστή/Υπολογισμού (Multiprocessing, Multi-computing): Tαυτόχρονη εκτέλεση ενός ή διαφορετικών προγραμμάτων σε πολλαπλούς επεξεργαστές. Επίπεδο Δικτύου και Διαδικτύου (Network Distributed Computing): Tαυτόχρονη εκτέλεση διαφορετικών -συνήθως- προγραμμάτων σε πολύ χαλαρά συνδεδεμένους υπολογιστές.
Είδη Παραλληλισμού Data Parallelism Task Parallelism
GPGPU vs MPI GPGPU MPI Devices Slave Nodes Network Master Node
OpenCL vs MPICH OpenCL (Open Computing Language) Aπαιτήσεις προτύπου: Μία επεξεργαστική μονάδα (CPU, GPU, FPGA, ALU κλπ.) Πλεονεκτήματα: Πολύ μικρό κόστος κατασκευής του κατάλληλου περιβάλλοντος. Δεν απαιτείται γνώση των συσκευών του περιβάλλοντος από τον προγραμματιστή. Υποστήριξη ετερογενών συστημάτων. Μεταφερσιμότητα. Είναι Open Source. Παρέχει δικούς του τύπους δεδομένων Περιλαμβάνεται στους drivers των GPU. Μειονεκτήματα: Μικρά περιθώρια επέκτασης του περιβάλλοντος και αύξησης των επιδόσεων. Βασίζεται στην υλοποίηση της κάθε εταιρείας.
OpenCL vs MPICH MPICH ( MPI Chameleon ) Aπαιτήσεις προτύπου: Μια συστοιχία υπολογιστών (Cluster) ή ένας Η/Υ με πολλαπλούς επεξεργαστές. Δίκτυο ή διαδίκτυο. Πλεονεκτήματα: Πολύ μικρό κόστος κατασκευής του κατάλληλου περιβάλλοντος. Υποστήριξη ετερογενών συστημάτων. Παρέχει δικούς του τύπους δεδομένων. Δεν υπάρχει όριο στην επέκταση του περιβάλλοντος και στην αύξηση των επιδόσεων. Είναι Open Source. Μειονεκτήματα: Πολύ μεγάλο κόστος κατασκευής του κατάλληλου περιβάλλοντος. Απαιτείται γνώση της τοπολογίας του δικτύου αλλά και των συστημάτων. Το λειτουργικό σύστημα είναι υπεύθυνο για την κατανομή των πόρων στις διεργασίες. Ο χρόνος μετάδοσης των δεδομένων εξαρτάται από την ταχύτητα του δικτύου. Απαιτούνται αρκετές γνώσεις για να υλοποιηθεί η εγκατάσταση του.
Διαδικασία εκτέλεσης πειραμάτων OpenCL Work Group Size = 10 Work Group Size = 5, offset = 0 Work Group Size = 5, offset = 5
Διαδικασία εκτέλεσης πειραμάτων MPI 1 Node 2 Nodes Node #1 Node #2 5 Nodes Node #1 Node #2 Node #3 Node #4 Node #5
Αποτελέσματα εκτέλεσης πειραμάτων OpenCL
Αποτελέσματα εκτέλεσης πειραμάτων OpenCL
Αποτελέσματα εκτέλεσης πειραμάτων OpenCL
Αποτελέσματα εκτέλεσης πειραμάτων MPI
Αποτελέσματα εκτέλεσης πειραμάτων MPI
Αποτελέσματα εκτέλεσης πειραμάτων MPI