8 και 16 bit θρύλοι και αναμνήσεις

Δεν ξέρω τι ακριβώς κάνεις με τα single equation loops αλλά έχω βάσιμες υποψίες ότι υπάρχει καλύτερος (a.k.a. σύγχρονος) τρόπος να το κάνεις. ;)
Μετροπρογραμμα ειναι (σιγουρα οχι κατι κρισιμο για την λειτουργια της ανθρωποτητας !) .........
αλλα ............. οπως εχουν δικαιωμα στην επιθυμια 8 δις ψυχες ................ ΕΤΣΙ εχω και εγω (νομιζω).
Ειμαι ασημαντος, ΟΧΙ ανυπαρκτος. Λοιπον, εγω ο ασημαντος επιθυμω single + serial execution line.

TestFPU.jpg

Καθε εξισωση δινει αυξανομενο βαθμο δυσκολιας στην επομενη (οσον αφορα την FPU)
και δεν μπορει να εκτελεσθουν παραλληλα γιατι η μια χρειαζεται το αποτελεσμα της προηγουμενης.
 
Last edited:
Τα πολλά cores είναι για άλλες χρήσεις. Ένα πρόβλημα που παραλληλίζεται στο 98%, με 32 cores θα είναι 20 φορές πιο γρήγορο από 1 core, ενώ με 192 cores θα είναι μόλις διπλάσιο από πριν, 40 φορές πιο γρήγορο (Amdahl's law). Και το 98% είναι ένα πολύ ιδεατό νούμερο, συνήθως είναι παρακάτω. Συνήθως δε είναι ακόμα χειρότερα γιατί πέφτεις σε άλλα όρια, πχ το memory bus κτλ.
Το single core performance πάντα χρειάζεται.

Όταν παραλληλίζεις ένα πρόβλημα πρέπει να σκέφτεσαι έξω από το κουτί. Για παράδειγμα, το να συμπιέσεις ένα video είναι μία γραμμική διαδικασία, μπορείς να παραλληλίσεις μέρος του frame μέχρι ένα βαθμό αλλά το επόμενο frame εξαρτάται από το προηγούμενο κτλ. Γι' αυτό άλλωστε έχουμε δει πως τα διάφορα benchmark για video encoding δε κάνουν καλό scale πάνω από τα 12-16 cores. Αν όμως σπάσεις όλη την ταινία σε scenes, μπορείς να παραλληλίσεις το encoding σε όλα τα scenes ταυτόχρονα (κάτι που κάνει το netflix πχ). Δε θα πετύχεις τη βέλτιστη συμπίεση με αυτό τον τρόπο βέβαια αλλά το κέρδος από τον παραλληλισμό είναι τεράστιο.
 
  • Like
Reactions: SR-71 and koupa
Μετροπρογραμμα ειναι (σιγουρα οχι κατι κρισιμο για την λειτουργια της ανθρωποτητας !) .........
αλλα ............. οπως εχουν δικαιωμα στην επιθυμια 8 δις ψυχες ................ ΕΤΣΙ εχω και εγω (νομιζω).
Ειμαι ασημαντος, ΟΧΙ ανυπαρκτος. Λοιπον, εγω ο ασημαντος επιθυμω single + serial execution line.

View attachment 246246

Καθε εξισωση δινει αυξανομενο βαθμο δυσκολιας στην επομενη (οσον αφορα την FPU)
και δεν μπορει να εκτελεσθουν παραλληλα γιατι η μια χρειαζεται το αποτελεσμα της προηγουμενης.

Μετροπρόγραμμα γραμμένο σε Pascal πριν από περίπου 30-35 χρόνια λογικά.

Ούτε καν ακαδημαϊκή δεν μπορείς να την χαρακτηρίσεις την παραπάνω άσκηση, με compiler γραμμένο για 486 στην καλύτερη.

Συνειδητοποιείς ότι το παράπονό σου είναι ότι ο καινούργιος 486 που πήρες το '97 δεν τρέχει τα παιχνίδια που έχεις από τον Commodore 64, έτσι; ;)
 
  • Like
Reactions: koupa
Μετροπρόγραμμα γραμμένο σε Pascal πριν από περίπου 30-35 χρόνια λογικά.

Ούτε καν ακαδημαϊκή δεν μπορείς να την χαρακτηρίσεις την παραπάνω άσκηση, με compiler γραμμένο για 486 στην καλύτερη.

Συνειδητοποιείς ότι το παράπονό σου είναι ότι ο καινούργιος 486 που πήρες το '97 δεν τρέχει τα παιχνίδια που έχεις από τον Commodore 64, έτσι; ;)
Οπως ειπα .................... εαν 8 δις ψυχες εχουν επιθυμιες ................. ετσι εχω και εγω.
Και οχι .......... το DOS για καποιους δεν πεθανε (βαλτε το καλα στο κεφαλι σας).
Μπορω να μπουταρω απο bootable CD και να εχω ΑΜΙΓΕΣ DOS (χωρις DOSbox).
Για οποιο λογο (και επιθυμια) κρινω σκοπιμο ............
 
Μαλλον θες να με εκσυγχρονισεις .................. αλλα ΑΠΟ ΔΩ πηγαν και οι αλλοι (στο λεω με ευγενικο τροπο).
Επι του παροντος, και μετα απο πολυ κλαμα με μια ΜSI μητρικη (για Athlon XP 3200) >>> ΜΟΛΙΣ <<< μπορεσα
να μπουταρω την προηγουμενη GigaByte μητρικη (για Athlon 1333) αγορασμενη ........... το 2000 !! Στοχευω να την
τρεξω με Win98 SE (ουτε καν Win 2000). Oποτε το DOS θεωρειται δεδομενο !!!!!!!!!!!

Επομενως ............... τι πιθανοτητες εχεις να με εκσυγχρονισεις ?

(Εχω και μια QDI για Pentium 166 που δουλευει ρολοϊ ....... με 1 CD-ROM και 1 floppy, ουτε καν USB port).
 
Νατος ............
ο 286 που εκανε τα Turbo-X (Πλαισιο) να εισβαλλουν στην αγορα.
Νομιζω 1989 (αλλα μπορει και νωριτερα). Αυτο που δεν χωνευεται με τιποτα ειναι το monitor (AOC).
Οτι πιο σκαρταδουρα υπηρχε. Απειρες επιστροφες (απο υπερτασεις). Βλαστημουσες την ωρα και την στιγμη.

Τurbo-Χ_286_PC.jpg

Ας πουμε και κατι καλο : το πληκτρολογιο ειχε το μεγαλο το Enter ! Αλλα περα απο αυτο ....... πικρα !
Mετα (αρκετα μετα) ηρθαν τα 386 SX .......... και ακομα αργοτερα τα AMD 386 (με τα χαωδη 4 MB μνημης).
Καποιοι θα πουν "τιμια προταση, που ειναι το μπεμπτο ;". Το μεμπτο ειναι οτι το AOC εβγαζε προβλημα στο 6μηνο.
 
Last edited:

Σε βρίσκω αδιάβαστο. 192 πυρήνες - 384 νήματα και δυνατότητα διπλού επεξεργαστή. Σύνολο 768 νήματα.

Πολύ θα ήθελα να είχα ένα τέτοιο για λίγες ώρες. Έτσι να του βάλω Gentoo ή FreeBSD και να χτίσω ένα πλήρες σύστημα. Να δω πως πάει με όλα τα νήματα.
192 πυρηνες ? 😮........ 384 νηματα ? 🧐..........

Θα κανω μια πολυ απλη ευχη : may all your pipelines enjoy a full life ! 😁
Α ναι, μην ξεχασω ...... ΚΑΛΗ τυχη με τον branch predictor μεσα στην CPU
αφου ολη η δουλεια σ'αυτον πεφτει ! 😟
 
Last edited:
  • Like
Reactions: koupa
Νομίζω ότι έχουμε φτάσει στο σημείο που το hardware εδώ και 5 χρόνια δεν είναι για μεγάλο αριθμό επιστημονικού λογισμικού ο πρώτος περιοριστικός παράγοντας.
Το μεγαλύτερο πρόβλημα για μένα είναι ότι οι μικρότεροι σε ηλικία προγραμματιστές βαριούνται να γράψουν κώδικα (ακόμη και με ΑΙ ή μη assistants) και τραβάνε τεράστιες έτοιμες βιβλιοθήκες με χιλιάδες γραμμές κώδικα για να χρησιμοποιήσουν μόνο ένα μικρό πραγματάκι που θα το έγραφαν με 500 γραμμές (και πολλές λέω).
Όταν όλος ο κώδικας καταλήγει να είναι patchwork από δεκάδες βιβλιοθήκες ναι τότε θες HPC για να κάνεις κάτι γρήγορα. Αλλά παραδοσιακά λογισμικά περιβάλλοντα (πχ Matlab) είναι πια αρκετά γρήγορα με ένα 12-16 πυρηνο επεξεργαστή (οκ τα συνολικά thread μετράνε) με 64-128 GB ram όσο δεν πας να κάνεις Machine Learning, οπτική αναγνώριση κλπ.
 
Και να ήταν μόνο δεκάδες...
Αν δεις τα dependencies της Node θα τραβάς τα μαλλιά σου.
Ακόμη και οι ίδιες οι βιβλιοθήκες χρησιμοποιούν άλλες βιβλιοθήκες οι οποίες χρησιμοποιούν άλλες βιβλιοθήκες και πάει λέγοντας.
Τραβάς 2-3 να κάνεις τη δουλειά σου και γίνεται η εφαρμογή 500Mb.
 
192 πυρηνες ? 😮........ 384 νηματα ? 🧐..........

Θα κανω μια πολυ απλη ευχη : may all your pipelines enjoy a full life ! 😁
Α ναι, μην ξεχασω ...... ΚΑΛΗ τυχη με τον branch predictor μεσα στην CPU
αφου ολη η δουλεια σ'αυτον πεφτει ! 😟

Τέτοια μηχανήματα συνήθως σηκώνουν δεκάδες αν όχι εκατοντάδες VMs, με το κάθε VM να έχει σχετικά λίγα cores, και έτσι γίνεται πιο efficient το μοίρασμα των πόρων.

Ή ακόμα καλύτερα σηκώνονται φάρμες που φιλοξενούν containers.
 
Και να ήταν μόνο δεκάδες...
Αν δεις τα dependencies της Node θα τραβάς τα μαλλιά σου.
Ακόμη και οι ίδιες οι βιβλιοθήκες χρησιμοποιούν άλλες βιβλιοθήκες οι οποίες χρησιμοποιούν άλλες βιβλιοθήκες και πάει λέγοντας.
Τραβάς 2-3 να κάνεις τη δουλειά σου και γίνεται η εφαρμογή 500Mb.
Ελπίζω με τους νέους βοηθούς να μπορείς να δώσεις μια εντολή να σου γράψει νέο κώδικα χωρίς dependencies ή με τα ελάχιστα δυνατά που να έχει νόημα...
 
Μόνο αν ξαναγραφτεί αυτή η κατάρα που λέγεται node js από την αρχή.
Στην προηγούμενη δουλειά που τη δουλεύαμε πολύ, στον χρόνο φούσκωνε η μπαταρία του notebook. Και μιλάμε για επαγγελματικά notebooks κάποιων χιλιάδων ευρώ.

Ευτυχώς η Python έχει μεν πολλές βιβλιοθήκες για AI, είναι πιο μαζεμένη όμως.
 
Ελπίζω με τους νέους βοηθούς να μπορείς να δώσεις μια εντολή να σου γράψει νέο κώδικα χωρίς dependencies ή με τα ελάχιστα δυνατά που να έχει νόημα...
Ποσο στοιχιζει να γραψεις ενα αλγοριθμο σορταρισματος ................. ΧΩΡΙΣ dependencies ?
Απο την αρχη, from scratch που λενε (σε C).
 
Δεν μιλάμε για τέτοιες περιπτώσεις, θα ήταν overkill να χρησιμοποιήσεις βιβλιοθήκη για να το κάνεις.
Ο κόσμος όμως είναι πλέον συνηθισμένος να ορίζει π.χ. ότι στο τάδε τετραγωνάκι στην οθόνη του να εμφανίζεται ένα σημειωματάριο που θα γίνεται κόκκινο όταν θα πλησιάζει η ημερομηνία που έχεις ορίσει, θα μπορείς να το ξεφυλίσεις και θα μπορείς να το μετακινείς.
Αυτό μπορεί να χρειάζεται 2-3 βιβλιοθήκες, οι οποίες με τη σειρά τους μπορούν να ζητάνε ότι θέλουν από πίσω.
Όταν λοιπόν υπάρχουν οι βιβλιοθήκες, δεν μπορείς να καθίσεις να γράψεις από την αρχή τον κώδικά τους γιατί θα βγεις εκτός χρόνου και κόστους σε σχέση με κάποιον που θα τις χρησιμοποιήσει.
 
Η αλήθεια είναι ότι όποτε κοιτάω τον κώδικα στις ιστοσελίδες και βλέπω να φορτώνουν της παναγιάς τα μάτια αναρωτιέμαι τι απ' όλα αυτά χρειάζεται στην πράξη. Όποιοι είχαν δουλέψει στην αρχή του ίντερνετ ξέρουν την σημασία της απόκρισης -και οι νέες ιστοσελίδες έχουν εκνευριστικά αργή φόρτωση καθώς πρέπει να φορτώσουν όλες τις βιβλιοθήκες και όλες τις υπηρεσίες από την Google.
Το χειρότερο είναι ότι σε πολλά επώνυμα σάιτ βλέπω αντί να φορτώνουν τον κωδικά σε εξωτερικό αρχείο που θα κατέβει στην cache και θα είναι έτοιμο για επανάχρηση, έχουν όλο τον κώδικα χύμα στην σελίδα, αναγκάζοντας τον browser να ξανακάνει τη δουλειά από την αρχή κάθε φορά.
Και βέβαια η νέα δυνατότητα, όλος ο κώδικας σε js με ajax στον server και ούτε μια γραμμή HTML. Που σημαίνει ότι αν πέσεις σε αργή γραμμή τον ήπιες -δεν μπορείς καν να διαβάσεις το τηλέφωνο του μαγαζιού στο contacts!
 
Ποσο στοιχιζει να γραψεις ενα αλγοριθμο σορταρισματος ................. ΧΩΡΙΣ dependencies ?
Απο την αρχη, from scratch που λενε (σε C).
Πλέον με το chatgpt, δε στοιχίζει τίποτα
Ζήτα από το chatgpt "Give me the code in C that implements timsort for an array of utf-8 strings"