Ε-85: Ειδικά Θέµατα Λογισµικού

Σχετικά έγγραφα
Περίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού

Προγραµµατισµός Νηµάτων. Αρχικοποίηση µιας Φοράς pthread_once_t once_block = PTHREAD_ONCE_INIT; pthread_mutex_t mutex;

Ε-85: Ειδικά Θέµατα Λογισµικού

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Προγραμματισμός με το OpenMP Β. Δημακόπουλος

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Κατανεμημένος και Παράλληλος Προγραμματισμός

Κατανεμημένος και. Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο)

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Παράλληλη Επεξεργασία

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

Παράλληλη Επεξεργασία

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Κατανεμημένος και Παράλληλος Προγραμματισμός

Ε-85: Ειδικά Θέµατα Λογισµικού

Παρουσίαση 5 ης Άσκησης:

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών

Εισαγωγή στον Προγραµµατισµό Πολυεπεξεργαστικών Συστηµάτων Κοινής Μνήµης µε...

Κατηγορίες Νηµάτων. Νήµατα Επιπέδου Πυρήνα. Νήµατα Επιπέδου Χρήστη. «Νήµατα Επιπέδου Χρήστη» Ε-85: Ειδικά Θέµατα Λογισµικού

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP

Παρουσίαση 5 ης Άσκησης:

Επιμερισμός δεδομένων

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Πολυπύρηνοι επεξεργαστές Multicore processors

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 6/3/2016

2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος

Συστήµατα Παράλληλης Επεξεργασίας

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

Αρχιτεκτονική Υπολογιστών

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

OpenMP. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων. Αθήνα, Νοέµβριος /11/2004 Εισαγωγή στο OpenMP 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)

ΜΕΤΑΒΑΤΙΚΕΣ ΠΡΟΫΠΟΘΕΣΕΙΣ ΑΠΟΚΤΗΣΗΣ ΠΤΥΧΙΟΥ

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (pthreads)

Αρχιτεκτονικές Υπολογιστών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Παράλληλη Επεξεργασία

30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος

Παράλληλη Επεξεργασία

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

Αρχιτεκτονική Υπολογιστών

Ορολογία. Παράδειγµα 3. Εξισορρόπηση Εργασίας. Ε-85: Ειδικά Θέµατα Λογισµικού. E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6

Αρχιτεκτονική κοινής μνήμης

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Εισαγωγή. Λογισµικό & Προγραµµατισµός Συστηµάτων Υψηλής Επίδοσης

Προγραμματισμός με Μεταβίβαση Μηνυμάτων

Ε-85: Ειδικά Θέµατα Λογισµικού

Αρχιτεκτονική Υπολογιστών

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή

Message Passing Interface (MPI)

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

ΠαράδειγµαΠρογραµµατισµού

Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ

Κεφάλαιο VIΙΙ Β. Δημακόπουλος

NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

είκτες και Πίνακες (2)

OpenMP. Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ. OpenMP p.

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Συστήµατα Παράλληλης Επεξεργασίας. OpenMP

Message Passing Interface (MPI)

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Αντικειµενοστρεφής Προγραµµατισµός

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

Εκφωνήσεις ασκήσεων εργαστηρίου 1

Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού.

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων

Κατανεμημένος και Παράλληλος Προγραμματισμός

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

EM 361: Παράλληλοι Υπολογισμοί

Πληροφορική 2. Γλώσσες Προγραμματισμού

Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

Β Εξάµηνο Τίτλος Μαθήµατος Θ Φ Α.Π Ε Φ.E. Π.Μ Προαπαιτούµενα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Transcript:

Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 1

Περίληψη Υπερυπολογιστές Πολυεπεξεργαστικά συστήµατα και νέες τεχνολογίες Μοντέλα προγραµµατισµού Παραδείγµατα εφαρµογών E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 2

Υπερυπολογιστές Οιυπερυπολογιστές (supercomputers) είναι οι πιο ισχυροί υπολογιστές Χρησιµοποιούνται για προβλήµατα που απαιτούν περίπλοκους και χρονοβόρους υπολογισµούς Εξαιτίας του µεγέθους και του κόστους τους, οι υπερυπολογιστές είναι σχετικά σπάνιοι Οι υπερυπολογιστές χρησιµοποιούνται από πανεπιστήµια, ερευνητικά κέντρα και µεγάλες επιχειρήσεις E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 3

Υπολογιστικάπροβλήµατα Μοντελοποίηση πολύπλοκων διεργασιών Πυρηνική σύντηξη Περιβαλλοντολογικές συνθήκες Προβλήµατα ρευστοδυναµικής Χαρτογράφηση DNA Πρόβλεψη καιρού Εξόρυξη δεδοµένων E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 4

