Στόχος αυτής της διπλωματικής εργασίας είναι να ασχοληθεί και να εξερευνήσει
την επίδοση στη λύση αραιών συστημάτων γραμμικών εξισώσεων. Με αυτά τα
προβλήματα έρχονται αντιμέτωπες οι φυσικές,οικονομικές και γενικά κάθε είδους
επιστήμες. Η απαίτηση για αποδοτική και γρήγορη λύση αυτών των προβλημάτων ωθεί
την Επιστήμη των Υπολογιστών να αναζητήσει αποδοτικές λύσεις. Ιδιαίτερα ο κλάδος
που ασχολείται με συστήματα Υψηλής Επίδοσης προσπαθεί να παράγει μοντέλα που
καθιστούν την χρονοβόρα διαδικασία εκτέλεσης τέτοιων απαιτητικών προβλημάτων
βιώσιμη.
Εξετάζεται η επαναληπτική μέθοδος σύγκλισης Conjugate Gradient,η οποία
μπορεί να χειριστεί συμμετρικά συστήματα γραμμικών εξισώσεων. Αναλύεται ο
αλγόριθμος που χρησιμοποιεί η μέθοδος,εντοπίζονται τα σημεία τα οποία μπορούν να
παραλληλοποιηθούν με ορισμένα προγραμματιστικά μοντέλα και αναλύεται η επίδοση
τους με στόχο να εξαχθεί συμπέρασμα όσο αφορά το κέρδος από την όποια
παραλληλοποίησή τους.
Η παραλληλοποίηση γίνεται σε συστήματα
• κοινής μνήμης
• κατανεμημένης μνήμης
Και στις δύο αυτές πολύ διαφορετικές περιπτώσεις παραλληλισμού,προσπαθούμε
να αναλύσουμε τις ιδιομορφίες που υπάρχουν,τις αδυναμίες και τις δυνατότητες με
στόχο να εξάγουμε ένα συμπέρασμα για το βαθμό που κλιμακώνεται η επίδοση όσο
αυξάνουμε την ισχύ του συστήματος.
Αναλύεται η έννοια της συμμετρικότητας ενός αραιού πίνακα και μελετάμε την επίδοση
δύο συμμετρικών εκδόσεων του πυρήνα SpMV που αξιοποιούν την ιδιότητα αυτή ενός
συμμετρικού αραιού πίνακα.
Ειδικότερα,στο κομμάτι του προγραμματισμού σε σύστημα κατανεμημένης
μνήμης εξετάζεται ο βαθμός που θα διασπαστεί το αρχικό πρόβλημα σε υποπροβλήματα
μικρότερου μεγέθους έτσι ώστε το κέρδος που θα έχουμε από τη διάσπαση του
προβλήματος να μην εκτοπίζεται από το κόστος της επικοινωνίας που εισάγεται από τη
φύση του κατανεμημένου συστήματος.
Από την άλλη, στο σύστημα κοινής μνήμης,αναλύεται η βελτίωση της επίδοσης
σε συνάρτηση με τον αριθμό των χρησιμοποιούμενων πυρήνων που ενυπάρχουν στους
επεξεργαστές κι αναλύεται το φράγμα που τοποθετεί η ταχύτητα της κύριας μνήμης
όταν εντοπίζεται αστοχία στα δεδομένα. Τέλος υλοποιούμε μια ιδέα που έχει να κάνει με
τη συμπίεση των δεδομένων έτσι ώστε αυτά να καταφθάνουν ταχύτερα από την κύρια
μνήμη σε περίπτωση αστοχίας κι αναλύουμε την επίδοσή της.
The aim of this thesis is to explore and deal with the performance of solving sparse linear
systems. Physical, economic and generally any kind of scientists are dealing with these problems.
the requirement for efficient and fast solution to these problems is driving science computer seek
efficient solutions. Particularly high performance computing science is attempting to produce models
that make the lengthy implementation process of challenging such problems viable.
We examine the iterative convergence method conjugate gradient, which can handle
symmetrical linear systems. We analyze the algorithm that the method uses,choose the points which
can be parallelised using certain programming models and analyze their performance in order to reach
a conclusion regarding profit from any parallelization on them.
The parallelization is done in
• shared memory systems
• distributed memory systems
In these two very different cases of parallelism, we try to analyze the peculiarities that exist,
weaknesses and opportunities in order to draw a conclusion about the extent to which the performance
scales when increasing the efficiency of the system.
We analyze the concept of a sparse matrix symmetry and study
the performance of two symmetric spmv kernel versions that utilize this characteristic of a symmetric
sparse matrix.
Specifically, in distributed memory system programming we examine the extent to decompose
the original problem into smaller subproblems so that the gain by splitting the problem can not
be displaced by the cost of communication introduced by the distributed memory system nature.
On the other hand, the shared memory system, we analyze the performance improvement in
terms of the number of used cores and analyze the barrier puts the speed of main memory when a
failure in cache occurs.
Also, we implement an idea in compressing the data so that they arrive faster from the main
memory in case of failure, and analyze its performance.