Jump to content



About Intel Hyperthreading


ironraven

Recommended Posts

Προσωπικα δεν εχω ασχολιθει παρα πολυ με το θεμα , αλλα ειχα μια συζυτηση σημερα το πρωι με ενα αμερικανο δευτεροετη φοιτητη ηλεκτρονικος απο το ΟΗΙΟ και εθιξε το θεμα ΗΤ ως γνωστος ΑΜΔ φιλαθλος παντα προσπαθουσε να θαβει τιν Ιντελ , αλλα περα αυτου μιας και το εχω συναντισει απο πολλους στη ελλαδα και στο παρελθον απλος ηταν ατοπο και αδικο τωρα ι ΑΜΔ (εχει ξεμυτισει λιγο ) , ΑΜΔακιδες τωρα δικαιονεστε :111: , anyhow , η συζητηση ειχε ως εξης , σας την παραθετω παρακατω¨

[11:09am] <@mvpx02> well it works alright

[11:09am] <@mvpx02> however, a 3ghz cpu w/ ht is not like having 2x3ghz cpus, its like having 2x1.5ghz, a dual-core 3ghz cpu = 2x3ghz cpus

[11:10am] <@mvpx02> so sure, it works, but then max that any 1 program can have is 50% of the cpu

[11:14am]<@mvpx02> it may not be 1.5&1.5

[11:15am]<@mvpx02> maybe its closer to 2 & 1 or even 2.5 & 1 @ 3ghz

θα ηθελα αν ειναι δυνατον μια εμπεριστατομενη απαντηση στο θεμα ΗΤ αν αυτο ειναι φυσικα δυνατο

ευχαριστω.

Link to comment
Share on other sites

θα ηθελα αν ειναι δυνατον μια εμπεριστατομενη απαντηση στο θεμα ΗΤ αν αυτο ειναι φυσικα δυνατο

Δές εδώ:

http://www.adslgr.com/forum/showpost.php?p=441937&postcount=588

Σημ.: Έχει και εικόνες για attachments. Ίσως να πρέπει να εγγραφείς για να τις δεις.

Εν ολίγοις, ο τύπος έχει απόλυτο δίκιο.

Διότι μπορεί τα πολύ λίγα 2-3 στάδια του pipeline στο τέλος να είναι διπλά, αλλά όλα τα προγενέστερα (30+) που κάνουν το decoding των προς εκτέλεση instructions είναι κοινά, μοιραζόμενα. Συνεπώς δεν μπορούν ταυτόχρονα να γεμίζουν με instructions και τα 2 σετ από execution units γιατί φυσικά τα πρώτα 30+ decoding στάδια μπορούν να τροφοδοτούν 1 σετ και όχι 2 ταυτόχρονα.

Link to comment
Share on other sites

Μα η intel αναφέρει στο site της: Hyper-Threading Technology (HT Technology) provides thread-level parallelism on each processor :p

Το μόνο πλεονέκτημα που βρίσκω σε σχέση με τον τότε ανταγωνισμό, ήταν η δυνατότητα να κάνεις 2 εργασίες παράλληλα. Σαφώς και θα τελείωναν σε περισσότερο χρόνο από το να τις έτρεχες διαδοχικά, σου έδινε όμως την ψευδαίσθηση ότι κάνεις κάτι ταυτόχρονα με κάτι άλλο.

Link to comment
Share on other sites

οντως παρα πολυ καλο αρθρο πραγματικα αν δεν ειχα εργαστιριο σε μιση ωρα θα το διαβαζα ολοκληρο αναλυτικα , μιλωντας ομος για χομε υσερς αυτα δεν θα τα δουν ποτε οποτε πεφτουμε στα βασικα , ειμαι περιεργος αυτα στι ιντελ αποκλιεται να μι τα γνωριζουν καποια στιγμη δεν θα χριαστει να παραγουν κατι αχιοπιστο και γρηγορο?

Link to comment
Share on other sites

ΕΝ2062 object oriented methods εχω επιτιριση σε εργαστηριο C++ για δευετεροετης μιχανικους υπολογιστων , ηλεκτρονικους , μιχανολογους ολο το engineering lol, αγγλια τωρα αρχιζει το δευτερο εξαμινο στα περισσοτερα πανεπιστημια

