What's new

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Λαιμοί μπουκαλιών.

grmadness

Death Knight
Joined
Apr 3, 2013
Messages
4,935
-Πάει ο Φραπές, τον χάνουμε. Τι λέει ρέ; Λαιμοί μπουκαλιών; Τι σχέση έχει αυτό με Hardware; Mε το PC;
- N00B!!!!!!!!! Υπάρχει μπουκάλι χωρίς λαιμό;
-Φυσικά όχι.
-Καλά το πάς. Πάρε λέιζερ και χάραξε στο μυαλό σου το παρακάτω παραμυθάκι.

Μια φορά και έναν καιρό τα μπουκάλια κυριαρχούσαν στην Γή... :huh:
Ή μήπως ήταν οι δεινόσαυροι; :blink:
-Πάς καλά; Τι πήρες; Καλό φαίνεται. Φραπέ σύνελθε. Hardware. Bottlenecks.
-Έ, τί; Ά, ναί. Συνεχάω.
Λοιπόν, μάγκες, με απλά λόγια, το bottleneck είναι το πιο αργό κομμάτι του PC σας. Είναι ένα σημείο στο οποίο υπάρχει καθυστέρηση στην μεταφορά των δεδομένων, το υποσύστημα που δουλεύει στο 100%, και παρόλα αυτά δεν μπορεί να ακολουθήσει τα άλλα υποσυστήματα. Κάτι που είναι κακό, σωστά; Όχι πάντα...

-Έ; Φραπέ, ξύπνησες με πρωινές μου φαίνεται και δεν ξέρεις τι λές.
-Και όμως, σκέψου το λίγο. Έχεις έναν ταπεινό Phenom II, τρέχεις δύο 780 (ή δύο R9 280, πχ), και πιάνεις 100 fps σε 1080p. Ο CPU τρέχει, ζέχνει σαν soggoth από τον ιδρώτα, αφού δουλεύει φούλ ωράριο (100%) για να ακολουθήσει τις 780, οι οποίες κάνουν χαλαρό ζέσταμα (40-60% φόρτο). Σε χαλάει; Όχι, απαντάω για σένα. Έχεις την απόδοση που θές. Bottleneck υπάρχει; Φυσικά, ξανά απαντάω για σένα, αλλά δεν σε νοιάζει.

Οκ ρε μεγάλε, αλλά είναι τόσο αθώα όλα τα bottlenecks; Δεν νομίζω.
-Σωστό το point φίλε, αν ήταν όλα καλά δεν θα είχε νόημα να μιλάμε για μπουκάλια. Σοβαρό bottleneck υπάρχει όποτε κάνουμε κάτι (gaming, rendering, κλπ) και οι επιδόσεις είναι πολύ χαμηλές. Εκεί πρέπει να εντοπίσουμε τον ένοχο, κάτι όχι πάντα εύκολο μάγκες.

-Τι λές ρε παλικάρι, το πιο αργό κομμάτι προκαλεί το bottleneck. N00bάς είσαι Φραπέ.
- Ναί. Αλλά ποιό είναι το πιο αργό κομμάτι στο gaming; Στο Rendering; Στο multitasking; Δεν είναι το ίδιο υποσύστημα πάντα, οπότε μην βιάζεσαι, δεν αντικαθιστάς έτσι απλά κάτι που υποπτεύεσαι πως προκαλεί bottleneck, κοστίζει και αφήνεις πίσω τις εργασίες που έχεις να κάνεις. Δεν λέει.

Άκου τώρα και το παράδοξο. Σε μια κατάσταση λειτουργίας, ένα υποσύστημα μπορεί να προκαλεί bottleneck σε κάποιο άλλο, και σε κάποια άλλη κατάσταση οι όροι να αντιστρέφονται. Γαμάτο, έτσι;
Παράδειγμα.
<span class="bbcode_spoiler">Σε ένα παιχνίδι, ο CPU πάει νωχελικά, βόλτα στο δάσος πίνοντας φραπεδάκι, και ταυτόχρονα η GPU μαστιγώνεται ανελέητα από ένα half Orc και έχει πάρει στεροειδή για να πιάσει 100% απόδοση.
Ξεκινάς rendering ενός video, και η GPU κάνει κοτσίδες τις τρίχες που έχει μαζέψει επειδή δεν έχεις καθαρίσει τα τελευταία 2 χρόνια, ενώ παράλληλα το Half Orc ασελγεί πάνω στο κορμί του CPU</span>
Βασικά, όλα εχουν να κάνουν με την εκάστοτε χρήση του PC. Αλλιώς θα αξιοποιηθεί το hardware από κάποιο πρόγραμμα, αλλιώς από κάποιο άλλο. Λογικό, έτσι;
-Το πιο αργό κομμάτι σε ένα σημερινό σύστημα είναι μακράν ο HDD.
-Άρα βάζω SSD. Κοστίζεις πολύ ρε Φραπέ.
-Δεν είπα αυτό, γίδι. Ο HDD θα έχει σαφώς μεγάλους χρόνους φόρτωσης σε σχέση με έναν SSD, καθώς και σε χρόνους ανάγνωσης, γραφής, διαχείρησης αρχείων, μπλάμπλά κλπκλπ. Αλλά δεν θα σου μειώσει τον αριθμό των fps που έχεις σε ένα game.

-Oκ, αλλά τι μπορεί να οδηγήσει σε bottleneck;
Καλή ερώτηση. Άκου...Εκτός από την χρήση (usage %), έχουμε και τους εξής παράγοντες, που ελάχιστοι παίρνουν στα σοβαρά.
<span class="bbcode_spoiler">RAM (πόση, και πόσο γρήγορη)
Drivers-Firmware
Instructions-power efficiency του CPU
CPU-GPU bound games
Αξιοποίηση πυρήνων-threads από games και εφαρμογές
Ανάλυση οθόνης (για ποιόν χτυπάει η καμπάνα; )</span>

