Για την υλοποίηση των εργασιών του εργαστηρίου θα πρέπει να εργαστείτε σε ένα Unix/Linux terminal. Θα αξιοποιήσετε κάποιες από τις ήδη διαθέσιμες εντολές του shell, αλλά θα χρειαστεί να εγκαταστήσετε και κάποια νέα προγράμματα.
Για να εργαστείτε καθένας στο δικό του περιβάλλον εκτέλεσης, μπορείτε να αξιοποιήσετε όποια από τις πιο κάτω επιλογές σας εξυπηρετεί καλύτερα:
- Bring your own laptop: Ιδανικά με ήδη εγκατεστημένο linux, πχ ως dual boot
- Bring your own laptop: Εγκατάσταση ενός linux εντός virtual box
- Bring your own laptop: Αξιοποίηση Windows Linux Subsystem εφόσον το laptop σας τρέχει Win10
- Χρήση persistent live ubuntu usb (επιτρέπει την εκτέλεση XUbuntu Desktop περιβάλλοντος το οποίο διατηρεί τις αλλαγές που κάνετε, πχ εγκατάσταση προγραμμάτων)
- Ακουλουθήστε αυτές τις οδηγίες και δημιουργήστε το δικό σας persistent live usb
- Εργαστήριο #1 - Εισαγωγή στο Unix/Linux shell
- Εργαστήριο #2 - Εγκατάσταση προγραμμάτων μέσω του terminal
- Εγκαταστήστε το homebrew στο Linux σύστημά σας, παρότι υπάρχουν κάποια security concerns, πχ εδώ, η χρήση του σε ένα περιορισμένο, εκπαιδευτικό περιβάλλον θα διευκολύνει πολύ την εγκατάσταση των απαιτούμενων προγραμμάτων
- Η εγκατάσταση του Homebrew προαπαιτεί τη παρουσία διαφόρων λογισμικών, όπως πχ git, τα οποία μπορεί να λείπουν από το περιβάλλον σας και τα οποία θα πρέπει να εγκαταστήσετε - σε περιβάλλον ubuntu αυτό μπορείτε να το πετύχετε ως superuser με την εντολή
sudo apt-get install <package-name>
- Η εγκατάσταση του Homebrew προαπαιτεί τη παρουσία διαφόρων λογισμικών, όπως πχ git, τα οποία μπορεί να λείπουν από το περιβάλλον σας και τα οποία θα πρέπει να εγκαταστήσετε - σε περιβάλλον ubuntu αυτό μπορείτε να το πετύχετε ως superuser με την εντολή
- Εγκατάσταση asciinema, πχ μέσω brew
- Ν.Β.: κάνετε sign up στο asciinema, διαφορετικά οι καταγραφές σας σβύνονται μετά από μερικές μέρες, άρα όταν πρόκειται να διορθωνούν δε θα υπάρχουν!
- Εγκατάσταση των
- Εξάσκηση στη χρήση του asciinema
- Έναρξη καταγραφής
asciinema rec
- εκτέλεση shell εντολών της επιλογής σας, πχ χρήση
nano
,source
,PS1
για αλλαγή του command prompt του terminal - Παύση καταγραφής
exit
- Για τοπική αποθήκευση
Ctrl+C
- σημειώστε το
/path/to/file.cast
- σημειώστε το
- Αναπαραγωγή καταγραφής
asciinema play /path/to/file.cast
- Έναρξη καταγραφής
- Μελετήστε τις παραμέτρους που μπορεί να πάρει η
asciinema
και- ελαχιστοποιήστε το idle recording time σε <0.5 sec
- προσθέστε ένα τίτλο στην καταγραφή
- Εγκαταστήστε το homebrew στο Linux σύστημά σας, παρότι υπάρχουν κάποια security concerns, πχ εδώ, η χρήση του σε ένα περιορισμένο, εκπαιδευτικό περιβάλλον θα διευκολύνει πολύ την εγκατάσταση των απαιτούμενων προγραμμάτων
- Εργαστήριο #3 - Benchmarking python code
- Εγκαταστήστε benchmarking και performance monitoring εργαλεία, όπως τα προτεινόμενα
hyperfine
καιpy-spy
και εκτελέστε I/O ή CPU intensive κώδικα python ώστε να αξιολογήσετε την απόδοσή του ή σημεία που με τη βελτίωσή τους η συνολική απόδοση θα μπορούσε να αυξηθεί. - Μπορείτε να κάνετε την εγκατάσταση των
- Εξάσκηση στη χρήση του py-spy & του hiperfine
- Χρησιμοποιήστε τον κώδικα στο lab3/rand_ints.py για να παράγετε αρχεία τυχαίων ακεραίων αριθμων.
- Χρησιμοποιήστε τον κώδικα στο lab3/bubble.py για να ταξιμονήσετε τα αρχεία τυχαίων ακεραίων αριθμων που παράγατε.
- Χρησιμοποιήστε το hyperfine για να δείτε το χρόνο εκτέλεσης της bubble sort ταξινόμησης
- Πειραματιστείτε με παραμέτρους που μπορείτε να δώσετε στο hyperfine, πχ
--warmup
- Πειραματιστείτε με παραμέτρους που μπορείτε να δώσετε στο hyperfine, πχ
- Αξιολογήστε την απόδση του bubble sort σε σχέση με άλλους sorting αλγορίθμους, πχ insertionsort ή quicksort, τους οποίους βρείτε ή υλοποιήστε ;-)
- Χρησιμοποιήστε το py-spy για να δείτε ποιο τμήμα ενός αλγορίθμου ταξινόμησης αναλώνει το μεγαλύτερο χρονικό διάστημα κατά την εκτέλεσή του
- Ερμηνεύστε το svg που παράγει, πώς μπορείτε να το αξιοποίησετε για το profiling/benchmarking ενός κώδικα;
- Εγκαταστήστε benchmarking και performance monitoring εργαλεία, όπως τα προτεινόμενα