Πανεπιστήμιο
Ιωαννίνων - Τμήμα Πληροφορικής
E-85: Ειδικά Θέματα Λογισμικού - Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων
Χειμερινό Εξάμηνο 2009-10
Τετάρτη 09:00-12:00, Αίθουσα Ι-3
Ανακοινώσεις
28/9/10: Ανακοινώθηκε η βαθμολογία του μαθήματος (εδώ). Μπορείτε να δείτε το γραπτό σας την Πέμπτη 30/9, 11:00-12:00.
28/2/10: Ανακοινώθηκε η βαθμολογία του μαθήματος (εδώ). Μπορείτε να δείτε το γραπτό σας την Τετάρτη 3/3, 12:00-13:00.
15/1/10: Η προθεσμία παράδοσης του δεύτερου σετ ασκήσεων μεταφέρθηκε στις 15/2/2010.
15/1/10: Στην ενότητα "Βοηθητικό λογισμικό" προστέθηκαν οδηγίες για χρήση του MPI στο σύστημα atlantis.
16/12/09: Ανακοινώθηκε το δεύτερο σετ ασκήσεων του μαθήματος.
26/11/09: Όσοι φοιτητές του μαθήματος επιθυμούν λογαριασμό στο σύστημα atlantis θα πρέπει να το δηλώσουν με email
στον διδάσκοντα. Ο λογαριασμός θα έχει το ίδιο login name με αυτό στα υπόλοιπα συστήματα της σχολής.
26/11/09: Η προθεσμία παράδοσης του πρώτου σετ ασκήσεων μεταφέρθηκε στις 7/12/2009.
10/11/09: Ανακοινώθηκε το πρώτο σετ ασκήσεων του μαθήματος.
2/11/09: Η διάλεξη του μαθήματος δεν θα πραγματοποιηθεί την Τετάρτη 4/11/2009. Θα αναπληρωθεί κατόπιν συνεννόησης με τον διδάσκοντα.
6/10/09: Οι διαλέξεις του μαθήματος θα ξεκινήσουν την Τετάρτη 7/10/2009, στις 09:00 στην Αίθουσα Ι-3.
Διδασκαλία
Παναγιώτης Χατζηδούκας (Π.Δ. 407/1980)
Γραφείο Β-34
Email: phadjido at cs.uoi.gr
Τηλ.: 26510-98872
Ώρες γραφείου: Τρίτη/Τετάρτη 12:00-13:00.
Περιεχόμενα μαθήματος
- Πολυνηματικός προγραμματισμός
Διεργασίες και νήματα
Μελέτη του προτύπου POSIX Threads
Μοντέλα υλοποίησης νημάτων - νήματα επιπέδου χρήστη
- Πολυνηματισμός και παράλληλη επεξεργασία
Το μοντέλο προγραμματισμού OpenMP
- Προγραμματισμός συστημάτων κατανεμημένης μνήμης
Το μοντέλο προγραμματισμού MPI
- Ειδικά θέματα
Τεχνικές βελτιστοποίησης κώδικα
Σύγχρονες τάσεις για υπολογισμούς υψηλών επιδόσεων (Κάρτες γραφικών, Επεξεργαστής Cell)
Συστήματα κοινής ιδεατής μνήμης (SDSM)
-
Ειδικά θέματα (κατά περίπτωση)
Matlab και συστήματα υψηλών επιδόσεων
Λογισμικό υπολογισμών υψηλών επιδόσεων
Ανάπτυξη αποδοτικών δικτυακών εξυπηρετητών
Προγραμματισμός επιπέδου πυρήνα
Βιβλιογραφία
- Α. Μάργαρης, MPI: Θεωρία και Εφαρμογές, Εκδόσεις Τζιόλα, Θεσ/νίκη 2007.
- OpenMP Architecture Review Board: OpenMP Application Program
Interface, 2005.
- D. R. Butenhof, Programming with POSIX Τhreads, Addison-Wesley, 1997.
- Sun Microsystems. Multithreaded Programming Guide.
- K. A. Robbins, S. Robbins. Unix Systems Programming:
Communication, Concurrency, and Threads.
- W. R. Stevens. Advanced Programming in the UNIX Environment.
Υλικό (Hardware)
- Για τις ανάγκες του μαθήματος υπάρχουν διαθέσιμα δύο παράλληλα συστήματα:
1. atlantis: 4 Intel PIII επεξεργαστές με λειτουργικό σύστημα Debian Linux
2. paraguay: 8 (= 4 dual-core hyper-threaded) Intel Xeon επεξεργαστές, δωρεά της εταιρίας Intel στο τμήμα μας
Βοηθητικό λογισμικό
|
1) Βιβλιοθήκη των POSIX Threads για Windows: (link, local download [1.19
MB]) |
|
2) Εργαλεία GNU (gcc, make, κλπ) για Windows (link, local download [16.6 MB]) Οδηγίες α) Αντιγράψτε το αρχείο MingW.tar.gz στο σκληρό δίσκο (C:\) και αποσυμπιέστε το τοπικά (π.χ. "Extract here" στο WinZip). β) Πρέπει να δημιουργηθεί ο φάκελος C:\MingW με υποφακέλους τους C:\MingW\bin, C:\MingW\sbin, κλπ. γ) Στην συνέχεια προσθέστε στο PATH των Windows τους καταλόγους C:\MingW\bin και C:\MingW\sbin. (Πίνακας Ελέγχου®Σύστημα®Για Προχωρημένους®Μεταβλητές Περιβάλλοντος®Μεταβλητές Συστήματος®PATH: Edit ). δ) Ένα παράθυρο εκτέλεσης εντολών στα Windows δημιουργείται με την ακολουθία: Έναρξη®Εκτέλεση® Άνοιγμα: cmd®OK. ε) Μπορείτε πλέον να χρησιμοποιήσετε τις συνηθισμένες εντολές Unix (π.χ. pwd, cd, mkdir, rm, pico, gcc, make, κλπ). |
|
3) Έτοιμη προς χρήση βιβλιοθήκη των POSIX Threads για Windows (pthread.tar.gz) και παράδειγμα χρήσης της (testpth.tar.gz) - Η βιβλιοθήκη (φάκελος pthread) πρέπει να βρίσκεται στο κατάλογο C:\ του σκληρού σας δίσκου - Ο κατάλογος "C:\pthread\lib" πρέπει να βρίσκεται στο PATH των Windows - Τα εργαλεία GNU για Windows πρέπει να έχουν εγκατασταθεί - Παράδειγμα χρήσης της βιβλιοθήκης των POSIX Threads για Windows μέσω του Microsoft Visual Studio (6.0) (testpth_vc_gcc.tar.gz) |
|
4) Συνάρτηση μέτρησης χρόνου για
Windows και Unix: (gettime.c) |
|
5) GNU make για
Solaris/Sparc (gmake) - Παρέχεται για να διευκολύνει τη χρήση αρχείων Makefile - Τοποθετήστε το αρχείο στο λογαριασμό σας και ενημερώστε κατάλληλα τη μεταβλητή PATH |
|
6) Εγκατάσταση του περιβάλλοντος Cygwin στον υπολογιστή σας. α) Κατεβάστε το αρχείο: (cygwin_setup.zip [83.8 MB]) β) Αποσυμπιέστε το παραπάνω αρχείο και εκτελέστε το πρόγραμμα εγκατάστασης setup.exe γ) Αν χρειάζεστε βοήθεια, ακολουθήστε τα βήματα εγκατάστάσης που παρουσιάζονται εδώ: (installation_steps.pdf) Περισσότερες πληροφορίες για το Cygwin μπορείτε να βρείτε στη διεύθυνση: http://www.cygwin.com |
|
7) Χρήση της βιβλιοθήκης MPICH2 στο σύστημα atlantis.
Στο σύστημα atlantis είναι ήδη εγκαταστημένη η βιβλιοθήκη MPICH2, στον κατάλογο /tmp/mpich2. Για να τη χρησιμοποιήσετε πρέπει να κάνετε τα ακόλουθα: α) Προσθέστε τον κατάλογο /tmp/mpich2/bin στο PATH του λογαριασμού σας. β) Φτιάξτε το απαιτούμενο αρχείο .mpd.conf στο βασικό κατάλογο του λογαριασμού σας (σύμφωνα με την οδηγίες του MPICH2) π.χ. phadjido@atlantis:~$ ls -l .mpd.conf -rw------- 1 phadjido guest 18 Mar 15 2007 .mpd.conf phadjido@atlantis:~$ cat .mpd.conf secretword=whatever
γ) Ξεκινήστε στο παρασκήνιο τον "δαίμονα" του MPICH2 ($ mpd &). δ) Μεταγλωττίστε τα προγράμματά σας με την εντολή mpicc. O υποκείμενος μεταγλωττιστής είναι ο Intel compiler v10.0, που υποστηρίζει OpenMP. Επομένως, με την παράμετρο "-openmp" μπορείτε να ενεργοποιήσετε και το OpenMP στα προγράμματα MPI (βλ. υβριδικό μοντέλο προγραμματισμού MPI+OpenMP). ε) Τρέξτε το εκτελέσιμο πρόγραμμά σας με mpiexec ή mpirun |
Παρουσιάσεις
- Πληροφορίες μαθήματος (pfd-x6)
- Υπολογιστικά Συστήματα Υψηλών Επιδόσεων και Εφαρμογές (pfd-x6)
- Διεργασίες και Νήματα (pfd-x6)
- Προγραμματισμός Νημάτων Προτύπου POSIX (pfd-x6)
- Ειδικά Θέματα Προγραμματισμού Νημάτων (pfd-x6)
- Νήματα Επιπέδου Χρήστη (pfd-x6)
- Εισαγωγή στο OpenMP (pfd-x6)
- Προγραμματισμός με το μοντέλο OpenMP (pfd-x6)
- Ιεραρχία Μνήμης και Τεχνικές Βελτιστοποίησης (pfd-x6)
- Επαναληπτικές Ασκήσεις (pfd-x6)
Εξέταση Μαθήματος
- Θα ανακοινωθεί
Σύνδεσμοι
- Βιβλιοθήκη νημάτων επιπέδου χρήστη PSthreads (local download, report)
- OpenMP Application Program Interface, Version 2.5 (local download)
- Βιβλιοθήκες Υλοποίησης του MPI
- MPICH2 (Unix, Windows) [Οδηγίες εγκατάστασης στο README στο αρχείο διανομής]
- DeinoMPI (Windows)
- MPI:
The Complete Reference (local
download)
Ασκήσεις - Εργασίες μαθήματος
- 1o σετ ασκήσεων (Παράδοση: 30/11/2009, Νέα Προθεσμία: 7/12/2009)
- 2o σετ ασκήσεων (Παράδοση: 22/1/2010, Νέα Προθεσμία: 15/2/2010)
- Εφαρμογή για παραλληλοποίηση (particle swarm optimization): dpso.tar.gz
Βαθμολογίες
Τελευταία ενημέρωση: 15/01/2010