O Παράλληλος προγραμματισμός είναι γνωστός από παλαιότερα. Πίσω στις δεκαετίες
του '50 και του '60 χρησιμοποιήθηκε από τους ειδικους στα πλαίσια των εφαρμογών
για υπερυπολογιστές για να επιταχύνει επιστημονικές και άλλες εφαρμογές. Απο τα μέσα της
περασμένης δεκαετίας ήρθε ξανά στο προσκήνιο, όταν η Intel ακολούθησε την IBM και τη Sun
Microsystems και ανακοίνωσε τον πρώτο διπύρηνο επεξεργαστή. Όσο η ανάγκη για περισσότερη
υπολογιστική ισχύ εντείνεται, χρησιμοποιούμε όλo και περισσότερες και διαφορετικές υπολογιστικές
μονάδες. Οι κάρτες γραφικών είναι το νέο ατού στον κόσμο της υψηλής υπολογιστικής ισχύς αφού
έχουν για αρκετές εφαρμογές πολύ καλύτερη απόδοση από τους κλασικούς επεξεργαστές. Γι' αυτούς
τους λόγους χρειαζόμαστε και νέα, πιο βολικά στη χρήση, προγραμματιστικά εργαλεία. Η NVIDIA
λάνσαρε την CUDA, το προγραμματισικό της εργαλείο για τις κάρτες γραφικών της, κάνοντας τον
προγραμματισμό για κάρτες γραφικών πιο έυκολο απο ποτέ. Στο supercomputing κέντρο της
Βαρκελώνης (ΒSC) αναπτύσσουν από το 2007 το OmpSs ένα προγραμματιστικό μοντέλο για
προγραμματισμό σε ετερογενείς πλατφόρμες (συνδυασμό πλατφόρμων κοινής μνήμης (shared memory)
και καρτών γραφικών). Σε αυτή τη διπλωματική αναπτύξαμε ένα σετ από μετροπρογράμματα (Rodinia)
με το OmpSs και συγκρίναμε απόδοση και ευκολία στον προγραμματισμό σε σχέση με υπάρχοντα
εργαλεία (CUDA, OpenCL). Η διπλωματική εκπονήθηκε στο πολυτεχνείο της Βαρκελώνης (UPC) στα
πλαίσια του προγράμματος Erasmus.
Parallel computing has been well known for many years. Back to the 50’s and 60’s the big
supercomputers were used to accelerate critical applications. But it took almost thirty
years for it to become prominent. Since the mid of the 2000s when Intel followed IBM
and Sun Microsystems and announced the first dual-core processor every desktop and
laptop features many-core computing components. And as the need for more computing
power is getting aggressive new computational units are used. GPUs made the new
boom in the high performance industry with their high throughtput and computing
power. As a result there is a need for new, more expressive and more convenient parallel
programming tools. Nvidia has launched its CUDA programming tool since 2007 to make
the programming of GPUs easier than ever. The BSC team, closely related with the
Technical University of Catalunya has been developing OmpSs a parallel programming
tool which is an extension of OpenMP for programming in heterogenous architectures. It
supports programming for shared memory processors and GPUs. In the current project
we developed and evaluated the Rodinia suite of Benchmarks with OmpSs for GPUs
and compared the performance gains and programmability with CUDA and OpenCL