Kαλά τα λές ρε παλικάρι, αλλά για τα bottlenecks δεν μπορώ να χρησιμοποιήσω κάποιο benchmark για να δώ που πάσχει το συστηματάκι μου;
Όχι. Το benchmark απλά θα σου δώσει γενικές επιδόσεις και μια εικόνα, δεν μπορεί να σου υποδείξει ποιό κομμάτι υστερεί.

Eίναι πρακτικά αδύνατο να φτιάξεις ένα σύστημα που να έχει απόλυτη ισορροπία ανάμεσα στα υποσυστήματα, στάνταρ κάποιο θα δουλεύει στο 100% για να ακολουθήσει τα υπόλοιπα. Γκέγκε; Kάτι που ως μετάφραση έχει το εξής. ΌΛΑ τα PC έχουν όχι ένα, αλλά αρκετά bottlenecks, το θέμα είναι να μην υπάρχει πρόβλημα στην απόδοση, που είναι κάτι καθαρά υποκειμενικό.

Ευχαριστώ που κάνατε τον κόπο να ρίξετε ένα βλέφαρο. <img src="/smile.gif" width="" height="" alt=":)" title=":)" class="bbcode_smiley" />

Εditing
 

headless

Hobgoblin Captain
Joined
Nov 30, 2012
Messages
336
Ωστόσο πέρα από το bottleneck λόγω hardware, υπάρχει και software bottleneck, πράγμα που αφορά τον προγραμματιστή και όχι τον τελικό χρήστη.
Αν προλάβω θα κάνω ένα edit μέσα στη μέρα να γράψω 2 πράματα παραπάνω και γι'αυτό.
 

grmadness

Death Knight
Joined
Apr 3, 2013
Messages
4,935
Για αυτό και αναφέρω και τους drivers/firmware, πολύ σωστό το point. Καλημέρες. <img src="/smile.gif" width="" height="" alt=":)" title=":)" class="bbcode_smiley" />

Εκτός και αν αναφέρεσαι σε θέματα optimization, που σε βρίσκω και πάλι σωστό. <img src="/tongue.gif" width="" height="" alt=":p" title=":p" class="bbcode_smiley" />

Εννοείται πως οι επιπλέον πληροφορίες είναι more than welcome.
 

Tsok

Moderator
Staff member
Joined
Nov 30, 2012
Messages
5,929


Grmadness wrote:
-Πάς καλά; Τι πήρες; Καλό φαίνεται. </blockquote>

<span class="bbcode_spoiler"><img src="http://fast-images.picyou.com/images/bbFW45/bbFW45.jpg" alt="bbFW45.jpg" class="bbcode_img" /></span>

 

headless

Hobgoblin Captain
Joined
Nov 30, 2012
Messages
336


Grmadness wrote:
Για αυτό και αναφέρω και τους drivers/firmware, πολύ σωστό το point. Καλημέρες. <img src="/smile.gif" width="" height="" alt=":)" title=":)" class="bbcode_smiley" />

Εκτός και αν αναφέρεσαι σε θέματα optimization, που σε βρίσκω και πάλι σωστό. <img src="/tongue.gif" width="" height="" alt=":p" title=":p" class="bbcode_smiley" />

Εννοείται πως οι επιπλέον πληροφορίες είναι more than welcome.</blockquote>

Ναι, περισσότερο στο optimization αναφερόμουν.
Πιό συγκεκριμένα, αυτό επιτυγχάνεται εντοπίζοντας τα κομμάτια του κώδικα που εκτελούνται συχνότερα, και βελτιώνοντάς τα ώστε να εκτελούννται ταχύτερα ή/και να χρησιμοποιούν λιγότερα resources.
Για τον σκοπό αυτό υπάρχουν εργαλεία που ονομάζονται profilers ή performance analyzers.
Relevant wikipedia links για όποιον ενδιαφέρεται να εμβαθύνει περισσότερο:
https://en.wikipedia.org/wiki/Optimization_%28computer_science%29
https://en.wikipedia.org/wiki/Profiling_%28computer_programming%29
https://en.wikipedia.org/wiki/Algorithmic_efficiency


Και γενικότερα bottleneck μπορεί να υπάρξει σε πολλούς τομείς έξω από την πληροφορική, από το management μέχρι την αγροτική παραγωγή, την στρατηγική ή την κίνηση στον δρόμο.
Σύμφωνα με τον https://en.wikipedia.org/wiki/Liebig%27s_law_of_the_minimum" class="bbcode_url">νόμο του Liebig, η αποτελεσματικότητα ενός συστήματος καθορίζεται όχι από το σύνολο των πόρων, αλλά από τον πιό «σπάνιο» εξ αυτών, αυτό που λένε https://en.wikipedia.org/wiki/Limiting_factor" class="bbcode_url">limiting factor.

 

grmadness

Death Knight
Joined
Apr 3, 2013
Messages
4,935
Το optimization είναι ένας από τους χειρότερους εφιάλτες αδελφέ, και για τον μέσο χρήστη, και για τον gamer (ημιτελή games, κλπκλπ), και για τον εκάστοτε dev (κώδικας που πρέπει να είναι συμβατός με πρακτικά άπειρα configs, δεν το λές και το πιο εύκολο πράγμα στον κόσμο).

Πιο τρανό παράδειγμα bottleneck στο real life από την σημερινή κατάσταση της αγοράς στην Ελλάδα δεν πρέπει να υπάρχει.
 
Top Bottom