Για μαθητική εργασία στο μάθημα της τεχνολογίας, χρησιμοποιήθηκε ένα απλό πρόγραμμα Python για μέτρηση χρόνου εκτέλεσης σε διάφορες CPU. Το πρόγραμμα εκτελεί 10 φορές ένα loop μετρήσεως πρώτων αριθμών, καταγράφει το χρόνο εκτέλεσης κάθε επανάληψης και στο τέλος μας δείχνει το μέσο όρο και τον βέλτιστο χρόνο.
Γνωρίζουμε ότι αυτές οι μετρήσεις είναι "σχετικές" και όχι αντικειμενικές αλλά ανεκτές για εισαγωγική σχολική εργασία.
Η πρόσβασή μας σε Η/Υ οπότε και το πλήθος των δειγμάτων μας είναι περιορισμένο. Ζητάμε από όποιον μπορεί να διαθέσει λίγο χρόνο να "τρέξει" το πρόγραμμα και να μας κοινοποιήσει τα αποτελέσματά του καθώς και τον τύπο του επεξεργαστή συν την ταχύτητα λειτουργίας του.
Το πρόγραμμα (αντιγραφή όλων, επικόλληση σε απλό επεξεργαστή κειμένου, αποθήκευση ως "sbench.py"):
Θα το τρέξετε από τερματικό με:Κώδικας:#sbench.py import time #--------------------------------------------- l=[] repetition=10 average=0 for i in range (repetition): start=time.time() x=1 while True: x=x+1 y=2 while True: if x%y==0: if x==y: break else: break else: y=y+1 if x >=20000: break end=time.time() duration=end-start print i+1,"/",repetition,"{:.3f}".format(duration) l.append(duration) l.sort() for c in range (repetition): average=average+l[c] print "average:","{:.3f}".format(average/repetition) print "best is:","{:.3f}".format(l[0]) #---------------------------------------------
Η εντολή που θα δείξει στο τερματικό τα στοιχεία του επεξεργαστή:Κώδικας:python sbench.py
Χρειαζόμαστε τον Μ.Ο. και τον καλύτερο χρόνο εκτέλεσης και την έξοδο της παραπάνω εντολής (στοιχεία CPU).Κώδικας:lshw -class processor | grep -i -e product -e MHz
Ενδεικτικά αναφέρω τις μετρήσεις μας μέχρι τώρα:
Κώδικας:ΕΠΕΞΕΡΓΑΣΤΗΣ ΜΕΣΟΣ ΟΡΟΣ (sec) ΚΑΛΥΤΕΡΟΣ ΧΡΟΝΟΣ (sec) I7 6700 2.288 2.275 A10 8750 3.866 3.683 I5 4200M 3.880 3.871 I7 860 4.615 4.605 Core2 Duo E8400 4.685 4.682 I5 M460 4.782 4.774 Pentium Dual E5400 5.147 5.144 Core2 Duo T7250 6.160 6.156 E1400 6.724 6.722 Pentium Dual T3200 6.827 6.824 Atom N270 24.624 24.590 Atom N550 26.203 26.183 Raspberry Pi-3B 45.203 42.607
Ευχαριστούμε προκαταβολικά
Εμφάνιση 1-14 από 14
-
14-05-17, 14:46 Απλό CPU Benchmarking με Python (μαθητική εργασία) #1
Τελευταία επεξεργασία από το μέλος GeorgeVita : 14-05-17 στις 18:07.
-
14-05-17, 20:09 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #2
Intel Core i5 4590 @ 3.3GHz:
average: 2.378
best is: 2.356
Σημείωση ότι το πρόγραμμα τρέχει σε 2.7 Python.
-
14-05-17, 21:17 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #3
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
average: 2.302
best is: 2.267
Παρεπιπτόντως, άλλαξα την print για να παίξει και με python 3 και εκεί τα αποτελέσματα ήταν καλύτερα.
average: 1.775
best is: 1.761
-
14-05-17, 21:24 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #4
Q9550@3.64hHZ
average: 3.906
best is: 3.906Asus P5Q3-Intel Core2Quad Q9550 @ 3792 MHz- L2-12MB - Patriot 2x4096 - ASUS 9800GT@690/1Gb-SSD Samsung EVO 850 250GB-WD katram 640GB - Seagate 320gb-WD 1.5TB - WD 2.0TB
The truth is out there.
-
14-05-17, 21:33 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #5
Intel i7 4770k @ 3.5GHz
Κώδικας:1 / 10 2.422 2 / 10 2.505 3 / 10 2.521 4 / 10 2.507 5 / 10 2.498 6 / 10 2.492 7 / 10 2.513 8 / 10 2.494 9 / 10 2.524 10 / 10 2.505 average: 2.498 best is: 2.422
-
15-05-17, 12:28 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #6
Ο αλγόριθμός σου, είσαι σίγουρος ότι είναι σωστός; Τι είναι αυτό;
Κώδικας:if x==y: break else: break
Κώδικας:$ uname -a Linux hostname 4.10.11-1-ARCH #1 SMP PREEMPT Tue Apr 18 08:39:42 CEST 2017 x86_64 GNU/Linux $ lscpu | grep 'Model name' Model name: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz $ sudo lshw -class processor | grep -i -e product -e MHz product: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz size: 3999MHz $ python2 Python 2.7.13 (default, Feb 11 2017, 12:22:40) [GCC 6.3.1 20170109] on linux2 $ python3 Python 3.6.1 (default, Mar 27 2017, 00:27:06) [GCC 6.3.1 20170306] on linux
Κώδικας:$ python2 sbench.py average: 2.678 best is: 2.643 $ python2 sbench.py average: 2.457 best is: 2.434
Κώδικας:$ python3.6 sbench.py average: 2.160 best is: 2.137 $ python3.6 sbench.py average: 1.931 best is: 1.918
Κώδικας:$ python3.4 sbench.py average: 3.132 best is: 3.122
Κώδικας:$ pypy sbench.py average: 0.236 best is: 0.235
-
15-05-17, 15:08 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #7
Ευχαριστώ για τις μετρήσεις σας μέχρι τώρα!
Ευχαριστώ για την επισήμανση του λάθους, "ευτυχώς" υπάρχει και στο πρωτότυπο πρόγραμμα των δοκιμών μας και επειδή μας ενδιαφέρει μόνο ο χρόνος εκτέλεσης δεν είναι σοβαρό πρόβλημα. Ενδιαφέρουσες και οι επιπλέον δοκιμές σου!
Οσον αφορά τις δικές μας μετρήσεις, για να είναι πιο αντικειμενικές, bootάρουμε σε κάθε Η/Υ το ίδιο Live-USB με KNOPPIX και τρέχουμε το πρόγραμμα χωρίς δίκτυο κλπ.Τελευταία επεξεργασία από το μέλος GeorgeVita : 15-05-17 στις 21:19.
-
16-05-17, 14:35 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #8
Intel Xeon CPU E5-1660 v4 @ 3.20GHz
average: 2.793
best is: 2.764
Και σε VM με 4x vCPUs:
Intel Xeon CPU E5-2660 v2 @ 2.20GHz
average: 4.911
best is: 4.795
Και στις δύo περιπτώσεις RHEL 6.9 και Python 2.6.6
Θα προσπαθήσω να θυμηθώ να το τρέξω και στο λαπτόπι το βράδυ.Όταν ενώνουμε τις δυνάμεις μας, μπορούμε να πετύχουμε το ακατόρθωτο - Παναγιώτης Γιαννάκης
Never say never, because limits, like fears, are often just an illusion - Michael Jordan
-
16-05-17, 15:17 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #9
Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz:
average: 2.901
best is: 2.901
Intel(R) Xeon(R) CPU E5-2623 v3 @ 3.00GHz
average: 2.332
best is: 2.213Τελευταία επεξεργασία από το μέλος KernelPanic : 16-05-17 στις 15:23.
Unix is user-friendly. It's just very selective about who its friends are...
-
16-05-17, 21:24 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #10
Intel Core i5-3570K CPU @ 3.40GHz
1 / 10 2.438
2 / 10 2.352
3 / 10 2.307
4 / 10 2.309
5 / 10 2.270
6 / 10 2.274
7 / 10 2.321
8 / 10 2.317
9 / 10 2.275
10 / 10 2.278
average: 2.314
best is: 2.270
-
16-05-17, 23:32 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #11
Ευχαριστώ και για τις υπόλοιπες μετρήσεις, υπερδιπλασιάσαμε τα δείγματά μας και με τα "-K " και "Xeon" γίναμε και γρηγορότεροι!
Οσον αφορά την εργασία τελειώσαμε, μετά το καθαρογράψιμο θα ανεβάσω και τον τελικό πίνακα.
Ευχαριστούμε και πάλι!
-
17-05-17, 02:06 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #12
Intel Core i5-4300M CPU @ 2.60GHz
OpenSuse 42.2 και Python 2.7.12
average: 2.280
best is: 2.264Όταν ενώνουμε τις δυνάμεις μας, μπορούμε να πετύχουμε το ακατόρθωτο - Παναγιώτης Γιαννάκης
Never say never, because limits, like fears, are often just an illusion - Michael Jordan
-
17-05-17, 20:57 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #13
Ο τελικός πίνακας μετρήσεων μαζί με τον δείκτη απόδοσης Passmark (http://www.cpubenchmark.net):
Κώδικας:Χρόνος εκτ. Δείκ.Απόδοσης Ελεγχος; Live or sbench.py PassMark α/α κατάταξης Χρόνος επί Επεξεργαστής Install M.O. Ταχύτερος Πυρήνες Συνολ. 1 πυρ. Εμείς PassMark PassMark XEON E5-2623 v3 @3.00GHz I 2.332 2.213 4 9097 1847 1 8 4087 i5-4300M @2.60GHz I 2.280 2.264 2 4388 1794 2 9 4062 i7-6700 @3.40GHz I 2.302 2.267 4 10038 2160 3 3 4897 i5-3570K @3.40GHz I 2.314 2.270 4 7148 2028 4 7 4604 i7-6700 @3.40GHz L 2.288 2.275 4 10038 2160 5 4 4914 i5-4590 @3.30GHz I 2.378 2.356 4 7225 2113 6 5 4978 i7-4770K @3.50GHz I 2.498 2.422 4 10114 2255 7 2 5462 i7-4790K @4.00GHz I 2.457 2.434 4 11197 2530 8 1 6158 XEON E5-1660 v4 @3.20GHz I 2.793 2.764 8 16334 2102 9 6 5810 XEON E5-2680 v4 @2.40GHz I 2.901 2.901 14 19905 1772 10 10 5141 A10-8750 @3.60GHz I 3.321 3.097 4 5177 1637 11 12 5070 A10-8750 @3.60GHz L 3.866 3.683 4 5177 1637 12 13 6029 i5-4200M @2.50GHz L 3.875 3.871 2 4031 1647 13 11 6376 Core2 Quad Q9550 @3.64GHz I* 3.906 3.906 4 5157 1544 14 15 6031 i3-2100 @3.10GHz L 4.540 4.084 2 3661 1583 15 14 6465 i7-860 @2.80GHz L 4.615 4.605 4 5059 1226 16 17 5646 i5 M460 @2.53GHz L 4.782 4.774 2 2334 1070 17 18 5108 VM XEON E5-2660 v2 @2.2GHz VM 4.911 4.795 4 11161 1417 18 16 6795 Core2Duo T7250 @2.00GHz L 6.160 6.156 2 1112 710 19 19 4371 Pentium E1400 @2.00GHz L 6.724 6.722 2 1042 693 20 20 4658 Core2Duo T5670 @1.80GHz L 6.811 6.780 2 1009 655 21 22 4441 Pentium T3200 @2.00GHz L 6.827 6.824 2 1032 679 22 21 4633 Pentium 4 @2.80GHz L 13.145 13.118 1 323 629 23 23 8251 Atom N270 @1.60GHz L 24.624 24.590 1 270 235 24 24 5779 Atom N550 @1.50GHz L 26.203 26.183 2 515 230 25 25 6022 I*=overclocked
-
17-05-17, 23:48 Απάντηση: Απλό CPU Benchmarking με Python (μαθητική εργασία) #14
Αυτό που βρίσκω ενδιαφέρον είναι ότι πχ στους haswell που θεωρητικά έχουν το ίδio IPC (Instructions Per Cycle) και θα έπρεπε τα clocks να επηρεάσουν το αποτέλεσμα (πιο γρήγορα ρολόγια -> πιο γρήγορη εκτέλεση), να συμβαίνει ακριβώς το αντίθετο!
https://en.wikipedia.org/wiki/Instructions_per_cycle
Παρόμοια Θέματα
-
Εργασια σε Python
Από Alderaan1 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 3Τελευταίο Μήνυμα: 08-04-17, 10:24 -
Εγκατάσταση Python
Από gimani25 στο φόρουμ WindowsΜηνύματα: 0Τελευταίο Μήνυμα: 07-10-16, 20:09 -
Python Developer στο Εξωτερικό (θέση εργασίας)
Από xpan στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 0Τελευταίο Μήνυμα: 10-06-16, 13:57
Bookmarks