Sections
Προηγουμενα εξαμηνα
ΕΑΡΙΝΟ ΕΞAΜΗΝΟ 2011 / SPRING TERM 2011
E06 - Παράλληλη Επεξεργασία / Parallel Processing
Ανακοινωσεις
- Οι τελικές εξετάσεις του μαθήματος είναι την Παρασκευή 24/6/2010, ώρα 15:00. Θα πρέπει να έχετε μαζί σας και την τελική αναφορά του project.
- Την Τετάρτη, 9/3/2011, ώρα 09:00, θα γίνει επιπρόσθετο μάθημα, μαζί με εισαγωγικά θέματα που αφορούν το project.
- Την Τετάρτη, 2/3/2011, ώρα 09:00, θα γίνει αναπλήρωση του χαμένου μαθήματος της προηγούμενης εβδομάδας.
- Κατόπιν αιτημάτων, από 21/2/2011 το μάθημα θα γίνεται κάθε Δευτέρα, 09:00 - 12:00.
SIMPLY Project -- simply fun!
- Φάση 4: (Παράδοση 24/6/2011)
Στη φάση αυτή θα πρέπει να υλοποιήσετε την επικοινωνία μεταξύ διεργασιών στον ίδιο κόμβο με κοινόχρηστη μνήμη (shmem). Θα πρέπει να τροποποιήσετε τις υπάρχουσες δομές / συναρτήσεις ώστε να επιτευχθεί αυτό. Τέλος, θα πρέπει να κάνετε μία συνολική αξιολόγηση / σύγκριση της υλοποίησής σας και να παραδώσετε πλήρη αναφορά υλοποίησης και πειραματισμών. - Φάση 3: (Παράδοση 16/5/2011)
Στη φάση αυτή καλείστε να υλοποιήσετε συλλογικες επικοινωνιες και πιο συγκεκριμενα τις συναρτήσεις (τα ορισματα ειναι αναλογα αυτων του MPI) simply_barrier(int *nprocs), simply_bcast(void *sbuf, int count, SIMPLY_datatype dtype, int rootrank), simply_scatter(...), simply_gather(...), simply_allgather(...), simply_reduce(...). Τουλαχιστον η εκπομπη (bcast) θα πρεπει να ακολουθησει τον δενδρικο αλγοριθμο. - Φάση 2: (Παράδοση 11/4/2011)
Στη φάση αυτή καλείστε να υλοποιήσετε τις συναρτήσεις simply_comm_size(int *nprocs), simply_comm_rank(int *myrank), simply_send(void *buf, int nelems, SIMPLY_datatype dtype, int dest, int tag), simply_receive(void *buf, int nelems, SIMPLY_datatype dtype, int dest, int tag, SIMPLY_status *status), με υποστηριζόμενους τύπους SIMPLY_CHAR / _INT / _DOUBLE και υποστήριξη των SIMPLY_ANY_SOURCE και SIMPLY_ANY_TAG. Οι διεργασίες θα πρέπει πλέον να εκκινούνται σε πολλαπλούς διαφορετικούς υπολογιστές. Το παραδοτέο θα περιλαμβάνει ένα δοκιμαστικό πρόγραμμα κυκλικής μεταφοράς δεδομένων με τις συναρτήσεις που υλοποιήσατε. - Φάση 1: (Παράδοση 28/3/2011)
Υλοποίηση simplyrun [-n X] userprogram [ args ], και συναρτήσεων simply_init(), simply_finalize() μαζί με ένα δοκιμαστικό πρόγραμμα κυκλικής μεταφοράς bytes. Χρήση fork(), exec() και sockets.
Δευτερο σετ προγραμματων
» H εκφώνηση, σε μορφή .pdf» Προθεσμία: Δευτέρα, 13 Ιουνίου 2011
» Ηλεκτρονική παράδοση των προγραμμάτων, με το turnin:
turnin set2@cse06 <αρχεία>
Πρωτο σετ προγραμματων
» H εκφώνηση, σε μορφή .pdf» Προθεσμία: Δευτέρα, 18 Απριλίου 2011
» Ηλεκτρονική παράδοση των προγραμμάτων, με το turnin:
turnin set1@cse06 <αρχεία>
- Σειριακά προγράμματα για το π = 3.141592 και τον πολλαπλασιασμό πινάκων
- Δύο πίνακες 512 επί 512, A και B για δοκιμές.
Σημειωσεις, διαφανειες, βοηθηματα
- Διαφάνειες 8ου κεφαλαίου (pdf)
- Διαφάνειες 7ου κεφαλαίου (pdf)
- Διαφάνειες OpenMP (pdf)
- Διαφάνειες 5ου κεφαλαίου (pdf)
- Διαφάνειες 3ου κεφαλαίου (pdf)
- Διαφάνειες 2ου κεφαλαίου (pdf)
- Διαφάνειες 1ου κεφαλαίου (pdf)
-
Σημειώσεις για τη συνέπεια μνήμης (pdf)
- Παρουσίαση του Φ. Σιταρά για sockets (pdf)
- Πως να χρονομετρήσετε στο Unix
- Διεργασίες, κοινή μνήμη και σημαφόροι στο Unix
- Οδηγίες για την χρήση του LAM / MPI