Ο σχεδιασμός συστημάτων παράλληλης επεξεργασίας είναι σημαντικό να γίνεται με τέτοιο τρόπο ώστε να μπορεί να καλύψει τις απαιτήσεις διαφορετικών προγραμμάτων που πρόκειται να εκτελεστούν στο μέλλον. Κάθε σύγχρονο πρόγραμμα έχει διαφορετικές ιδιαιτερότητες που πρέπει να ληφθούν υπόψιν ώστε η παράλληλη εκτέλεσή του να είναι αποδοτική. Στην παρούσα εργασία επεξεργαστήκαμε το PARSEC 3.0 benchmark, το οποίο αποτελείται από διαφορετικά σύγχρονα παράλληλα προγράμματα. Ο στόχος της παρούσας διπλωματικής είναι η μελέτη ενός υποσυνόλου αυτών, ως προς την αξία τους στο σύγχρονο κόσμο και ως προς τους λόγους για τους οποίους η παράλληλη εκτέλεσή τους είναι αποδοτική ή όχι. Δόθηκε βάση στον τρόπο με τον οποίο κάθε εφαρμογή σχεδιάστηκε χρησιμοποιώντας παράλληλο προγραμματισμό όπως επίσης και στις διαφορετικές δομές δεδομένων που αξιοποιήθηκαν. Επιπλέον, μελετήθηκαν ξεχωριστά οι αιτίες που αποτελούν εμπόδιο για την γρήγορη εκτέλεση κάθε προγράμματος. Δοκιμάστηκαν βελτιστοποιήσεις και τροποποιήσεις των προγραμμάτων και των δεδομένων που χρησιμοποίούν, με στόχο την ακριβέστερη συλλογή συμπερασμάτων. Τέλος, μελετήθηκε ο χρονοπρογραμματισμός όλων των εφαρμογών στο ίδιο περιβάλλον. Το συγκεκριμένο μέρος παρουσιάζει ενδιαφέρον, καθώς η συπεριφορά ενός προγράμματος μπορεί να είναι διαφορετική όταν αυτό εκτελείται απομονωμένα ή σε συνδιασμό με άλλα ταυτόχρονα.
Designing a chip multiprocessor architecture can be very challenging, because it must satisfy the
requirements of many different applications that will be executed in the future. Each of the modern
programs has different needs in order to be executed efficiently in parallel and have good scaling.
In the current project we use the PARSEC 3.0 benchmark suite, which contains many applications
from several modern domains. The thesis aims to analyze a subset of these programs extensively and
focus on their behavior and problems when running in parallel. We emphasize on the parallelization
approaches that are used and in the data structures that are chosen for each program as well. Moreover,
we execute measurements in the laboratory and as part of this effort we are changing and in some cases
optimizing the implementation of the programs. Last but not least, we are scheduling all the programs
of PARSEC to run in parallel at the same time and extract interesting observations. Since the different
cores in this architecture are not completely isolated with each other, the behavior of each program
depends a lot on the other programs that are being executed simultaneously.