Link to comment
Share on other sites

οντως παρα πολυ καλο αρθρο πραγματικα αν δεν ειχα εργαστιριο σε μιση ωρα θα το διαβαζα ολοκληρο αναλυτικα , μιλωντας ομος για χομε υσερς αυτα δεν θα τα δουν ποτε οποτε πεφτουμε στα βασικα , ειμαι περιεργος αυτα στι ιντελ αποκλιεται να μι τα γνωριζουν καποια στιγμη δεν θα χριαστει να παραγουν κατι αχιοπιστο και γρηγορο?

Εκμεταλευση του HT πιστευω οτι θα δεις σιγουρα σε multitheaded software για Linux/Unix τρεχοντας το σε Linux/Unix.

Tωρα και στα Windows απο αποψη λειτουργικου νομιζω οτι τα πανε καλα με το HT αλλα δεν νομιζω οτι το software που κυκλοφορει για Windows θα το εκμεταλευτει εκτος απο μερικες εφαρμογες, οπως. π.χ dvd-rip(encode) εφαρμογες αν δεν κανω λαθος..

Link to comment
Share on other sites

Βασικά με το ΗΤ έχει μια αύξηση της απόδοσης απο 25-50% σε multithreaded εφαρμογές ή όταν τρέχεις δύο εφαρμογές που χρειάζονται πολλούς υπολογισμούς. Πχ στο seti@home (classic) που είχα μετρήσει είχα αύξηση της απόδοσης 45% περίπου τρέχοντας 2 clients ταυτόχρονα, αλλα ο κάθε client ήθελε παραπάνω ώρα για να τελειώσει.

Δεν έχει καμία σχέση με το να έχεις 2 physical CPUs (είτε dual-cpu είτε dual-core CPU) είναι πολύ πιο αργό. Αν θες να συγκρίνεις πρέπει να βρεις P4 χωρίς ΗΤ και Ρ4 με ΗΤ στα ίδια ΜΗz (όχι το ίδιο cpu ΗΤ-enable και HT-disable).

Εκεί θα δείς την αύξηση της απόδοσης όταν τρέχεις multithreaded εφαρμογές.

Link to comment
Share on other sites

ευχάριστο για το ενδιαφέρον παιδιά :) αν και με κάλυψε αρκετά ο "ωαντιλλες" :), έχω μια άλλη απορία , έχουμε τμήμα parallel processing είχαμε κάνει ένα test τρέχοντας ένα mpi σε java σε 15 μηχανήματα σε ένα εργαστήριο linux mandrake, όλα intel 3Ghz HT prescott, η απορία μου είναι η εξής στείλαμε data σε 15 cpu αλλα εφόσον τους δώσαμε μια εφαρμογή για να τρέχουν και δεν ήταν multithreading θα είχε διαφορα σε 3Ghz Northwood πχ ? χωρίς HT ? (δεν νομίζω να υπάρχει prescott χωρίς HT)

Link to comment
Share on other sites

Είτε στον Prescott είτε στον Northwood αν απενεργοποιήσεις το ΗΤ θα τρέξουν μια απλή εφαρμογή πιο γρήγορα γιατί έτσι χρησιμοποιούν το 100% του cpu usage μόνο για μια εργασία.

Y.Γ.Μπορείς να απενεργοποιήσεις το HT από το BIOS αλλά είναι βαβούρα γιατί πρέπει να αλλάξεις και τον πυρήνα του OS….

Link to comment
Share on other sites

Είτε στον Prescott είτε στον Northwood αν απενεργοποιήσεις το ΗΤ θα τρέξουν μια απλή εφαρμογή πιο γρήγορα γιατί έτσι χρησιμοποιούν το 100% του cpu usage μόνο για μια εργασία.

Y.Γ.Μπορείς να απενεργοποιήσεις το HT από το BIOS αλλά είναι βαβούρα γιατί πρέπει να αλλάξεις και τον πυρήνα του OS….

