Σκοπός αυτής της διπλωματικής εργασίας, είναι η μελέτη της απόδοσης, του χρόνου ε-
κτέλεσης και της απαίτησης σε μνήμη, του υπολογιστικού πακέτου CULA (CUDA LINEAR
ALGEBRA). Το CULA χρησιμοποιεί επεξεργαστές γραφικών (GPUs), προκειμένου να επι-
λύσει παράλληλα μεγάλα και αραιά γραμμικά συστήματα αλγεβρικών εξισώσεων, χρησι-
μοποιώντας επιλύτες τύπου Krylov. Το πακέτο CULA χρησιμοποιεί τη βιβλιοθήκη CUDA
για τη παράλληλη επεξεργασία. Το πακέτο CULA συγκρίνεται,ως προς το χρόνο εκτέλεσης,
με το υπολογιστικό πακέτο FE-BUI (FINITE ELEMENT BEOWULF USER INTERFACE).
To FE-BUI σε αντίθεση με το CULA χρησιμοποιεί τους επεξεργαστές (CPUs) ενός παράλ-
ληλου υπολογιστή για την επίλυση γραμμικών συστημάτων. Η επικοινωνία των επεξερ-
γαστών γίνεται με το πρωτόκολλο MPI (Message Passing Interface). Το φυσικό πρόβλημα
που αναλύεται είναι ένα 3D-Bratu και η διακριτοποίηση των διαφορικών εξισώσεων που
το περιγράφουν γίνεται με τη μέθοδο Galerkin/Πεπερασμένων στοιχείων. Τα μεγέθη των
γραμμικών συστημάτων που επιλύονται αγγίζουν τα 5 • 10^6 αγνώστους και τα 1.2 • 10^8
μη μηδενικά στοιχεία. Απο τους διαθέσιμους επιλύτες επιλέγεται η επαναληπτική μέθοδος
GMRES(m). Δεν επιλέγεται κάποιο είδος προσταθεροποίησης του συστήματος, ενώ το πρό-
τυπο αποθήκευσης του πίνακα που επιλέγεται είναι το CSR. Τα δύο πακέτα καλούνται μέσω
πηγαίου κώδικα Fortran 95. Για τις εκτελέσεις, χρησιμοποιείται η υπολογιστική συστοιχία
της Ανδρομέδας που είναι εγκατεστημένη στο υπολογιστικό κέντρο της Σχολής Χημικών
Μηχανικών του ΕΜΠ. Για την χρήση του πακέτου CULA χρησιμοποιείται μια NVIDIA Tesla
2050, ενώ για το πακέτο FE-BUI χρησιμοποιούνται και οι 12 διαθέσιμοι επεξεργαστές ενός
κόμβου της συστοιχίας. Γίνεται ανάλυση της απαίτησης μνήμης της GMRES(m) για όλα τα
μεγέθη προβλημάτων ενώ στη συνέχεια γίνεται σύγκριση των χρόνων εκτέλεσης μεταξύ των
δύο πακέτων. Τέλος παρουσιάζονται τα αποτελέσματα των συγκρίσεων και αποδεικνύε-
ται το μεγάλο πλεονέκτημα της GPU επεξεργασίας κατά την επεξεργασία πολύ μεγάλων
συστημάτων.
The purpose of this work is the study of the performance, the execution time and the
memory requirements of the CULA (CUDA LINEAR ALGEBRA) software library. CULA
uses the available GPUs in order to solve, in parallel, large sparse linear systems of algebraic
equations with, Krylov type iterative methods. CULA calls CUDA libraries to manage the
parallel processing. CULA performace and execution time is compared with the FE-BUI
(FINITE ELEMENT BEOWULF USER INTERFACE) software library.
In contrast with
CULA, FE-BUI uses the available CPUs of a parallel system, with the MPI (Message Passing
Interface) protocol for the communication of the processors. The problem that is analyzed, is
a 3D-Bratu problem and the discretization of its differential equations, is handled using the
Galerkin/Finite Element Method. The size of the linear systems that are being solved reaches
5 • 10^6 unknowns and 1.2 • 10^8 nonzero elements. From the several available Krylov type
solvers, the GMRES(m) method is chosen. No preconditioning technique was used, while
the CSR prototype is selected for the storage of the matrix. Fortan 95 source code is used
to call both libraries. The executions were done in Andromeda, which is a computational
cluster located in the computer lab of the School of Chemical Engineering in NTUA. CULA
runs on one NVIDIA Tesla 2050 GPU, while FE-BUI utilizes all 12 processors available in an
Andromeda node. Memory requirements of GMRES(m) of all problem sizes are calculated
and the execution times of both libraries are compared. All comparison results are presented
and the great advantage of GPU processing for large linear systems is demonstrated.