Jump to content



Σωστή χρήση διπύρηνου επεξεργαστή?


squid

Recommended Posts

Δημοσιεύτηκε

Ti πρεπει να προσεξει ή να κανει καποιος στα windows και στο software ωστε να αξιοποιουνται στο μεγιστο δυνατο και οι δυο πυρηνες ενος Χ2 / Core Duo ?

.

Δεν χρειαζεται να κανεις κατι. Εξαρταται απο το προγραμμα αν ειναι γραμμενο να εκμεταλλευεται δυο πυρηνες

αν πας στο task manager και κανεις στο processes δεξι κλικ τοτε εχει μια επιλογη affinity, απο κει μπορεις να ορισεις το προγραμμα ποιον πυρηνα να απασχολει

Ό,τι πολύ σωστά είπαν όλα τα παιδιά.

Επιπλέον δές και το:

SMP Seesaw Pro

http://www.mlin.net/SMPSeesaw.shtml

Το οποίο μπορεί να δώσει με τη μία αποκλειστικό affinity σε κάποιο(α) core(s) για κάποιο process.

Δυστυχώς είναι μόνο 32-bit έκδοση, οπότε στα x64 θα τρέξει κανονικά, αλλά θα μπορεί να "δει" και να "πειράξει" μόνο τα 32-bit processes.

Αλλά είναι δωρεάν και open-source (ο κώδικας υπάρχει στη σελίδα). Κανένας με πείρα σε Visual Studio να το κάνει compile σε x64 υπάρχει;

Να κάνω μια ίσως χαζή ερώτηση... Τί είναι καλύτερο ενδεχομένως, να μοιράζονται οι πυρήνες τις εργασίες ή να αναλαμβάνουν διαφορετικές και χωριστά, έχοντας ως κριτήριο την απόδοση-ταχύτητα εκτέλεσης διεκπεραίωσής τους;

  vgiozo έγραψε:
Να κάνω μια ίσως χαζή ερώτηση... Τί είναι καλύτερο ενδεχομένως, να μοιράζονται οι πυρήνες τις εργασίες ή να αναλαμβάνουν διαφορετικές και χωριστά, έχοντας ως κριτήριο την απόδοση-ταχύτητα εκτέλεσης διεκπεραίωσής τους;

Φίλε μου άνοιξες ένα θέμα που δημιουργεί κόντρες ανάμεσα στους σχεδιαστές λειτουργικών τα τελευταία 50 χρόνια!!! Μόνο χαζή ερώτηση δεν είναι.

Υπάρχουν πολλές αντιλήψεις για το πως θα πρέπει να γίνεται η κατανομή του υπολογιστικού φορτίου σε πολυεπεξεργαστικά συστήματα. Όλες έχουν τα + και - τους ανάλογα με την περίπτωση που τις εφαρμόζεις. Τελικά οι κατασκευαστές κάνουν μια καλή στατιστική για το τι tasks πρόκειτε να τρέξει κατά κανόνα το σύστημα και εφαρμόζουν την μέθοδο που θα τους δώσει τους καλύτερους μέσους όρους.

Εν ολίγοις, το πρόβλημα έγγυται στο γεγονός που λέει ότι την στιγμή που ανεβάζεις ένα task στην μνήμη δεν ξέρεις δύο πράγματα:

1. Πόσο θα διαρκέσει η εκτέλεση του;

2. Πόσο θα απασχολήσει την CPU;

Η τακτική λοιπόν που ακολουθούν κατά βάση είναι αυτή που λέει ότι σε κάθε δεδομένη στιγμή (υπάρχει κάποιο timeslice γι αυτό) ελέγχεις το φορτίο της κάθε CPU και μετακινείς τα tasks έτσι ώστε να έχεις όσο γίνεται πιο συμμετρική κατανομή. Άν γίνεται. Αυτά σε γενικές γραμμές πάντα. Οι λεπτομέριες πάνε το ζήτημα πιο μάκρια και off-topic.

  vgiozo έγραψε:
Να κάνω μια ίσως χαζή ερώτηση... Τί είναι καλύτερο ενδεχομένως, να μοιράζονται οι πυρήνες τις εργασίες ή να αναλαμβάνουν διαφορετικές και χωριστά, έχοντας ως κριτήριο την απόδοση-ταχύτητα εκτέλεσης διεκπεραίωσής τους;

δες το απλα...εχεις 2 άτομα να φτιαξουν μια κατασκευή....ό ένας ασχολείτε με διαφορετικό μέρος και έτσι τελιώνουν πιο γρήγορα....αλλα...δεν μπορούν να ασχολειθούν και οι 2 με το ίδιο μέρος αν είναι μικρό...από την άλλη....αν έχεις μια μεγάλη κατασκευή (πχ κινητήρα αεροπλάνου) τότε λόγο όγκου 2 μάζι θα τελιώσουν πιο γρήγορα...και αυτό γιατι ένα πράγμα αποτελείτε από πολλά μικρότερα...

  • 4 months later...

Yπαρχει κανεις που να το εχει διαπιστωσει εμπρακτα αυτο;

Δλδ περα απο οτι το affinity δινεται σαν επιλογη, το χρησιμοποιει κανεις;

και εχει δει διαφορα στην αποδοση του συστηματος οταν τρεχει πχ 2 προγραμματα σχετικα βαρυα και τα μοιραζει στους πυρηνες;

Δεν θελω λινκ σε review .. εμπρακτα μονο κανενας συνφορουμιτης αν το εχει τσεκαρει ...

  javaneze έγραψε:
Yπαρχει κανεις που να το εχει διαπιστωσει εμπρακτα αυτο;

Δλδ περα απο οτι το affinity δινεται σαν επιλογη, το χρησιμοποιει κανεις;

και εχει δει διαφορα στην αποδοση του συστηματος οταν τρεχει πχ 2 προγραμματα σχετικα βαρυα και τα μοιραζει στους πυρηνες;

Δεν θελω λινκ σε review .. εμπρακτα μονο κανενας συνφορουμιτης αν το εχει τσεκαρει ...

Το έχω δοκιμάσει εγώ. Όχι σε windows αλλά όλα τα λειτουργικά περίπου έτσι θα λειτουργήσουν. Αν υποθέσουμε ότι εσύ γνωρίζεις πως και τα δύο tasks είναι χρονοβόρα και απασχολούν πολύ την CPU, σε συμφέρει να "κολλήσεις" το κάθε task σε μία CPU και να μην επιτρέψεις την μετακίνηση του. Το λειτουργικό θα κάνει λιγότερους ελέγχους για το αν πρέπει να μετακινήσει κάποιο task από την μία CPU στην άλλη. Επίσης η μετακίνηση του task από την μία CPU στην άλλη έχει μεγάλο overhead, δηλαδή χαμένους κύκλους μηχανής για εσένα.

Όλα τα παραπάνω υπό την προϋπόθεση ότι το περιβάλλον σου μένει κατά βάσει σταθερό (δεν ανοιγοκλείνεις άλλα tasks όσο τρέχουν τα δύο που σε ενδιαφέρουν). Επίσης δεν θα πρέπει κανένα από τα δύο tasks που σε ενδιαφέρουν να είναι multithreaded. Αν κάποιο από τα δύο είναι multithread καλύτερα να αφήσεις το σύστημα να κάνει κουμάντο αυτό.

Archived

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

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

Important Information

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