Όταν απενεργοποιήσεις το ΗΤ απο ένα Northwood 2.8C δεν είναι το ίδιο με το να έχεις ένα Northwood 2.8B γιατι πρώτον είναι διαφορετικοί επεξεργαστές και δεύτερον ο 2.8C δεν θα δουλεύει στο 100% της απόδοσής του άσχετα με το τι σου λέει το λειτουργικό. Είναι το ίδιο με το να έχεις ΗΤ και να τρέχεις μία εφαρμογή μόνο (απενεργοποίηση του 2ου logical cpu)

Αν το λειτουργικό είναι linux τότε πρέπει να απενεργοποιήσεις το SMT απο τον πυρήνα και να ξανακάνεις compile. Αν το λειτουργικό είναι windows δε κάνεις τίποτα.

Link to comment
Share on other sites

ευχάριστο για το ενδιαφέρον παιδιά :) αν και με κάλυψε αρκετά ο "ωαντιλλες" :), έχω μια άλλη απορία , έχουμε τμήμα parallel processing είχαμε κάνει ένα test τρέχοντας ένα mpi σε java σε 15 μηχανήματα σε ένα εργαστήριο linux mandrake, όλα intel 3Ghz HT prescott, η απορία μου είναι η εξής στείλαμε data σε 15 cpu αλλα εφόσον τους δώσαμε μια εφαρμογή για να τρέχουν και δεν ήταν multithreading θα είχε διαφορα σε 3Ghz Northwood πχ ? χωρίς HT ? (δεν νομίζω να υπάρχει prescott χωρίς HT)

Εφόσων η εφαρμογή που έτρεχε στο καθένα μηχάνημα client ήταν single-threaded τότε χωρίς ΗΤ μπορεί να έτρεχε πιο γρήγορα (εξαρτάται απο πολλούς παράγοντες). Αν η client εφαρμογή που τρέχατε ήταν multi-threaded τότε με ΗΤ θα έτρεχε πιο γρήγορα.

Το MPI δεν έχει καμία σχέση με το ΗΤ και το multi-threaded.

PS αφού έχεις κάνει εργαστήρια parallel processing, εσύ έπρεπε να μας τα αναλύεις αυτά και όχι να μας ρωτάς !!!!

Link to comment
Share on other sites

Όταν απενεργοποιήσεις το ΗΤ απο ένα Northwood 2.8C δεν είναι το ίδιο με το να έχεις ένα Northwood 2.8B γιατι πρώτον είναι διαφορετικοί επεξεργαστές και δεύτερον ο 2.8C δεν θα δουλεύει στο 100% της απόδοσής του άσχετα με το τι σου λέει το λειτουργικό. Είναι το ίδιο με το να έχεις ΗΤ και να τρέχεις μία εφαρμογή μόνο (απενεργοποίηση του 2ου logical cpu)

Αν το λειτουργικό είναι linux τότε πρέπει να απενεργοποιήσεις το SMT απο τον πυρήνα και να ξανακάνεις compile. Αν το λειτουργικό είναι windows δε κάνεις τίποτα.

Δεν κατάλαβα το post σου και σε τι διαφωνείς με το δικό μου. Που λέω εγώ για Northwood B C D E κλπ…

Λες, και μάλιστα «κατά πρώτον» ο 2,8Β είναι διαφορετικός επεξεργαστής από τον 2,8C.

Πες μας όμως και πια είναι η βασική του διαφορά.

Λες επίσης ότι «κατά δεύτερον» ο 2,8C δεν θα δουλεύει στο 100% της απόδοσής του άσχετα με το τι σου λέει το λειτουργικό.

Δηλ αν απενεργοποιήσεις το ΗΤ και δόσεις High Priority σε μια single threaded εφαρμογή η cpu δεν θα δουλεύει στο full ενώ το λειτουργικό θα σου δείχνει 100% cpu utilization…?

Από κάτω (στο quote του IronRaven) πάλι βλέπω ότι η απάντηση σου συμφωνεί με τι δική μου παραπάνω.

