Coding day

020th Δεκ 2007Projects

Χτες ήταν μέρα coding για ακόμη μια φορά. Αυτή τη φορά σε c++ και για το Eternity2. Ο κώδικας είχε γραφεί εδώ και μέρες αλλά η τελική πινελιά που επέτρεπε την δοκιμή του γράφτηκε χτες. Συνεχόμενα καθήσαμε από τις 9 περίπου ως τις 12 και κάτι το βράδυ αλλά όλο αυτό ταυτόχρονα χρησιμοποιώντας το Gobby, svn και Visual Studio. Εγώ συνέχισα και πέρα από την ώρα εκείνη βέβαια ως τις 2 και κάτι το πρωί αλλά ήταν η πόρωση που δεν με άφηνε να κοιμηθώ. Ο Κώστας ούτως ή άλλως δούλευε το πρωί οπότε δεν είχε νόημα να καθίσει κι άλλο.

Πάντως ο επιπλέον χρόνος που ασχολήθηκα είχε νόημα. Τώρα, με ελάχιστες βελτιώσεις ο κώδικας εκτελεί 1.000.000 ελέγχους σε 6 δευτερόλεπτα περίπου (τουλάχιστον στον 4400X2 μου). Μια σημαντική βελτίωση από τις 10000 περίπου σε 6 δευτερόλεπτα που είχα παρατηρήσει προηγουμένως. Ήδη ο αλγόριθμος (για brute force) είναι αρκετά βελτιστοποιημένος κάνοντας τους απόλυτα αναγκαίους ελέγχους. Είμαι σίγουρος όμως πως μπορούμε να κόψουμε λίγο δρόμο ακόμη χρησιμοποιώντας κάποιες παραδοχές ακόμη και στο τέλος κόβωντας μερικές κλήσεις σε αντίστοιχες μεθόδους.

Κάποια στιγμή όμως θέλω να δοκιμάσω και εναλλακτικές προσεγγίσεις κάνοντας μικρές τροποποιήσεις χρησιμοποιώντας κάποια lookups αντί για υπολογισμούς σε κάθε κύκλο. Ευελπιστώ πως θα υπάρξει τρόπος για επιπλέον σημαντική βελτίωση.

Ένα επίσης μελανό σημείο είναι πως το εκτελέσιμο ούτε τρέχει στο 2ο core αλλά ούτε και χρησιμοποιεί 100% του ενός επεξεργαστή. Βρίσκεται συνέχεια γύρω στο 50%. Θέλω να πιστεύω πως τα πολλαπλά branch instructions (if’s) είναι ο λόγος. Βέβαια χωρίς τα if δεν γίνεται δουλειά οπότε θέλει προσοχή.

Related posts:

  1. 500GB recovered!
  2. Ιούλιος βγαίνει Αύγουστος μπαίνει
  3. Slow Day
  4. Sun-day
  5. Walk it off…
  6. The Hackers Diet μέρος 1ο
  7. Goodies arrived!
  8. 5k/10d μέρος 3ο
  9. MacPro.gr upgraded
  10. 5k/10d μέρος 4ο και τελευταίο

No Comments Κανάλι σχολίων

Add a Comment

You must be logged in to post a comment.