Το βρίσκω αρκετά αστείο, δεδομένης της αρεσκείας μου στα ηλεκτρονικά παιχνίδια, πως τα τελευταία δέκα χρόνια ο μόνος λόγος που κάνω σοβαρό upgrade είναι η δουλειά. Το Far Cry δεν κατάφερε να με μεταπείσει, αλλά λίγα simulations στο Matlab κάνανε τη δουλειά.
To τελευταίο upgrade σε desktop ήταν σ’ έναν Athlon 64 3500+, από τους πρώτους με τα 939 pins. Έκτοτε το υπολογιστικό μου budget έχει αναλωθεί σ’ έναν PowerBook 12″ και μετά έναν MeromBook Pro 15.4″. Από την εποχή του πρώτου δεν έχω πολυανοίξει τον desktop PC για οτιδήποτε εκτός από δουλειά και παιχνίδια. Με το Parallels και τον δεύτερο, η δουλειά μπορεί να γίνει πλέον στον Mac.
Έτρεχα λοιπόν σήμερα μερικά βαριά estimations στο Matlab. Παίρνουν πολύ να τρέξουν (αναλόγως πόσο γρήγορα κάνει converge από 5 έως 50 ώρες), οπότε δεν ήθελα να τα τρέξω στο laptop, για να παραμείνει φορητός. Οπότε άνοιξα το PC πάλι.
Ξαφνικά ήμουν περίεργος να κάνω τη σύγκριση. Τι λέει ο σχεδόν τριετής Athlon 64, πολύ hot για την εποχή του, μπροστά στον Core 2 Duo Mobile (Merom); Ο C2D υποτίθεται πως ήταν σαφές άλμα από τον ανταγωνισμό, αν και φυσικά η φορητή έκδοση δεν είναι το ίδιο δυνατή.
Τέλος πάντων, προφανώς δε μιλάμε για κάποια σοβαρά benchmarks — αν ενδιαφέρεστε για κάτι τέτοιο δείτε τα άνωθεν links.
Παρά ταύτα εγώ θέλω απλώς να σας πω μια ιστοριούλα — τι ακριβώς έγινε με το Matlab πρόγραμμα μου; Δεν είστε περίεργοι;
(Όχι; Με πληγώνετε.)
Πρώτον ας δούμε τις ‘ιδιαιτερότητες’ του κάθε ‘συστήματος.’ Το Matlab είναι τραγικά single-threaded, οπότε δεν έχουμε τρομερό θέμα εκεί, αλλά μιλάμε περί
- Windows XP Desktop
Athlon 64 3500+ (single core)
1GB RAM
Μπόλικο spyware - Windows XP Virtual Machine (στο Mac OS X μέσω Parallels)
Merom C2D 2.0 GHz (single core λόγω Parallels)
1.25GB RAM για τα Windows XP, 2GB RAM στο όλο σύστημα
No spyware
Τα βάζω να τρέξουν ταυτόχρονα λοιπόν, και τι βλέπω;
Προς μεγάλη μου εντύπωση, ο C2D αφήνει τον A64 τρελά πίσω.
Το όλο routine αρχίζει με τέσσερα διαφορετικά tasks πριν μπει σε ένα τεράστιο convergence loop. Ο C2D γράφει λοιπόν χρόνο σ’ αυτά τα τέσσερα (χρησιμοποιόντας το κανονικό ρολόι, όχι cpu time)
11.536, 0.051, 1.742, 0.701 seconds,
ενώ ο A64 γράφει
47.765, 1.328, 4.266, 0.203 seconds.
Τρομερές διαφορές! Ομολογουμένως, δεν τις περίμενα τόσο μεγάλες.
Το πρώτο task έχει μπόλικο matrix manipulation — υπολογισμούς. Το δεύτερο έχει επίσης κάτι υπολογισμούς και διάφορα loops. Το τρίτο ουσιαστικά τρέχει μια φορά ένα μέρος της ρουτίνας που επαναλαμβάνεται αργότερα συνεχώς μέχρι convergence.
Το τέταρτο; Για μαντέψτε!
‘Checking memory requirements.’ Φορτώνει μερικά γιγάντια matrices στη μνήμη, για να τσεκάρει πως το Matlab θα έχει αρκετό χώρο αργότερα. (Το Matlab επιμένει να φορτώνει τα πάντα στη μνήμη.)
Αν είναι κάτι όπου η AMD ακόμη έχει προβάδισμα, είναι στη μνήμη λόγω του integrated memory controller της, και η γενιά των 939 ήταν η πρώτη όπου η υπεροχή της έγινε ξεκάθαρη.
Αρχίζει λοιπόν το κεντρικό loop. Μετά από λίγο έρχεται η πρώτη ενημέρωση. Ο C2D πρώτος, έστω και μέσα από το Parallels!
4.69 to 61.57 hrs
Άουτς. Ο άλλος; Ενημερώνει μετά από λίγο.
5.25 to 68.98 hrs
Παραπάνω άουτς. Μετά όμως συμβαίνει κάτι περίεργο.
Στη δεύτερη ενημέρωση λέει ο C2D
3.73 to 50.86 hrs
ενώ ο A64 λέει
2.36 to 32.15 hrs
Μετά συμβαίνει το εξής ευτράπελο επίσης: ο χρόνος του A64 άρχισε ν’ ανεβαίνει. Τελικά έφταιγε κάποιο spyware, το οποίο είχε αρχίσει να τρώει cpu time. Αφού σκότωσα το process (και τον explorer), έπεσαν πάλι οι χρόνοι.
Τώρα που τα γράφω ο C2D βρίσκεται στα
2.72 to 49.59 hrs
ενώ ο Α64 στα
1.56 to 34.33 hrs
Ενδιαφέρον. Είμαι περίεργος να δω πως θα πήγαινε σε Boot Camp, και όχι μέσω του Parallels. Φαντάζομαι λίγο καλύτερα, αν και δεν πρέπει να είναι σημαντική η διαφορά στις επιδόσεις, έτσι δεν είναι;
Που είσαι Santa Rosa;
χμμμ δεν με εκπλήσουν τα αποτελέσματα, οι Core 2 είναι απίστευτα τσιπάκια
όμορφο post και blog
την καλημέρα μου
kewl man!
to melodiko mou computer tha gamaei :P
Να ρωτήσω κάτι; Γιατί δεν τρέχεις το matlab μέσα από το OS X (με Χ11); Φαντάζομαι θα είναι ακόμα πιο γρήγορο…
@32μπιτος: Δεν κατάλαβες, ενώ στα αρχικά ο C2D ήταν πολύ ανώτερος, όταν μπήκαν στο ίδιο το loop (που έχει ένα βαρύ matrix inversion), ο Athlon ήταν πολύ πιο γρήγορος… 30% πιο γρήγορος.
@ξάπλας: Γιατί δεν έχω το Matlab για Mac, μόνο για Windows.
δεν ειπα κάτι διαφορετικό ή κάτι που έρχεται σε αντίθεση με τα benchmarks
OK, νόμιζα πως δεν πρόσεξες τα μετέπειτα. Εμένα να σου πω μου έκανε λίγο εντύπωση. Βασικά δεν περίμενα τόση διαφορά μεταξύ των αρχικών (πολύ υπέρ του merom) αποτελεσμάτων, και των μετέπειτα… εξάλλου τα ίδια πάνω-κάτω κάνει και στις δυο φάσεις.