Επίσης για το λειτουργικό λες πολύ σωστά ότι για να απενεργοποιήσεις το ΗΤ στο linux πρέπει να κάνεις compile τον kernel. Αυτό όμως γίνεται και στα windows με τη διαφορά ότι για να γίνει η αλλαγή στον πυρήνα πρέπει να εγκαταστήσεις εκ νέου τα windows γι αυτό και αναφέρω ότι είναι βαβούρα.

Link to comment
Share on other sites

Εφόσων η εφαρμογή που έτρεχε στο καθένα μηχάνημα client ήταν single-threaded τότε χωρίς ΗΤ μπορεί να έτρεχε πιο γρήγορα (εξαρτάται απο πολλούς παράγοντες). Αν η client εφαρμογή που τρέχατε ήταν multi-threaded τότε με ΗΤ θα έτρεχε πιο γρήγορα.

Το MPI δεν έχει καμία σχέση με το ΗΤ και το multi-threaded.

PS αφού έχεις κάνει εργαστήρια parallel processing, εσύ έπρεπε να μας τα αναλύεις αυτά και όχι να μας ρωτάς !!!!

δεν νομίζω ότι είμαι ο κατάλληλος να αναλύσω τέτοια θέματα εργαστήρια κάναμε software σε hardware δοκιμάζαμε η εμπειρία μου είναι περιορισμένη σε Java και σε ότι μας έχουν διδάξει για parallel computing. τα ελληνικά μου είναι αθλια δεν νομίζω να μπορούσα να εξηγήσω tpt :086: , η απορία ήταν λόγο του ότι είχα μια συζήτηση με ένα φίλο online για P4 και δεν θυμόμουν να του απαντήσω. Ευχαριστώ πάντως παιδιά για το ενδιαφέρον.

Link to comment
Share on other sites

Αυτό όμως γίνεται και στα windows με τη διαφορά ότι για να γίνει η αλλαγή στον πυρήνα πρέπει να εγκαταστήσεις εκ νέου τα windows γι αυτό και αναφέρω ότι είναι βαβούρα.

Δεν είναι απαραίτητο, το κάνεις disabled από το bios και αλλάζεις τον οδηγό των win από multiprocessor σε uniprocessor.

Link to comment
Share on other sites

Δεν κατάλαβα το post σου και σε τι διαφωνείς με το δικό μου. Που λέω εγώ για Northwood B C D E κλπ…

Λες, και μάλιστα «κατά πρώτον» ο 2,8Β είναι διαφορετικός επεξεργαστής από τον 2,8C.

Πες μας όμως και πια είναι η βασική του διαφορά.

Λες επίσης ότι «κατά δεύτερον» ο 2,8C δεν θα δουλεύει στο 100% της απόδοσής του άσχετα με το τι σου λέει το λειτουργικό.

Δηλ αν απενεργοποιήσεις το ΗΤ και δόσεις High Priority σε μια single threaded εφαρμογή η cpu δεν θα δουλεύει στο full ενώ το λειτουργικό θα σου δείχνει 100% cpu utilization…?

Το θέμα με το ΗΤ είναι οτι έχει αλλαχθει το FSM (Finite State Machine) του επεξεργαστή για να μπορεί να επεξεργάζεται 2 thread ψευδοπαράλληλα (δεν θυμάμαι αν έχει αλλαγθεί και το pipeline, όσο αναφορά τα επίπεδα). Όταν απενεργοποιείς το ΗΤ δεν αλλάζεις το FSM του επεξεργαστή, απλά λές στο λειτουργικό (απο το bios) οτι έχω μία logical CPU. Οπότε δουλεύει ο επεξεργαστής σαν να έχει ΗΤ αλλα να δουλεύεις τα πάντα στο ένα logical CPU και το άλλο να κάθεται. Έχω κάνει αρκετές μετρήσεις με διάφορα προγράμματα και τα αποτελέσματα που πήρα ήταν αυτά. Το λειτουργικό βλέποντας μόνο μια logical cpu και βλέποντας οτι έχει 100% utilization σου λεει cpu = 100% αλλα στη πραγματικότητα ο επεξεργαστής δεν είναι 100%. Ο επεργαστής είναι 100% μόνο όταν έχεις ΗΤ και τρέχεις 2 thread απο 50% το καθένα.