TOP 500 (Ιούνιος 2007) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 5

TOP 500 (Ιούνιος 2009) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6

BlueGene/L (#1το 2007) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 7

Συστάδες Πολυεπεξεργαστικών Συστηµάτων ΕΣ ΕΣ ΕΣ ΕΣ Εσωτερικό.. Εσωτερικό.. Κοινή Μνήµη Κοινή Ιδεατή Μνήµη Κοινή Μνήµη ιασυνδετικό ίκτυο Συστάδας Υβριδικό Μοντέλο Μνήµης Κατανεµηµένη µνήµη µεταξύ των κόµβων Κοινή Μνήµη µεταξύ των επεξεργαστών ενός κόµβου Κοινή Ιδεατή Μνήµη: ενοποίηση των µνηµών µε κατάλληλο λογισµικό E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 8

ΠολυεπεξεργαστικάΣυστήµατα Πολυεπεξεργασίαείναι η χρήση δύο ή περισσότερων επεξεργαστών (CPUs) σε ένα απλό υπολογιστικό σύστηµα Όλοι οι επεξεργαστές έχουν ίση πρόσβαση στην µνήµη του συστήµατος ύο η περισσότερα προγράµµατα, π.χ. διεργασίες, εκτελούνται ταυτόχρονα Μέχρι πριν λίγα χρόνια, τα συγκεκριµένα συστήµατα είχαν αρκετά υψηλό κόστος E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 9

ΠολυεπεξεργαστικάΣυστήµατα Οιυπολογιστικές ανάγκες των χρηστών συνεχώς αυξάνονται Ανάγκη για παράλληλη επεξεργασία χωρίς επιπλέον κόστος Σε επίπεδο υλικού (π.χ. ειδικές µητρικές πλακέτες) Σε επίπεδο λογισµικού (π.χ. άδειες λειτουργικού συστήµατος) Λύσεις: Επεξεργαστές µε τεχνολογία Hyper-threading (SMT) Επεξεργαστές µε τεχνολογία Multi-Core E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 10

Τεχνολογία Hyper-Threading Τοσύστηµα διαθέτει έναν φυσικό επεξεργαστή µε δύο λογικούς επεξεργαστές ιαµοίραση των λειτουργικών µονάδων εκτέλεσης του επεξεργαστή E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 11

Τεχνολογία Multi-Core Στηνπερίπτωση αυτή έχουµε στο ίδιο chip, δύο ή περισσότερους επεξεργαστικούς πυρήνες Απόδοση παρόµοια µε αυτή των παραδοσιακών πολυεπεξεργαστικών συστηµάτων E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 12

ΓενικήΠολυπύρηνη Αρχιτεκτονική E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 13

Αρχιτεκτονική Cell Broadband Engine E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 14

Αρχιτεκτονική NVIDIA GPU G80 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 15

ΕµπορικάΠολυπύρηνα Συστήµατα E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 16

ΘέµαταΛογισµικού Απαραίτητη η υποστήριξη από το λειτουργικό σύστηµα Πολυπρογραµµατισµός: ταυτόχρονη εκτέλεση πολλών ανεξάρτητων προγραµµάτων Βασικές τεχνικές προγραµµατισµού για την εκµετάλλευση των πολλαπλών επεξεργαστών - πυρήνων ιεργασίες (µεγάλο κόστος, δυσκολία προγραµµατισµού) Νήµατα (µικρό κόστος, ευκολία προγραµµατισµού) OpenMP (έµµεση χρήση νηµάτων, ελάχιστη προσπάθεια) MPI (ρουτίνες ρητής µετακίνησης δεδοµένων µεταξύ διεργασιών, δυσκολία προγραµµατισµού) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 17

Υπολογισµός του π ακολουθιακή έκδοση static long num_steps; double step; int main () { int i; double x, pi, sum = 0.0; num_steps = 100000; step = 1.0/(double) num_steps; for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; } return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 18

Υπολογισµός του π πολυνηµατική έκδοση #include <pthread.h> #define NUM_THREADS 2 pthread_t thread[num_threads]; pthread_mutex_t UpdateMutex; static long num_steps; double step; double global_sum = 0.0; void *Pi (void *arg) { int i, start; double x, sum = 0.0; } start = *(int *) arg; step = 1.0/(double) num_steps; for (i=start;i<= num_steps; i=i+num_threads){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pthread_mutex_lock (&UpdateMutex); global_sum += sum; pthread_mutex_unlock(&updatemutex); return 0; int main () { double pi; int i; num_steps = 100000; int Arg[NUM_THREADS]; for(i=0; i<num_threads; i++) threadarg[i] = i+1; pthread_mutex_init (&UpdateMutex, NULL); for (i=0; i<num_threads; i++) pthread_create(&thread[i], NULL, Pi,&Arg[i]); for (i=0; i<num_threads; i++) pthread_join(thread[i], NULL); pi = global_sum * step; return 0; } E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 19

Υπολογισµός του π ακολουθιακή έκδοση static long num_steps; double step; int main () { int i; double x, pi, sum = 0.0; num_steps = 100000; step = 1.0/(double) num_steps; for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; } return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 20

Υπολογισµόςτου π µε χρήση του OpenMP #include <omp.h> static long num_steps = 100000; double step; #define NUM_THREADS 2 int main () { int i; double x, pi, sum = 0.0; step = 1.0/(double) num_steps; omp_set_num_threads(num_threads); #pragma omp parallel for reduction(+:sum) private(x) for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; } return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 21

Υπολογισµός του π ακολουθιακή έκδοση static long num_steps; double step; int main () { int i; double x, pi, sum = 0.0; num_steps = 100000; step = 1.0/(double) num_steps; for (i=1;i<= num_steps; i++){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; } return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 22

Υπολογισµόςτου π µε χρήση του MPI #include <mpi.h> static long num_steps; double step; int main(int argc,char *argv[]) { int i, me, nproc; double x, pi, sum=0.0, local_pi; MPI_Init(&argc, &argv); MPI_Comm_size( MPI_COMM_WORLD, &numprocs); MPI_Comm_rank( MPI_COMM_WORLD, &myid); } <core execution code> MPI_Finalize(); return 0; if (myid == 0) num_steps = 100000; MPI_Bcast(&numsteps, 1, MPI_INT, 0, MPI_COMM_WORLD); step = 1.0/(double) num_steps; for (i=1;i<= num_steps; i+=numprocs){ x = (i-0.5)*step; sum = sum + 4.0/(1.0+x*x); } local_pi = step * sum; MPI_Reduce(&local_pi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 23

OpenMP Μοντέλο προγραµµατισµού για παράλληλα συστήµατα Οδηγίες προς τον µεταγλωττιστή ώστε να παράγει κώδικα µε νήµατα Όλες οι µεγάλες εταιρίες το υποστηρίζουνή/και αποφασίζουν για την εξέλιξή του Intel, SUN, IBM, Microsoft (Visual Studio 2005) GNU GCC 4.2 Ερευνητικοί compilers Omni (Ιαπωνία), NANOS (Ισπανία), OpenUH (ΗΠΑ), OMPi (Ελλάδα) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 24

Παραδείγµαταεφαρµογών Σύστηµα εντοπισµού προσώπου σε εικόνες (face detection) Αλγόριθµος οµαδοποίησης δεδοµένων (data clustering) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 25

Εντοπισµόςπροσώπου Στόχοςη δυνατότητα επεξεργασίας εικόνων σε πραγµατικό χρόνο Σύστηµα εντοπισµού προσώπου: Delakis & Garcia E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 26

Εντοπισµόςπροσώπου Χρονοβελτίωση σε σύστηµα µε 4 επεξεργαστές = 3.5 Επίτευξη: εκτέλεση του αλγορίθµου εντοπισµού προσώπου σε πραγµατικό χρόνο σε ένα οικονοµικό υπολογιστικό σύστηµα. Χρονοβελτίωση Εφαρµογής 4.0 3.5 3.0 T=2 Speedup 2.5 2.0 1.5 ` T=3 T=4 1.0 0.5 0.0 GCC42 SUNCC ICC OMPI/ICC OpenMP Compiler E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 27

Οµαδοποίησηδεδοµένων ιαχώρισηπαρόµοιων δεδοµένων σε συστάδες Παραλληλοποίηση ενός αλγορίθµου (CURE) µε χρήση του µοντέλου OpenMP E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 28

Οµαδοποίησηδεδοµένων Πολύµεγάλος αλλά προβλέψιµος χρόνος εκτέλεσης Χρονοβελτίωση στους 4 επεξεργαστές: ~3.5x Εγγραφές Χρόνος (s) 10K 58.5 100K 1M 5885 591472 * ~ x10 2 ~ x10 4 (*) Χρόνος εκτέλεσης από 7 σε 2 ηµέρες E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 29

Οµαδοποίησηδεδοµένων Χρονοβελτίωση Οµαδοποίησης εδοµένων Speedup 12 11 10 9 8 7 6 5 4 3 2 1 0 r=10,a=0.3 Parameters P=1 P=2 P=4 P=6 P=8 P=10 P=12 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 30

ΜοντέλαΠρογραµµατισµού (σήµερα) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 31

ΜοντέλαΠρογραµµατισµού (µέλλον) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 32