Μίλησα για Northwood C και Β γιατι ο πρώτος έχει ΗΤ ενω ο δεύτερος δεν έχει. Τωρα για τις διαφορές που έχουν μεταξύ τους είναι αρκετές αλλα για μένα η σημαντικότερη και αυτή που έχει να κάνει με την απόδοση είναι η αλλαγή του FSM (η προσθήκη ΗΤ).

Μάλλον δεν το διατύπωσα καλά στο προηγούμενο post και για αυτό δεν το κατάλαβες, ελπίζω αυτό να είναι πιο ξεκάθαρο.

Από κάτω (στο quote του IronRaven) πάλι βλέπω ότι η απάντηση σου συμφωνεί με τι δική μου παραπάνω.

Όταν λέω χωρίς ΗΤ εννοώ επεξεργαστή χωρίς ΗΤ όχι ΗΤ disable.

Επίσης για το λειτουργικό λες πολύ σωστά ότι για να απενεργοποιήσεις το ΗΤ στο linux πρέπει να κάνεις compile τον kernel. Αυτό όμως γίνεται και στα windows με τη διαφορά ότι για να γίνει η αλλαγή στον πυρήνα πρέπει να εγκαταστήσεις εκ νέου τα windows γι αυτό και αναφέρω ότι είναι βαβούρα.

Στις περισσότερες περιπτώσεις αυτό που λέει ο RootX δουλεύει.

Link to comment
Share on other sites

Το θέμα με το ΗΤ είναι οτι έχει αλλαχθει το FSM (Finite State Machine) του επεξεργαστή για να μπορεί να επεξεργάζεται 2 thread ψευδοπαράλληλα (δεν θυμάμαι αν έχει αλλαγθεί και το pipeline, όσο αναφορά τα επίπεδα). Όταν απενεργοποιείς το ΗΤ δεν αλλάζεις το FSM του επεξεργαστή, απλά λές στο λειτουργικό (απο το bios) οτι έχω μία logical CPU. Οπότε δουλεύει ο επεξεργαστής σαν να έχει ΗΤ αλλα να δουλεύεις τα πάντα στο ένα logical CPU και το άλλο να κάθεται. Έχω κάνει αρκετές μετρήσεις με διάφορα προγράμματα και τα αποτελέσματα που πήρα ήταν αυτά. Το λειτουργικό βλέποντας μόνο μια logical cpu και βλέποντας οτι έχει 100% utilization σου λεει cpu = 100% αλλα στη πραγματικότητα ο επεξεργαστής δεν είναι 100%. Ο επεργαστής είναι 100% μόνο όταν έχεις ΗΤ και τρέχεις 2 thread απο 50% το καθένα.

Μίλησα για Northwood C και Β γιατι ο πρώτος έχει ΗΤ ενω ο δεύτερος δεν έχει. Τωρα για τις διαφορές που έχουν μεταξύ τους είναι αρκετές αλλα για μένα η σημαντικότερη και αυτή που έχει να κάνει με την απόδοση είναι η αλλαγή του FSM (η προσθήκη ΗΤ).

Μάλλον δεν το διατύπωσα καλά στο προηγούμενο post και για αυτό δεν το κατάλαβες, ελπίζω αυτό να είναι πιο ξεκάθαρο........

Πολύ πιο ξεκάθαρο και κατάλαβα και τη διαφορά. :023:

Συμπερασματικά λοιπόν από τα λεγόμενα σου ένα λειτουργικό δεν μπορεί να δει μια cpu με ΗΤ σαν ένα φυσικό επεξεργαστή (όταν απενεργοποιήσεις το ΗΤ) παρά μόνο σαν μια λογική μονάδα επεξεργασίας, με μειωμένη απόδοση, ή κανονικά με το ΗΤ enable σα δυο λογικές μονάδες…

Μάλιστα, ενδιαφέρον αυτό. Καλύτερα λοιπόν enabled το ΗΤ ακόμα και αν δεν χρησιμοποιεί multithreaded εφαρμογές κάποιος..!!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.